)]}'
{
  "log": [
    {
      "commit": "eedce141cd2dad8d0cefc5468ef41898949a7031",
      "tree": "e7b7c4c69114df9a830ec4c3f8e70dd4b30015ca",
      "parents": [
        "fd6de5300e6fcad5621ef7e78eb227de9d4c8b79"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@linux.vnet.ibm.com",
        "time": "Thu Oct 25 13:37:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 14:37:52 2012 -0700"
      },
      "message": "genalloc: stop crashing the system when destroying a pool\n\nThe genalloc code uses the bitmap API from include/linux/bitmap.h and\nlib/bitmap.c, which is based on long values.  Both bitmap_set from\nlib/bitmap.c and bitmap_set_ll, which is the lockless version from\ngenalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in\nthe bitmap.\n\nThat one uses (1 \u003c\u003c bits) - 1, 0b111, if you are setting the first three\nbits.  This means that the API counts from the least significant bits\n(LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.\nThe same works for the lookup functions.\n\nThe genalloc code uses longs for the bitmap, as it should.  In\ninclude/linux/genalloc.h, struct gen_pool_chunk has unsigned long\nbits[0] as its last member.  When allocating the struct, genalloc should\nreserve enough space for the bitmap.  This should be a proper number of\nlongs that can fit the amount of bits in the bitmap.\n\nHowever, genalloc allocates an integer number of bytes that fit the\namount of bits, but may not be an integer amount of longs.  9 bytes, for\nexample, could be allocated for 70 bits.\n\nThis is a problem in itself if the Least Significat Bit in a long is in\nthe byte with the largest address, which happens in Big Endian machines.\nThis means genalloc is not allocating the byte in which it will try to\nset or check for a bit.\n\nThis may end up in memory corruption, where genalloc will try to set the\nbits it has not allocated.  In fact, genalloc may not set these bits\nbecause it may find them already set, because they were not zeroed since\nthey were not allocated.  And that\u0027s what causes a BUG when\ngen_pool_destroy is called and check for any set bits.\n\nWhat really happens is that genalloc uses kmalloc_node with __GFP_ZERO\non gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab\nwill be cleared, not only the requested bytes.  Since struct\ngen_pool_chunk has a size that is a multiple of 8, and slab sizes are\nmultiples of 8, we get lucky and allocate and clear the right amount of\nbytes.\n\nHower, this is not the case with SLOB or with older code that did memset\nafter allocating instead of using __GFP_ZERO.\n\nSo, a simple module as this (running 3.6.0), will cause a crash when\nrmmod\u0027ed.\n\n  [root@phantom-lp2 foo]# cat foo.c\n  #include \u003clinux/kernel.h\u003e\n  #include \u003clinux/module.h\u003e\n  #include \u003clinux/init.h\u003e\n  #include \u003clinux/genalloc.h\u003e\n\n  MODULE_LICENSE(\"GPL\");\n  MODULE_VERSION(\"0.1\");\n\n  static struct gen_pool *foo_pool;\n\n  static __init int foo_init(void)\n  {\n          int ret;\n          foo_pool \u003d gen_pool_create(10, -1);\n          if (!foo_pool)\n                  return -ENOMEM;\n          ret \u003d gen_pool_add(foo_pool, 0xa0000000, 32 \u003c\u003c 10, -1);\n          if (ret) {\n                  gen_pool_destroy(foo_pool);\n                  return ret;\n          }\n          return 0;\n  }\n\n  static __exit void foo_exit(void)\n  {\n          gen_pool_destroy(foo_pool);\n  }\n\n  module_init(foo_init);\n  module_exit(foo_exit);\n  [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB\n  CONFIG_SLOB\u003dy\n  [root@phantom-lp2 foo]# insmod ./foo.ko\n  [root@phantom-lp2 foo]# rmmod foo\n  ------------[ cut here ]------------\n  kernel BUG at lib/genalloc.c:243!\n  cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]\n      pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110\n      lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110\n      sp: c0000000bb0e7be0\n     msr: 8000000000029032\n    current \u003d 0xc0000000bb0e0000\n    paca    \u003d 0xc000000006d30e00   softe: 0        irq_happened: 0x01\n      pid   \u003d 13044, comm \u003d rmmod\n  kernel BUG at lib/genalloc.c:243!\n  [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]\n  [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290\n  [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94\n  --- Exception: c00 (System Call) at 000000800753d1a0\n  SP (fffd0b0e640) is in userspace\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Benjamin Gaignard \u003cbenjamin.gaignard@stericsson.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe73fbe1c5eda709084dedb66cbdd4b86826cce7",
      "tree": "14b8e5919cd00b1c38ddff56eebb00c17c4d2905",
      "parents": [
        "0db63d7e25f96e2c6da925c002badf6f144ddf30"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Oct 19 13:57:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 14:07:48 2012 -0700"
      },
      "message": "lib/dma-debug.c: fix __hash_bucket_find()\n\nIf there is only one match, the unique matched entry should be returned.\n\nWithout the fix, the upcoming dma debug interfaces (\"dma-debug: new\ninterfaces to debug dma mapping errors\") can\u0027t work reliably because\nonly device and dma_addr are passed to dma_mapping_error().\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nTested-by: Shuah Khan \u003cshuah.khan@hp.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Jakub Kicinski \u003ckubakici@wp.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d25282d1c9b9bc4cda7f9d3c0205108e99aa7a9d",
      "tree": "f414482d768b015a609924293b779b4ad0b8f764",
      "parents": [
        "b6eea87fc6850d3531a64a27d2323a4498cd4e43",
        "dbadc17683e6c673a69b236c0f041b931cc55c42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "message": "Merge branch \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module signing support from Rusty Russell:\n \"module signing is the highlight, but it\u0027s an all-over David Howells frenzy...\"\n\nHmm \"Magrathea: Glacier signing key\". Somebody has been reading too much HHGTTG.\n\n* \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)\n  X.509: Fix indefinite length element skip error handling\n  X.509: Convert some printk calls to pr_devel\n  asymmetric keys: fix printk format warning\n  MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking\n  MODSIGN: Make mrproper should remove generated files.\n  MODSIGN: Use utf8 strings in signer\u0027s name in autogenerated X.509 certs\n  MODSIGN: Use the same digest for the autogen key sig as for the module sig\n  MODSIGN: Sign modules during the build process\n  MODSIGN: Provide a script for generating a key ID from an X.509 cert\n  MODSIGN: Implement module signature checking\n  MODSIGN: Provide module signing public keys to the kernel\n  MODSIGN: Automatically generate module signing keys if missing\n  MODSIGN: Provide Kconfig options\n  MODSIGN: Provide gitignore and make clean rules for extra files\n  MODSIGN: Add FIPS policy\n  module: signature checking hook\n  X.509: Add a crypto key parser for binary (DER) X.509 certificates\n  MPILIB: Provide a function to read raw data into an MPI\n  X.509: Add an ASN.1 decoder\n  X.509: Add simple ASN.1 grammar compiler\n  ...\n"
    },
    {
      "commit": "14ffe009ca60856555df3aec942239d8beed74d3",
      "tree": "b5639c028c996a6907ac0cf6e9f0175398a3a62b",
      "parents": [
        "ce40be7a820bb393ac4ac69865f018d2f4038cf0",
        "ec073619cdda99ffb6a07d3b8000569f5210815a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:14:16 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:14:16 2012 +0900"
      },
      "message": "Merge branch \u0027akpm\u0027 (Fixups from Andrew)\n\nMerge misc fixes from Andrew Morton:\n \"Followups, fixes and some random stuff I found on the internet.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (11 patches)\n  perf: fix duplicate header inclusion\n  memcg, kmem: fix build error when CONFIG_INET is disabled\n  rtc: kconfig: fix RTC_INTF defaults connected to RTC_CLASS\n  rapidio: fix comment\n  lib/kasprintf.c: use kmalloc_track_caller() to get accurate traces for kvasprintf\n  rapidio: update for destination ID allocation\n  rapidio: update asynchronous discovery initialization\n  rapidio: use msleep in discovery wait\n  mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip()\n  arch/powerpc/platforms/pseries/hotplug-memory.c: section removal cleanups\n  arch/powerpc/platforms/pseries/hotplug-memory.c: fix section handling code\n"
    },
    {
      "commit": "ce40be7a820bb393ac4ac69865f018d2f4038cf0",
      "tree": "b1fe5a93346eb06f22b1c303d63ec5456d7212ab",
      "parents": [
        "ba0a5a36f60e4c1152af3a2ae2813251974405bf",
        "02f3939e1a9357b7c370a4a69717cf9c02452737"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 09:04:23 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 09:04:23 2012 +0900"
      },
      "message": "Merge branch \u0027for-3.7/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO update from Jens Axboe:\n \"Core block IO bits for 3.7.  Not a huge round this time, it contains:\n\n   - First series from Kent cleaning up and generalizing bio allocation\n     and freeing.\n\n   - WRITE_SAME support from Martin.\n\n   - Mikulas patches to prevent O_DIRECT crashes when someone changes\n     the block size of a device.\n\n   - Make bio_split() work on data-less bio\u0027s (like trim/discards).\n\n   - A few other minor fixups.\"\n\nFixed up silent semantic mis-merge as per Mikulas Patocka and Andrew\nMorton.  It is due to the VM no longer using a prio-tree (see commit\n6b2dbba8b6ac: \"mm: replace vma prio_tree with an interval tree\").\n\nSo make set_blocksize() use mapping_mapped() instead of open-coding the\ninternal VM knowledge that has changed.\n\n* \u0027for-3.7/core\u0027 of git://git.kernel.dk/linux-block: (26 commits)\n  block: makes bio_split support bio without data\n  scatterlist: refactor the sg_nents\n  scatterlist: add sg_nents\n  fs: fix include/percpu-rwsem.h export error\n  percpu-rw-semaphore: fix documentation typos\n  fs/block_dev.c:1644:5: sparse: symbol \u0027blkdev_mmap\u0027 was not declared\n  blockdev: turn a rw semaphore into a percpu rw semaphore\n  Fix a crash when block device is read and block size is changed at the same time\n  block: fix request_queue-\u003eflags initialization\n  block: lift the initial queue bypass mode on blk_register_queue() instead of blk_init_allocated_queue()\n  block: ioctl to zero block ranges\n  block: Make blkdev_issue_zeroout use WRITE SAME\n  block: Implement support for WRITE SAME\n  block: Consolidate command flag and queue limit checks for merges\n  block: Clean up special command handling logic\n  block/blk-tag.c: Remove useless kfree\n  block: remove the duplicated setting for congestion_threshold\n  block: reject invalid queue attribute values\n  block: Add bio_clone_bioset(), bio_clone_kmalloc()\n  block: Consolidate bio_alloc_bioset(), bio_kmalloc()\n  ...\n"
    },
    {
      "commit": "3e1aa66bd423950aa69c3d50d91818af1d16e0a7",
      "tree": "3f9f0f6e2f396e7bf32978816c49e99a28855d56",
      "parents": [
        "4ed134beee42a5c9fc4b439f1e498363066e2516"
      ],
      "author": {
        "name": "Ezequiel Garcia",
        "email": "elezegarcia@gmail.com",
        "time": "Wed Oct 10 15:54:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 08:50:15 2012 +0900"
      },
      "message": "lib/kasprintf.c: use kmalloc_track_caller() to get accurate traces for kvasprintf\n\nPreviously kvasprintf() allocation was being done through kmalloc(),\nthus producing an inaccurate trace report.\n\nThis is a common problem: in order to get accurate callsite tracing, a\nlib/utils function shouldn\u0027t allocate kmalloc but instead use\nkmalloc_track_caller.\n\nSigned-off-by: Ezequiel Garcia \u003celezegarcia@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbadc17683e6c673a69b236c0f041b931cc55c42",
      "tree": "ec29aabfa428ca2c06caba94595b8c5d51a687e7",
      "parents": [
        "2f1c4fef103ef914e266588af263fb42b502b347"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 04 14:21:23 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:06:39 2012 +1030"
      },
      "message": "X.509: Fix indefinite length element skip error handling\n\nasn1_find_indefinite_length() returns an error indicator of -1, which the\ncaller asn1_ber_decoder() places in a size_t (which is usually unsigned) and\nthen checks to see whether it is less than 0 (which it can\u0027t be).  This can\nlead to the following warning:\n\n\tlib/asn1_decoder.c:320 asn1_ber_decoder()\n\t\twarn: unsigned \u0027len\u0027 is never less than zero.\n\nInstead, asn1_find_indefinite_length() update the caller\u0027s idea of the data\ncursor and length separately from returning the error code.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ed8ea8150182f8d715fceb3b175ef0a9ebacd872",
      "tree": "3af48f3a947df4dc5a0df660988f61d454a88cf2",
      "parents": [
        "86c2ad19956f84f2191e062fcb979367b6365871"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:42 2012 +0900"
      },
      "message": "mm: add CONFIG_DEBUG_VM_RB build option\n\nAdd a CONFIG_DEBUG_VM_RB build option for the previously existing\nDEBUG_MM_RB code.  Now that Andi Kleen modified it to avoid using\nrecursive algorithms, we can expose it a bit more.\n\nAlso extend this code to validate_mm() after stack expansion, and to check\nthat the vma\u0027s start and last pgoffs have not changed since the nodes were\ninserted on the anon vma interval tree (as it is important that the nodes\nbe reindexed after each such update).\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9826a516ff77c5820e591211e4f3e58ff36f46be",
      "tree": "bdec1e2fe5ff95569795069bac73977faba17d57",
      "parents": [
        "9c079add0d0f45220f4bb37febf0621137ec2d38"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "mm: interval tree updates\n\nUpdate the generic interval tree code that was introduced in \"mm: replace\nvma prio_tree with an interval tree\".\n\nChanges:\n\n- fixed \u0027endpoing\u0027 typo noticed by Andrew Morton\n\n- replaced include/linux/interval_tree_tmpl.h, which was used as a\n  template (including it automatically defined the interval tree\n  functions) with include/linux/interval_tree_generic.h, which only\n  defines a preprocessor macro INTERVAL_TREE_DEFINE(), which itself\n  defines the interval tree functions when invoked. Now that is a very\n  long macro which is unfortunate, but it does make the usage sites\n  (lib/interval_tree.c and mm/interval_tree.c) a bit nicer than previously.\n\n- make use of RB_DECLARE_CALLBACKS() in the INTERVAL_TREE_DEFINE() macro,\n  instead of duplicating that code in the interval tree template.\n\n- replaced vma_interval_tree_add(), which was actually handling the\n  nonlinear and interval tree cases, with vma_interval_tree_insert_after()\n  which handles only the interval tree case and has an API that is more\n  consistent with the other interval tree handling functions.\n  The nonlinear case is now handled explicitly in kernel/fork.c dup_mmap().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c079add0d0f45220f4bb37febf0621137ec2d38",
      "tree": "ce6ba6d7e2d517a2004de856c882f2a08af12be2",
      "parents": [
        "147e615f83c2c36caf89e7a3bf78090ade6f266c"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "rbtree: move augmented rbtree functionality to rbtree_augmented.h\n\nProvide rb_insert_augmented() and rb_erase_augmented() through a new\nrbtree_augmented.h include file.  rb_erase_augmented() is defined there as\nan __always_inline function, in order to allow inlining of augmented\nrbtree callbacks into it.  Since this generates a relatively large\nfunction, each augmented rbtree user should make sure to have a single\ncall site.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "147e615f83c2c36caf89e7a3bf78090ade6f266c",
      "tree": "0cd64fd67f4b55bbe364217911a8100827c8b04f",
      "parents": [
        "85d3a316c714197f94e75c1e5b2d37607d66e5de"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "prio_tree: remove\n\nAfter both prio_tree users have been converted to use red-black trees,\nthere is no need to keep around the prio tree library anymore.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fff3fd8a1210a165252cd7cd01206da7a90d3a06",
      "tree": "3db89d48720ba726999e9d8486d8e991c7664123",
      "parents": [
        "3908836aa77e3621aaf2101f2920e01d7c8460d6"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "rbtree: add prio tree and interval tree tests\n\nPatch 1 implements support for interval trees, on top of the augmented\nrbtree API. It also adds synthetic tests to compare the performance of\ninterval trees vs prio trees. Short answers is that interval trees are\nslightly faster (~25%) on insert/erase, and much faster (~2.4 - 3x)\non search. It is debatable how realistic the synthetic test is, and I have\nnot made such measurements yet, but my impression is that interval trees\nwould still come out faster.\n\nPatch 2 uses a preprocessor template to make the interval tree generic,\nand uses it as a replacement for the vma prio_tree.\n\nPatch 3 takes the other prio_tree user, kmemleak, and converts it to use\na basic rbtree. We don\u0027t actually need the augmented rbtree support here\nbecause the intervals are always non-overlapping.\n\nPatch 4 removes the now-unused prio tree library.\n\nPatch 5 proposes an additional optimization to rb_erase_augmented, now\nproviding it as an inline function so that the augmented callbacks can be\ninlined in. This provides an additional 5-10% performance improvement\nfor the interval tree insert/erase benchmark. There is a maintainance cost\nas it exposes augmented rbtree users to some of the rbtree library internals;\nhowever I think this cost shouldn\u0027t be too high as I expect the augmented\nrbtree will always have much less users than the base rbtree.\n\nI should probably add a quick summary of why I think it makes sense to\nreplace prio trees with augmented rbtree based interval trees now.  One of\nthe drivers is that we need augmented rbtrees for Rik\u0027s vma gap finding\ncode, and once you have them, it just makes sense to use them for interval\ntrees as well, as this is the simpler and more well known algorithm.  prio\ntrees, in comparison, seem *too* clever: they impose an additional \u0027heap\u0027\nconstraint on the tree, which they use to guarantee a faster worst-case\ncomplexity of O(k+log N) for stabbing queries in a well-balanced prio\ntree, vs O(k*log N) for interval trees (where k\u003dnumber of matches,\nN\u003dnumber of intervals).  Now this sounds great, but in practice prio trees\ndon\u0027t realize this theorical benefit.  First, the additional constraint\nmakes them harder to update, so that the kernel implementation has to\nsimplify things by balancing them like a radix tree, which is not always\nideal.  Second, the fact that there are both index and heap properties\nmakes both tree manipulation and search more complex, which results in a\nhigher multiplicative time constant.  As it turns out, the simple interval\ntree algorithm ends up running faster than the more clever prio tree.\n\nThis patch:\n\nAdd two test modules:\n\n- prio_tree_test measures the performance of lib/prio_tree.c, both for\n  insertion/removal and for stabbing searches\n\n- interval_tree_test measures the performance of a library of equivalent\n  functionality, built using the augmented rbtree support.\n\nIn order to support the second test module, lib/interval_tree.c is\nintroduced. It is kept separate from the interval_tree_test main file\nfor two reasons: first we don\u0027t want to provide an unfair advantage\nover prio_tree_test by having everything in a single compilation unit,\nand second there is the possibility that the interval tree functionality\ncould get some non-test users in kernel over time.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3908836aa77e3621aaf2101f2920e01d7c8460d6",
      "tree": "3e8f5b619f9e093d9d53180bb6f496319ddeb946",
      "parents": [
        "9d9e6f9703bbd642f3f2f807e6aaa642a4cbcec9"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:38 2012 +0900"
      },
      "message": "rbtree: add RB_DECLARE_CALLBACKS() macro\n\nAs proposed by Peter Zijlstra, this makes it easier to define the augmented\nrbtree callbacks.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d9e6f9703bbd642f3f2f807e6aaa642a4cbcec9",
      "tree": "6d0061d6c1369bb006da753cc2cea55df60efe0f",
      "parents": [
        "14b94af0b251a2c80885b60538166fb7d04a642e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:38 2012 +0900"
      },
      "message": "rbtree: remove prior augmented rbtree implementation\n\nconvert arch/x86/mm/pat_rbtree.c to the proposed augmented rbtree api\nand remove the old augmented rbtree implementation.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14b94af0b251a2c80885b60538166fb7d04a642e",
      "tree": "ef447d340435c441f8c3e54eb8f26f747aa73108",
      "parents": [
        "dadf93534f125b9eda486b471446a8456a603d27"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:37 2012 +0900"
      },
      "message": "rbtree: faster augmented rbtree manipulation\n\nIntroduce new augmented rbtree APIs that allow minimal recalculation of\naugmented node information.\n\nA new callback is added to the rbtree insertion and erase rebalancing\nfunctions, to be called on each tree rotations. Such rotations preserve\nthe subtree\u0027s root augmented value, but require recalculation of the one\nchild that was previously located at the subtree root.\n\nIn the insertion case, the handcoded search phase must be updated to\nmaintain the augmented information on insertion, and then the rbtree\ncoloring/rebalancing algorithms keep it up to date.\n\nIn the erase case, things are more complicated since it is library\ncode that manipulates the rbtree in order to remove internal nodes.\nThis requires a couple additional callbacks to copy a subtree\u0027s\naugmented value when a new root is stitched in, and to recompute\naugmented values down the ancestry path when a node is removed from\nthe tree.\n\nIn order to preserve maximum speed for the non-augmented case,\nwe provide two versions of each tree manipulation function.\nrb_insert_augmented() is the augmented equivalent of rb_insert_color(),\nand rb_erase_augmented() is the augmented equivalent of rb_erase().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dadf93534f125b9eda486b471446a8456a603d27",
      "tree": "4d796ac97a940683d008fdcb2040dc84d1405970",
      "parents": [
        "4f035ad67f4633c233cb3642711d49b4efc9c82d"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:37 2012 +0900"
      },
      "message": "rbtree: augmented rbtree test\n\nSmall test to measure the performance of augmented rbtrees.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f035ad67f4633c233cb3642711d49b4efc9c82d",
      "tree": "151fd5ff00a07da479805a01cb8b1d370db72d8f",
      "parents": [
        "46b6135a7402ac23c5b25f2bd79b03bab8f98278"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:37 2012 +0900"
      },
      "message": "rbtree: low level optimizations in rb_erase()\n\nVarious minor optimizations in rb_erase():\n- Avoid multiple loading of node-\u003e__rb_parent_color when computing parent\n  and color information (possibly not in close sequence, as there might\n  be further branches in the algorithm)\n- In the 1-child subcase of case 1, copy the __rb_parent_color field from\n  the erased node to the child instead of recomputing it from the desired\n  parent and color\n- When searching for the erased node\u0027s successor, differentiate between\n  cases 2 and 3 based on whether any left links were followed. This avoids\n  a condition later down.\n- In case 3, keep a pointer to the erased node\u0027s right child so we don\u0027t\n  have to refetch it later to adjust its parent.\n- In the no-childs subcase of cases 2 and 3, place the rebalance assigment\n  last so that the compiler can remove the following if(rebalance) test.\n\nAlso, added some comments to illustrate cases 2 and 3.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46b6135a7402ac23c5b25f2bd79b03bab8f98278",
      "tree": "8430c191a455b1ff48c62229731ded4cbc71a9a1",
      "parents": [
        "60670b8034d6e2ba860af79c9379b7788d09db73"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:37 2012 +0900"
      },
      "message": "rbtree: handle 1-child recoloring in rb_erase() instead of rb_erase_color()\n\nAn interesting observation for rb_erase() is that when a node has\nexactly one child, the node must be black and the child must be red.\nAn interesting consequence is that removing such a node can be done by\nsimply replacing it with its child and making the child black,\nwhich we can do efficiently in rb_erase(). __rb_erase_color() then\nonly needs to handle the no-childs case and can be modified accordingly.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60670b8034d6e2ba860af79c9379b7788d09db73",
      "tree": "5fed30a98d29a03c078f756275ba34c830fee36c",
      "parents": [
        "7abc704ae399fcb9c51ca200b0456f8a975a8011"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:36 2012 +0900"
      },
      "message": "rbtree: place easiest case first in rb_erase()\n\nIn rb_erase, move the easy case (node to erase has no more than\n1 child) first. I feel the code reads easier that way.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7abc704ae399fcb9c51ca200b0456f8a975a8011",
      "tree": "3180bbf50ef3d25f0647362ecc7e7925f884d738",
      "parents": [
        "28d7530928d01638678f63c3c70113540b0e6abe"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:36 2012 +0900"
      },
      "message": "rbtree: add __rb_change_child() helper function\n\nAdd __rb_change_child() as an inline helper function to replace code that\nwould otherwise be duplicated 4 times in the source.\n\nNo changes to binary size or speed.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28d7530928d01638678f63c3c70113540b0e6abe",
      "tree": "24360edfdb268991264c9722bc232c0e8dd2612b",
      "parents": [
        "59633abf34e2f44b8e772a2c12a92132aa7c2220"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:36 2012 +0900"
      },
      "message": "rbtree test: fix sparse warning about 64-bit constant\n\nJust a small fix to make sparse happy.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReported-by: Fengguang Wu \u003cwfg@linux.intel.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59633abf34e2f44b8e772a2c12a92132aa7c2220",
      "tree": "3a260a6100ae2c3e2dbade989c3692234081f1c7",
      "parents": [
        "7ce6ff9e5de99e7b72019c7de82fb438fe1dc5a0"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:35 2012 +0900"
      },
      "message": "rbtree: optimize fetching of sibling node\n\nWhen looking to fetch a node\u0027s sibling, we went through a sequence of:\n- check if node is the parent\u0027s left child\n- if it is, then fetch the parent\u0027s right child\n\nThis can be replaced with:\n- fetch the parent\u0027s right child as an assumed sibling\n- check that node is NOT the fetched child\n\nThis avoids fetching the parent\u0027s left child when node is actually\nthat child. Saves a bit on code size, though it doesn\u0027t seem to make\na large difference in speed.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ce6ff9e5de99e7b72019c7de82fb438fe1dc5a0",
      "tree": "8caa4509f6421f5e923a1dc361013db629f80f54",
      "parents": [
        "6280d2356fd8ad0936a63c10dc1e6accf48d0c61"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:35 2012 +0900"
      },
      "message": "rbtree: coding style adjustments\n\nSet comment and indentation style to be consistent with linux coding style\nand the rest of the file, as suggested by Peter Zijlstra\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6280d2356fd8ad0936a63c10dc1e6accf48d0c61",
      "tree": "867b959cc5441f5af443965acc60d2e78dc7fec0",
      "parents": [
        "e125d1471a4f8f1bf7ea9a83deb8d23cb40bd712"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:35 2012 +0900"
      },
      "message": "rbtree: low level optimizations in __rb_erase_color()\n\nIn __rb_erase_color(), we often already have pointers to the nodes being\nrotated and/or know what their colors must be, so we can generate more\nefficient code than the generic __rb_rotate_left() and __rb_rotate_right()\nfunctions.\n\nAlso when the current node is red or when flipping the sibling\u0027s color,\nthe parent is already known so we can use the more efficient\nrb_set_parent_color() function to set the desired color.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e125d1471a4f8f1bf7ea9a83deb8d23cb40bd712",
      "tree": "00c6bb561cdb8d0cb455563aa233bffe73b7e6db",
      "parents": [
        "d6ff1273928ebf15466a85b7e1810cd00e72998b"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:34 2012 +0900"
      },
      "message": "rbtree: optimize case selection logic in __rb_erase_color()\n\nIn __rb_erase_color(), we have to select one of 3 cases depending on the\ncolor on the \u0027other\u0027 node children.  If both children are black, we flip a\nfew node colors and iterate.  Otherwise, we do either one or two tree\nrotations, depending on the color of the \u0027other\u0027 child opposite to \u0027node\u0027,\nand then we are done.\n\nThe corresponding logic had duplicate checks for the color of the \u0027other\u0027\nchild opposite to \u0027node\u0027.  It was checking it first to determine if both\nchildren are black, and then to determine how many tree rotations are\nrequired.  Rearrange the logic to avoid that extra check.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6ff1273928ebf15466a85b7e1810cd00e72998b",
      "tree": "709cd0702c1ae1366994382bcd170c37ea857149",
      "parents": [
        "5bc9188aa207dafd47eab57df7c4fe5b3d3f636a"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:34 2012 +0900"
      },
      "message": "rbtree: adjust node color in __rb_erase_color() only when necessary\n\nIn __rb_erase_color(), we were always setting a node to black after\nexiting the main loop.  And in one case, after fixing up the tree to\nsatisfy all rbtree invariants, we were setting the current node to root\njust to guarantee a loop exit, at which point the root would be set to\nblack.  However this is not necessary, as the root of an rbtree is already\nknown to be black.  The only case where the color flip is required is when\nwe exit the loop due to the current node being red, and it\u0027s easiest to\njust do the flip at that point instead of doing it after the loop.\n\n[adrian.hunter@intel.com: perf tools: fix build for another rbtree.c change]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Alexander Shishkin \u003calexander.shishkin@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bc9188aa207dafd47eab57df7c4fe5b3d3f636a",
      "tree": "09bce40b0253f38250dd180315d7b3fa22999988",
      "parents": [
        "6d58452dc066db61acdff7b84671db1b11a3de1c"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:34 2012 +0900"
      },
      "message": "rbtree: low level optimizations in rb_insert_color()\n\n- Use the newly introduced rb_set_parent_color() function to flip the color\n  of nodes whose parent is already known.\n- Optimize rb_parent() when the node is known to be red - there is no need\n  to mask out the color in that case.\n- Flipping gparent\u0027s color to red requires us to fetch its rb_parent_color\n  field, so we can reuse it as the parent value for the next loop iteration.\n- Do not use __rb_rotate_left() and __rb_rotate_right() to handle tree\n  rotations: we already have pointers to all relevant nodes, and know their\n  colors (either because we want to adjust it, or because we\u0027ve tested it,\n  or we can deduce it as black due to the node proximity to a known red node).\n  So we can generate more efficient code by making use of the node pointers\n  we already have, and setting both the parent and color attributes for\n  nodes all at once. Also in Case 2, some node attributes don\u0027t have to\n  be set because we know another tree rotation (Case 3) will always follow\n  and override them.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d58452dc066db61acdff7b84671db1b11a3de1c",
      "tree": "36df08157d975398c5416d068f83cd31b79ae2c7",
      "parents": [
        "1f0528653e41ec230c60f5738820e8a544731399"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:33 2012 +0900"
      },
      "message": "rbtree: adjust root color in rb_insert_color() only when necessary\n\nThe root node of an rbtree must always be black.  However,\nrb_insert_color() only needs to maintain this invariant when it has been\nbroken - that is, when it exits the loop due to the current (red) node\nbeing the root.  In all other cases (exiting after tree rotations, or\nexiting due to an existing black parent) the invariant is already\nsatisfied, so there is no need to adjust the root node color.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f0528653e41ec230c60f5738820e8a544731399",
      "tree": "f07f4eb1ed58122b810b586839833e0c015b681c",
      "parents": [
        "910a742d4ba863848c7283d69c21bfa779d3b9a8"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:33 2012 +0900"
      },
      "message": "rbtree: break out of rb_insert_color loop after tree rotation\n\nIt is a well known property of rbtrees that insertion never requires more\nthan two tree rotations.  In our implementation, after one loop iteration\nidentified one or two necessary tree rotations, we would iterate and look\nfor more.  However at that point the node\u0027s parent would always be black,\nwhich would cause us to exit the loop.\n\nWe can make the code flow more obvious by just adding a break statement\nafter the tree rotations, where we know we are done.  Additionally, in the\ncases where two tree rotations are necessary, we don\u0027t have to update the\n\u0027node\u0027 pointer as it wouldn\u0027t be used until the next loop iteration, which\nwe now avoid due to this break statement.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "910a742d4ba863848c7283d69c21bfa779d3b9a8",
      "tree": "324d473754194d806fdd254f5a4e58dfc8b4a221",
      "parents": [
        "bf7ad8eeab995710c766df49c9c69a8592ca0216"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:33 2012 +0900"
      },
      "message": "rbtree: performance and correctness test\n\nThis small module helps measure the performance of rbtree insert and\nerase.\n\nAdditionally, we run a few correctness tests to check that the rbtrees\nhave all desired properties:\n\n- contains the right number of nodes in the order desired,\n- never two consecutive red nodes on any path,\n- all paths to leaf nodes have the same number of black nodes,\n- root node is black\n\n[akpm@linux-foundation.org: fix printk warning: sparc64 cycles_t is unsigned long]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf7ad8eeab995710c766df49c9c69a8592ca0216",
      "tree": "737988d677b8ea408a44a58a949cc0e8eda02440",
      "parents": [
        "ea5272f5c94fb2ee62f4f15a5b88eef6184cd506"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:32 2012 +0900"
      },
      "message": "rbtree: move some implementation details from rbtree.h to rbtree.c\n\nrbtree users must use the documented APIs to manipulate the tree\nstructure.  Low-level helpers to manipulate node colors and parenthood are\nnot part of that API, so move them to lib/rbtree.c\n\n[dwmw2@infradead.org: fix jffs2 build issue due to renamed __rb_parent_color field]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c199a93a2d36b277a9fd209a0f2793f8460a215",
      "tree": "b7d6af9220ef445eb4a9f5f0966a3bc5306fe513",
      "parents": [
        "1457d2877864d918c546735bd89c29d5e2a542f1"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:32 2012 +0900"
      },
      "message": "rbtree: empty nodes have no color\n\nEmpty nodes have no color.  We can make use of this property to simplify\nthe code emitted by the RB_EMPTY_NODE and RB_CLEAR_NODE macros.  Also,\nwe can get rid of the rb_init_node function which had been introduced by\ncommit 88d19cf37952 (\"timers: Add rb_init_node() to allow for stack\nallocated rb nodes\") to avoid some issue with the empty node\u0027s color not\nbeing initialized.\n\nI\u0027m not sure what the RB_EMPTY_NODE checks in rb_prev() / rb_next() are\ndoing there, though.  axboe introduced them in commit 10fd48f2376d\n(\"rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev\").  The way I\nsee it, the \u0027empty node\u0027 abstraction is only used by rbtree users to\nflag nodes that they haven\u0027t inserted in any rbtree, so asking the\npredecessor or successor of such nodes doesn\u0027t make any sense.\n\nOne final rb_init_node() caller was recently added in sysctl code to\nimplement faster sysctl name lookups.  This code doesn\u0027t make use of\nRB_EMPTY_NODE at all, and from what I could see it only called\nrb_init_node() under the mistaken assumption that such initialization was\nrequired before node insertion.\n\n[sfr@canb.auug.org.au: fix net/ceph/osd_client.c build]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b2a60c484715e2d2f07d8192fd9f18435cbc77c",
      "tree": "b3dd901bd1e2a22d4ff7bf8c4d5c733e846d0d3f",
      "parents": [
        "b69ec42b1b194cc88f04b3fbcda8d3f93182d6c3"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Oct 08 16:28:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:14 2012 +0900"
      },
      "message": "Kconfig: clean up the long arch list for the DEBUG_BUGVERBOSE config option\n\nIntroduce HAVE_DEBUG_BUGVERBOSE config option and select it in\ncorresponding architecture Kconfig files.  Architectures that already\nselect GENERIC_BUG don\u0027t need to select HAVE_DEBUG_BUGVERBOSE.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b69ec42b1b194cc88f04b3fbcda8d3f93182d6c3",
      "tree": "0dc1fc677fceb3ab524388ded6d60573430b5a47",
      "parents": [
        "af1839eb4bd4fe079a125eb199205fceb6ae19e6"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Oct 08 16:28:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:14 2012 +0900"
      },
      "message": "Kconfig: clean up the long arch list for the DEBUG_KMEMLEAK config option\n\nIntroduce HAVE_DEBUG_KMEMLEAK config option and select it in corresponding\narchitecture Kconfig files.  DEBUG_KMEMLEAK now only depends on\nHAVE_DEBUG_KMEMLEAK.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1045992949160b56309b730b8bdc428f2f8b69e",
      "tree": "ca0e00fcd4502cb66df19f4e1aecbb1b4544908c",
      "parents": [
        "42d5ec27f873c654a68f7f865dcd7737513e9508"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 24 17:11:27 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:21 2012 +1030"
      },
      "message": "MPILIB: Provide a function to read raw data into an MPI\n\nProvide a function to read raw data of a predetermined size into an MPI rather\nthan expecting the size to be encoded within the data.  The data is assumed to\nrepresent an unsigned integer, and the resulting MPI will be positive.\n\nThe function looks like this:\n\n\tMPI mpi_read_raw_data(const void *, size_t);\n\nThis is useful for reading ASN.1 integer primitives where the length is encoded\nin the ASN.1 metadata.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "42d5ec27f873c654a68f7f865dcd7737513e9508",
      "tree": "a52fdc8d71dfc3724e4b2828fd53958e3774c761",
      "parents": [
        "4520c6a49af833c83de6c74525ce8e07bbe6d783"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 24 17:11:16 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:20 2012 +1030"
      },
      "message": "X.509: Add an ASN.1 decoder\n\nAdd an ASN.1 BER/DER/CER decoder.  This uses the bytecode from the ASN.1\ncompiler in the previous patch to inform it as to what to expect to find in the\nencoded byte stream.  The output from the compiler also tells it what functions\nto call on what tags, thus allowing the caller to retrieve information.\n\nThe decoder is called as follows:\n\n\tint asn1_decoder(const struct asn1_decoder *decoder,\n\t\t\t void *context,\n\t\t\t const unsigned char *data,\n\t\t\t size_t datalen);\n\nThe decoder argument points to the bytecode from the ASN.1 compiler.  context\nis the caller\u0027s context and is passed to the action functions.  data and\ndatalen define the byte stream to be decoded.\n\nNote that the decoder is currently limited to datalen being less than 64K.\nThis reduces the amount of stack space used by the decoder because ASN.1 is a\nnested construct.  Similarly, the decoder is limited to a maximum of 10 levels\nof constructed data outside of a leaf node also in an effort to keep stack\nusage down.\n\nThese restrictions can be raised if necessary.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4f73175d0375a7c1b3ae625e76acee8b39741f28",
      "tree": "78c47940a9530bf4342f258c322f8e21412f5830",
      "parents": [
        "a77ad6ea0b0bb1f9d1f52ed494bd72a5fdde208e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 21 23:30:51 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:18 2012 +1030"
      },
      "message": "X.509: Add utility functions to render OIDs as strings\n\nAdd a pair of utility functions to render OIDs as strings.  The first takes an\nencoded OID and turns it into a \"a.b.c.d\" form string:\n\n\tint sprint_oid(const void *data, size_t datasize,\n\t\t       char *buffer, size_t bufsize);\n\nThe second takes an OID enum index and calls the first on the data held\ntherein:\n\n\tint sprint_OID(enum OID oid, char *buffer, size_t bufsize);\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a77ad6ea0b0bb1f9d1f52ed494bd72a5fdde208e",
      "tree": "96f3bcb637dc80c7a92611237ce4a9b3f6466387",
      "parents": [
        "0b1568a4536ff287a87908d7fc35c05bd7736a53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 21 23:30:46 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:18 2012 +1030"
      },
      "message": "X.509: Implement simple static OID registry\n\nImplement a simple static OID registry that allows the mapping of an encoded\nOID to an enum value for ease of use.\n\nThe OID registry index enum appears in the:\n\n\tlinux/oid_registry.h\n\nheader file.  A script generates the registry from lines in the header file\nthat look like:\n\n\t\u003csp*\u003eOID_foo,\u003csp*\u003e/*\u003csp*\u003e1.2.3.4\u003csp*\u003e*/\n\nThe actual OID is taken to be represented by the numbers with interpolated\ndots in the comment.\n\nAll other lines in the header are ignored.\n\nThe registry is queries by calling:\n\n\tOID look_up_oid(const void *data, size_t datasize);\n\nThis returns a number from the registry enum representing the OID if found or\nOID__NR if not.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "12f008b6dc5ff1c822fdb2198d20e3dbdc92f3f5",
      "tree": "e8b2281155d6f962f6f4296efcd3dd02ebe02f6d",
      "parents": [
        "4ae71c1dce1e3d2270a0755988033e236b8e45d6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 21 23:25:22 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:15 2012 +1030"
      },
      "message": "MPILIB: Reinstate mpi_cmp[_ui]() and export for RSA signature verification\n\nReinstate and export mpi_cmp() and mpi_cmp_ui() from the MPI library for use by\nRSA signature verification as per RFC3447 section 5.2.2 step 1.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "aacf29bf1bf133f6219e6f8969d4ebc2ac76458f",
      "tree": "b4379ab6617d1e963020365e03cda0b551bc3237",
      "parents": [
        "cf7f601c067994f371ba77721d1e45fce61a4569"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Sep 13 13:09:33 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Oct 08 13:50:11 2012 +1030"
      },
      "message": "MPILIB: Provide count_leading/trailing_zeros() based on arch functions\n\nProvide count_leading/trailing_zeros() macros based on extant arch bit scanning\nfunctions rather than reimplementing from scratch in MPILIB.\n\nWhilst we\u0027re at it, turn count_foo_zeros(n, x) into n \u003d count_foo_zeros(x).\n\nAlso move the definition to asm-generic as other people may be interested in\nusing it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c0703c12ef6744b6d2565ec67a15aaf25d534abd",
      "tree": "aff6bcf3874dba969805b057f0ceb3ea0b0b2112",
      "parents": [
        "0e51793e162ca432fc5f04178cf82b80a92c2659",
        "009487258399cb4f431992919fa0f386d1b74ceb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 08 06:33:44 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 08 06:33:44 2012 +0900"
      },
      "message": "Merge tag \u0027iommu-updates-v3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU updates from Joerg Roedel:\n \"This time the IOMMU updates contain a bunch of fixes and cleanups to\n  various IOMMU drivers and the DMA debug code.  New features are the\n  code for IRQ remapping support with the AMD IOMMU (preperation for\n  that was already merged in the last release) and a debugfs interface\n  to export some statistics in the NVidia Tegra IOMMU driver.\"\n\n* tag \u0027iommu-updates-v3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (27 commits)\n  iommu/amd: Remove obsolete comment line\n  dma-debug: Remove local BUS_NOTIFY_UNBOUND_DRIVER define\n  iommu/amd: Fix possible use after free in get_irq_table()\n  iommu/amd: Report irq remapping through IOMMU-API\n  iommu/amd: Print message to system log when irq remapping is enabled\n  iommu/irq: Use amd_iommu_irq_ops if supported\n  iommu/amd: Make sure irq remapping still works on dma init failure\n  iommu/amd: Add initialization routines for AMD interrupt remapping\n  iommu/amd: Add call-back routine for HPET MSI\n  iommu/amd: Implement MSI routines for interrupt remapping\n  iommu/amd: Add IOAPIC remapping routines\n  iommu/amd: Add routines to manage irq remapping tables\n  iommu/amd: Add IRTE invalidation routine\n  iommu/amd: Make sure IOMMU is not considered to translate itself\n  iommu/amd: Split device table initialization into irq and dma part\n  iommu/amd: Check if IOAPIC information is correct\n  iommu/amd: Allocate data structures to keep track of irq remapping tables\n  iommu/amd: Add slab-cache for irq remapping tables\n  iommu/amd: Keep track of HPET and IOAPIC device ids\n  iommu/amd: Fix features reporting\n  ...\n"
    },
    {
      "commit": "33e2a4227ddff7c18921ac175fae3ab0e3ff8a76",
      "tree": "e3f8dfab4c54292b0266c0d585e47f3745e97fd1",
      "parents": [
        "4965f5667f36a95b41cda6638875bc992bd7d18b"
      ],
      "author": {
        "name": "Hein Tibosch",
        "email": "hein_tibosch@yahoo.es",
        "time": "Thu Oct 04 17:16:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:32 2012 +0900"
      },
      "message": "lib/decompress.c add __init to decompress_method and data\n\nFix the warning:\n\n  WARNING: vmlinux.o(.text+0x14cfd8): Section mismatch in reference from the variable compressed_formats to the function .init.text:gunzip()\n  The function compressed_formats() references\n  the function __init gunzip().\n  etc..\n\nWithin decompress.c, compressed_formats[] needs \u0027a __initdata annotation\u0027,\nbecause some of it\u0027s data members refer to functions which will be\nunloaded after init.\n\nConsequently, its user decompress_method() will get the __init prefix.\n\nSigned-off-by: Hein Tibosch \u003chein_tibosch@yahoo.es\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8290e2d2dcbf0d379d4b1379e17916515ee20a39",
      "tree": "b52a1e54446331aff7233ecdefdb8af479b33f5d",
      "parents": [
        "17d7aac9a55b164874f3d4b7b4f5af87ab457b84"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 04 17:13:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:58 2012 +0900"
      },
      "message": "scatterlist: atomic sg_mapping_iter() no longer needs disabled IRQs\n\nSG mapping iterator w/ SG_MITER_ATOMIC set required IRQ disabled because\nit originally used KM_BIO_SRC_IRQ to allow use from IRQ handlers.\nkmap_atomic() has long been updated to handle stacking atomic mapping\nrequests on per-cpu basis and only requires not sleeping while mapped.\n\nUpdate sg_mapping_iter such that atomic iterators only require disabling\npreemption instead of disabling IRQ.\n\nWhile at it, convert wte weird @ARG@ notations to @ARG in the comment of\nsg_miter_start().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17d7aac9a55b164874f3d4b7b4f5af87ab457b84",
      "tree": "edc4e76f1914385c4d04bda0a5e0cdf36be32ef3",
      "parents": [
        "da99075c1d368315e1508b6143226c0d27b621e0"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Thu Oct 04 17:13:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:58 2012 +0900"
      },
      "message": "lib/plist.c: make plist test announcements KERN_DEBUG\n\nThey show up in dmesg\n\n[    4.041094] start plist test\n[    4.045804] end plist test\n\nwithout a lot of meaning so hide them behind debug loglevel.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da99075c1d368315e1508b6143226c0d27b621e0",
      "tree": "1ceefd8dc83bcc569640b519c00b0313be88bf1e",
      "parents": [
        "214f766ea0909e743122966c4617b3a112e405d7"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Oct 04 17:13:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:58 2012 +0900"
      },
      "message": "lib/vsprintf.c: improve standard conformance of sscanf()\n\nXen\u0027s pciback points out a couple of deficiencies with vsscanf()\u0027s\nstandard conformance:\n\n- Trailing character matching cannot be checked by the caller: With a\n  format string of \"(%x:%x.%x) %n\" absence of the closing parenthesis\n  cannot be checked, as input of \"(00:00.0)\" doesn\u0027t cause the %n to be\n  evaluated (because of the code not skipping white space before the\n  trailing %n).\n\n- The parameter corresponding to a trailing %n could get filled even if\n  there was a matching error: With a format string of \"(%x:%x.%x)%n\",\n  input of \"(00:00.0]\" would still fill the respective variable pointed to\n  (and hence again make the mismatch non-detectable by the caller).\n\nThis patch aims at fixing those, but leaves other non-conforming aspects\nof it untouched, among them these possibly relevant ones:\n\n- improper handling of the assignment suppression character \u0027*\u0027 (blindly\n  discarding all succeeding non-white space from the format and input\n  strings),\n\n- not honoring conversion specifiers for %n, - not recognizing the C99\n  conversion specifier \u0027t\u0027 (recognized by vsprintf()).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "214f766ea0909e743122966c4617b3a112e405d7",
      "tree": "039650e9c3a803d30c6ee183138c63d5dcafe480",
      "parents": [
        "ca279cf1065fb689abea1dc7d8c11787729bb185"
      ],
      "author": {
        "name": "Vikram Mulukutla",
        "email": "markivx@codeaurora.org",
        "time": "Thu Oct 04 17:13:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:57 2012 +0900"
      },
      "message": "lib/spinlock_debug: avoid livelock in do_raw_spin_lock()\n\nThe logic in do_raw_spin_lock() attempts to acquire a spinlock by invoking\narch_spin_trylock() in a loop with a delay between each attempt.  Now\nconsider the following situation in a 2 CPU system:\n\n1. CPU-0 continually acquires and releases a spinlock in a\n   tight loop; it stays in this loop until some condition X\n   is satisfied. X can only be satisfied by another CPU.\n\n2. CPU-1 tries to acquire the same spinlock, in an attempt\n   to satisfy the aforementioned condition X. However, it\n   never sees the unlocked value of the lock because the\n   debug spinlock code uses trylock instead of just lock;\n   it checks at all the wrong moments - whenever CPU-0 has\n   locked the lock.\n\nNow in the absence of debug spinlocks, the architecture specific spinlock\ncode can correctly allow CPU-1 to wait in a \"queue\" (e.g., ticket\nspinlocks), ensuring that it acquires the lock at some point.  However,\nwith the debug spinlock code, livelock can easily occur due to the use of\ntry_lock, which obviously cannot put the CPU in that \"queue\".  This\nqueueing mechanism is implemented in both x86 and ARM spinlock code.\n\nNote that the situation mentioned above is not hypothetical.  A real\nproblem was encountered where CPU-0 was running hrtimer_cancel with\ninterrupts disabled, and CPU-1 was attempting to run the hrtimer that\nCPU-0 was trying to cancel.\n\nAddress this by actually attempting arch_spin_lock once it is suspected\nthat there is a spinlock lockup.  If we\u0027re in a situation that is\ndescribed above, the arch_spin_lock should succeed; otherwise other\ntimeout mechanisms (e.g., watchdog) should alert the system of a lockup.\nTherefore, if there is a genuine system problem and the spinlock can\u0027t be\nacquired, the end result (irrespective of this change being present) is\nthe same.  If there is a livelock caused by the debug code, this change\nwill allow the lock to be acquired, depending on the implementation of the\nlower level arch specific spinlock code.\n\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Vikram Mulukutla \u003cmarkivx@codeaurora.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca279cf1065fb689abea1dc7d8c11787729bb185",
      "tree": "fdde907d1c3198f81c9085f858ac64c7a3cc50d8",
      "parents": [
        "e96875677fb2b7cb739c5d7769824dff7260d31d"
      ],
      "author": {
        "name": "Benjamin Gaignard",
        "email": "benjamin.gaignard@linaro.org",
        "time": "Thu Oct 04 17:13:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:57 2012 +0900"
      },
      "message": "genalloc: make it possible to use a custom allocation algorithm\n\nPremit use of another algorithm than the default first-fit one.  For\nexample a custom algorithm could be used to manage alignment requirements.\n\nAs I can\u0027t predict all the possible requirements/needs for all allocation\nuses cases, I add a \"free\" field \u0027void *data\u0027 to pass any needed\ninformation to the allocation function.  For example \u0027data\u0027 could be used\nto handle a structure where you store the alignment, the expected memory\nbank, the requester device, or any information that could influence the\nallocation algorithm.\n\nAn usage example may look like this:\nstruct my_pool_constraints {\n\tint align;\n\tint bank;\n\t...\n};\n\nunsigned long my_custom_algo(unsigned long *map, unsigned long size,\n\t\tunsigned long start, unsigned int nr, void *data)\n{\n\tstruct my_pool_constraints *constraints \u003d data;\n\t...\n\tdeal with allocation contraints\n\t...\n\treturn the index in bitmap where perform the allocation\n}\n\nvoid create_my_pool()\n{\n\tstruct my_pool_constraints c;\n\tstruct gen_pool *pool \u003d gen_pool_create(...);\n\tgen_pool_add(pool, ...);\n\tgen_pool_set_algo(pool, my_custom_algo, \u0026c);\n}\n\nAdd of best-fit algorithm function:\nmost of the time best-fit is slower then first-fit but memory fragmentation\nis lower. The random buffer allocation/free tests don\u0027t show any arithmetic\nrelation between the allocation time and fragmentation but the\nbest-fit algorithm\nis sometime able to perform the allocation when the first-fit can\u0027t.\n\nThis new algorithm help to remove static allocations on ESRAM, a small but\nfast on-chip RAM of few KB, used for high-performance uses cases like DMA\nlinked lists, graphic accelerators, encoders/decoders. On the Ux500\n(in the ARM tree) we have define 5 ESRAM banks of 128 KB each and use of\nstatic allocations becomes unmaintainable:\ncd arch/arm/mach-ux500 \u0026\u0026 grep -r ESRAM .\n./include/mach/db8500-regs.h:/* Base address and bank offsets for ESRAM */\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BASE   0x40000000\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK_SIZE      0x00020000\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK0  U8500_ESRAM_BASE\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK1       (U8500_ESRAM_BASE + U8500_ESRAM_BANK_SIZE)\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK2       (U8500_ESRAM_BANK1 + U8500_ESRAM_BANK_SIZE)\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK3       (U8500_ESRAM_BANK2 + U8500_ESRAM_BANK_SIZE)\n./include/mach/db8500-regs.h:#define U8500_ESRAM_BANK4       (U8500_ESRAM_BANK3 + U8500_ESRAM_BANK_SIZE)\n./include/mach/db8500-regs.h:#define U8500_ESRAM_DMA_LCPA_OFFSET     0x10000\n./include/mach/db8500-regs.h:#define U8500_DMA_LCPA_BASE\n(U8500_ESRAM_BANK0 + U8500_ESRAM_DMA_LCPA_OFFSET)\n./include/mach/db8500-regs.h:#define U8500_DMA_LCLA_BASE U8500_ESRAM_BANK4\n\nI want to use genalloc to do dynamic allocations but I need to be able to\nfine tune the allocation algorithm. I my case best-fit algorithm give\nbetter results than first-fit, but it will not be true for every use case.\n\nSigned-off-by: Benjamin Gaignard \u003cbenjamin.gaignard@stericsson.com\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e96875677fb2b7cb739c5d7769824dff7260d31d",
      "tree": "4d33caeb4dc7584832945427ed8890b3e5c856db",
      "parents": [
        "8f1f66ed7e1bdb7c88bb0bc45ac78cd075430d78"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Thu Oct 04 17:13:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:57 2012 +0900"
      },
      "message": "lib/gcd.c: prevent possible div by 0\n\nAccount for all properties when a and/or b are 0:\ngcd(0, 0) \u003d 0\ngcd(a, 0) \u003d a\ngcd(0, b) \u003d b\n\nFixes no known problems in current kernels.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f1f66ed7e1bdb7c88bb0bc45ac78cd075430d78",
      "tree": "2087bd9b26dc1becbd34a05751be07ffdc6e27bb",
      "parents": [
        "77dd3b0bd17a0849b2f98b915ce3fc9247db1013"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Thu Oct 04 17:13:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:57 2012 +0900"
      },
      "message": "lib/Kconfig.debug: adjust hard-lockup related Kconfig options\n\nThe main option should not appear in the resulting .config when the\ndependencies aren\u0027t met (i.e.  use \"depends on\" rather than directly\nsetting the default from the combined dependency values).\n\nThe sub-options should depend on the main option rather than a more\ngeneric higher level one.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77dd3b0bd17a0849b2f98b915ce3fc9247db1013",
      "tree": "a6ff9f120d790b5559e3f91cf9849e9f84ee1e65",
      "parents": [
        "125c4c706b680c7831f0966ff873c1ad0354ec25"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@inktank.com",
        "time": "Thu Oct 04 17:13:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:56 2012 +0900"
      },
      "message": "lib/parser.c: avoid overflow in match_number()\n\nThe result of converting an integer value to another signed integer type\nthat\u0027s unable to represent the original value is implementation defined.\n(See notes in section 6.3.1.3 of the C standard.)\n\nIn match_number(), the result of simple_strtol() (which returns type long)\nis assigned to a value of type int.\n\nInstead, handle the result of simple_strtol() in a well-defined way, and\nreturn -ERANGE if the result won\u0027t fit in the int variable used to hold\nthe parsed result.\n\nNo current callers pay attention to the particular error value returned,\nso this additional return code shouldn\u0027t do any harm.\n\n[akpm@linux-foundation.org: coding-style tweaks]\nSigned-off-by: Alex Elder \u003celder@inktank.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "125c4c706b680c7831f0966ff873c1ad0354ec25",
      "tree": "2b45c5fdd3f69173774fc9ae92c3568cb9796d37",
      "parents": [
        "b74ca3b3fd0fac08167ff96287cece56e8ca6f4d"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Oct 04 17:13:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:56 2012 +0900"
      },
      "message": "idr: rename MAX_LEVEL to MAX_IDR_LEVEL\n\nTo avoid name conflicts:\n\n  drivers/video/riva/fbdev.c:281:9: sparse: preprocessor token MAX_LEVEL redefined\n\nWhile at it, also make the other names more consistent and add\nparentheses.\n\n[akpm@linux-foundation.org: repair fallout]\n[sfr@canb.auug.org.au: IB/mlx4: fix for MAX_ID_MASK to MAX_IDR_MASK name change]\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Bernd Petrovitsch \u003cbernd@petrovitsch.priv.at\u003e\nCc: walter harms \u003cwharms@bfs.de\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c59154e7548429ff80384803577176466d2ab9a",
      "tree": "183ba0962d9e4565f21087845cc4b8587c9a2e89",
      "parents": [
        "f40005165f7f0bda6cc268bdbcaad98a8f26fb1a"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Thu Oct 04 17:12:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:50 2012 +0900"
      },
      "message": "lib/vsprintf: update documentation to cover all of %p[Mm][FR]\n\nAcked-by: Andrei Emeltchenko \u003candrei.emeltchenko@intel.com\u003e\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f40005165f7f0bda6cc268bdbcaad98a8f26fb1a",
      "tree": "52cc2b69c8cbf30ec4c69f4381b333e7217595fd",
      "parents": [
        "cb239d0a97d573150d6106a92c0641da0d03f6a1"
      ],
      "author": {
        "name": "George Spelvin",
        "email": "linux@horizon.com",
        "time": "Thu Oct 04 17:12:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:49 2012 +0900"
      },
      "message": "lib: vsprintf: fix broken comments\n\nNumbering the 8 potential digits 2 though 9 never did make a lot of sense.\n\nSigned-off-by: George Spelvin \u003clinux@horizon.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb239d0a97d573150d6106a92c0641da0d03f6a1",
      "tree": "7557b629f6bf1dce2ee2b7953123a532040fb1ba",
      "parents": [
        "2359172a75986359ce9cf041a9aca6a32cdf8779"
      ],
      "author": {
        "name": "George Spelvin",
        "email": "linux@horizon.com",
        "time": "Thu Oct 04 17:12:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:49 2012 +0900"
      },
      "message": "lib: vsprintf: optimize put_dec_trunc8()\n\nIf you\u0027re going to have a conditional branch after each 32x32-\u003e64-bit\nmultiply, might as well shrink the code and make it a loop.\n\nThis also avoids using the long multiply for small integers.\n\n(This leaves the comments in a confusing state, but that\u0027s a separate\npatch to make review easier.)\n\nSigned-off-by: George Spelvin \u003clinux@horizon.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2359172a75986359ce9cf041a9aca6a32cdf8779",
      "tree": "bc5a80e6153d9c3cf749b7ec4f79874d8b321fe7",
      "parents": [
        "e49317d415f5a44bad8377a208d61902d752303e"
      ],
      "author": {
        "name": "George Spelvin",
        "email": "linux@horizon.com",
        "time": "Thu Oct 04 17:12:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:48 2012 +0900"
      },
      "message": "lib: vsprintf: optimize division by 10000\n\nThe same multiply-by-inverse technique can be used to convert division by\n10000 to a 32x32-\u003e64-bit multiply.\n\nSigned-off-by: George Spelvin \u003clinux@horizon.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e49317d415f5a44bad8377a208d61902d752303e",
      "tree": "2033f7152350144068f0bbe22a4735fc12fd4f30",
      "parents": [
        "6c0c0d4d1080840eabb3d055d2fd81911111c5fd"
      ],
      "author": {
        "name": "George Spelvin",
        "email": "linux@horizon.com",
        "time": "Thu Oct 04 17:12:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:48 2012 +0900"
      },
      "message": "lib: vsprintf: optimize division by 10 for small integers\n\nShrink the reciprocal approximations used in put_dec_full4() based on the\ncomments in put_dec_full9().\n\nSigned-off-by: George Spelvin \u003clinux@horizon.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f243af42adef5f589b8e39656284ca9c9374e44",
      "tree": "9da2b6a244968b625c14538aa165615f2ac070c8",
      "parents": [
        "c7fd5bc77e9dc8da74bf833d9312076a86d2823e"
      ],
      "author": {
        "name": "Joe Mario",
        "email": "jmario@redhat.com",
        "time": "Thu Oct 04 17:12:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:46 2012 +0900"
      },
      "message": "sections: fix const sections for crc32 table\n\nFix the const sections for the code generated by crc32 table.  There\u0027s\nno ro version of the cacheline aligned section, so we cannot put in\nconst data without a conflict Just don\u0027t make the crc tables const for\nnow.\n\n[ak@linux.intel.com: some fixes and new description]\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Joe Mario \u003cjmario@redhat.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56d92aa5cf7c96c70f81d0350c94faf46a9fb76d",
      "tree": "2fb5d5b891903cada4dff9c581c70d33340a3769",
      "parents": [
        "33c2a174120b2c1baec9d1dac513f9d4b761b26a",
        "c341ca45ce56143804ef5a8f4db753e554e640b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 22:09:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 22:09:10 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.7-x86-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull Xen update from Konrad Rzeszutek Wilk:\n \"Features:\n   - When hotplugging PCI devices in a PV guest we can allocate\n     Xen-SWIOTLB later.\n   - Cleanup Xen SWIOTLB.\n   - Support pages out grants from HVM domains in the backends.\n   - Support wild cards in xen-pciback.hide\u003d(BDF) arguments.\n   - Update grant status updates with upstream hypervisor.\n   - Boot PV guests with more than 128GB.\n   - Cleanup Xen MMU code/add comments.\n   - Obtain XENVERS using a preferred method.\n   - Lay out generic changes to support Xen ARM.\n   - Allow privcmd ioctl for HVM (used to do only PV).\n   - Do v2 of mmap_batch for privcmd ioctls.\n   - If hypervisor saves the LED keyboard light - we will now instruct\n     the kernel about its state.\n  Fixes:\n   - More fixes to Xen PCI backend for various calls/FLR/etc.\n   - With more than 4GB in a 64-bit PV guest disable native SWIOTLB.\n   - Fix up smatch warnings.\n   - Fix up various return values in privmcmd and mm.\"\n\n* tag \u0027stable/for-linus-3.7-x86-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (48 commits)\n  xen/pciback: Restore the PCI config space after an FLR.\n  xen-pciback: properly clean up after calling pcistub_device_find()\n  xen/vga: add the xen EFI video mode support\n  xen/x86: retrieve keyboard shift status flags from hypervisor.\n  xen/gndev: Xen backend support for paged out grant targets V4.\n  xen-pciback: support wild cards in slot specifications\n  xen/swiotlb: Fix compile warnings when using plain integer instead of NULL pointer.\n  xen/swiotlb: Remove functions not needed anymore.\n  xen/pcifront: Use Xen-SWIOTLB when initting if required.\n  xen/swiotlb: For early initialization, return zero on success.\n  xen/swiotlb: Use the swiotlb_late_init_with_tbl to init Xen-SWIOTLB late when PV PCI is used.\n  xen/swiotlb: Move the error strings to its own function.\n  xen/swiotlb: Move the nr_tbl determination in its own function.\n  xen/arm: compile and run xenbus\n  xen: resynchronise grant table status codes with upstream\n  xen/privcmd: return -EFAULT on error\n  xen/privcmd: Fix mmap batch ioctl error status copy back.\n  xen/privcmd: add PRIVCMD_MMAPBATCH_V2 ioctl\n  xen/mm: return more precise error from xen_remap_domain_range()\n  xen/mmu: If the revector fails, don\u0027t attempt to revector anything else.\n  ...\n"
    },
    {
      "commit": "aecdc33e111b2c447b622e287c6003726daa1426",
      "tree": "3e7657eae4b785e1a1fb5dfb225dbae0b2f0cfc6",
      "parents": [
        "a20acf99f75e49271381d65db097c9763060a1e8",
        "a3a6cab5ea10cca64d036851fe0d932448f2fe4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David Miller:\n\n 1) GRE now works over ipv6, from Dmitry Kozlov.\n\n 2) Make SCTP more network namespace aware, from Eric Biederman.\n\n 3) TEAM driver now works with non-ethernet devices, from Jiri Pirko.\n\n 4) Make openvswitch network namespace aware, from Pravin B Shelar.\n\n 5) IPV6 NAT implementation, from Patrick McHardy.\n\n 6) Server side support for TCP Fast Open, from Jerry Chu and others.\n\n 7) Packet BPF filter supports MOD and XOR, from Eric Dumazet and Daniel\n    Borkmann.\n\n 8) Increate the loopback default MTU to 64K, from Eric Dumazet.\n\n 9) Use a per-task rather than per-socket page fragment allocator for\n    outgoing networking traffic.  This benefits processes that have very\n    many mostly idle sockets, which is quite common.\n\n    From Eric Dumazet.\n\n10) Use up to 32K for page fragment allocations, with fallbacks to\n    smaller sizes when higher order page allocations fail.  Benefits are\n    a) less segments for driver to process b) less calls to page\n    allocator c) less waste of space.\n\n    From Eric Dumazet.\n\n11) Allow GRO to be used on GRE tunnels, from Eric Dumazet.\n\n12) VXLAN device driver, one way to handle VLAN issues such as the\n    limitation of 4096 VLAN IDs yet still have some level of isolation.\n    From Stephen Hemminger.\n\n13) As usual there is a large boatload of driver changes, with the scale\n    perhaps tilted towards the wireless side this time around.\n\nFix up various fairly trivial conflicts, mostly caused by the user\nnamespace changes.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1012 commits)\n  hyperv: Add buffer for extended info after the RNDIS response message.\n  hyperv: Report actual status in receive completion packet\n  hyperv: Remove extra allocated space for recv_pkt_list elements\n  hyperv: Fix page buffer handling in rndis_filter_send_request()\n  hyperv: Fix the missing return value in rndis_filter_set_packet_filter()\n  hyperv: Fix the max_xfer_size in RNDIS initialization\n  vxlan: put UDP socket in correct namespace\n  vxlan: Depend on CONFIG_INET\n  sfc: Fix the reported priorities of different filter types\n  sfc: Remove EFX_FILTER_FLAG_RX_OVERRIDE_IP\n  sfc: Fix loopback self-test with separate_tx_channels\u003d1\n  sfc: Fix MCDI structure field lookup\n  sfc: Add parentheses around use of bitfield macro arguments\n  sfc: Fix null function pointer in efx_sriov_channel_type\n  vxlan: virtual extensible lan\n  igmp: export symbol ip_mc_leave_group\n  netlink: add attributes to fdb interface\n  tg3: unconditionally select HWMON support when tg3 is enabled.\n  Revert \"net: ti cpsw ethernet: allow reading phy interface mode from DT\"\n  gre: fix sparse warning\n  ...\n"
    },
    {
      "commit": "759643ce39f13c416236e2609ccaed9792107b2f",
      "tree": "46503c499fe4dc51c10abfe0ed1e85fd7903be2f",
      "parents": [
        "a0d271cbfed1dd50278c6b06bead3d00ba0a88f9"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuah.khan@hp.com",
        "time": "Mon Oct 01 12:48:31 2012 -0600"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Oct 02 12:10:27 2012 +0200"
      },
      "message": "dma-debug: Remove local BUS_NOTIFY_UNBOUND_DRIVER define\n\nRemove local BUS_NOTIFY_UNBOUND_DRIVER define. This is not used since\nBUS_NOTIFY_UNBOUND_DRIVER is defined in include/linux/device.h\n\nSigned-off-by: Shuah Khan \u003cshuah.khan@hp.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "d9a807461fc8cc0d6ba589ea0730d139122af012",
      "tree": "9d8c7a044659d821748dd40718a22557c04e4299",
      "parents": [
        "3498d13b8090c0b0ef911409fbc503a7c4cca6ef",
        "70c048a238c780c226eb4b115ebaa908cb3b34ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 13:23:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 13:23:01 2012 -0700"
      },
      "message": "Merge tag \u0027usb-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB changes from Greg Kroah-Hartman:\n \"Here is the big USB pull request for 3.7-rc1\n\n  There are lots of gadget driver changes (including copying a bunch of\n  files into the drivers/staging/ccg/ directory so that the other gadget\n  drivers can be fixed up properly without breaking that driver), and we\n  remove the old obsolete ub.c driver from the tree.\n\n  There are also the usual XHCI set of updates, and other various driver\n  changes and updates.  We also are trying hard to remove the old dbg()\n  macro, but the final bits of that removal will be coming in through\n  the networking tree before we can delete it for good.\n\n  All of these patches have been in the linux-next tree.\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\nFix up several annoying - but fairly mindless - conflicts due to the\ntermios structure having moved into the tty device, and often clashing\nwith dbg -\u003e dev_dbg conversion.\n\n* tag \u0027usb-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (339 commits)\n  USB: ezusb: move ezusb.c from drivers/usb/serial to drivers/usb/misc\n  USB: uas: fix gcc warning\n  USB: uas: fix locking\n  USB: Fix race condition when removing host controllers\n  USB: uas: add locking\n  USB: uas: fix abort\n  USB: uas: remove aborted field, replace with status bit.\n  USB: uas: fix task management\n  USB: uas: keep track of command urbs\n  xhci: Intel Panther Point BEI quirk.\n  powerpc/usb: remove checking PHY_CLK_VALID for UTMI PHY\n  USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support\n  Revert \"usb : Add sysfs files to control port power.\"\n  USB: serial: remove vizzini driver\n  usb: host: xhci: Fix Null pointer dereferencing with 71c731a for non-x86 systems\n  Increase XHCI suspend timeout to 16ms\n  USB: ohci-at91: fix null pointer in ohci_hcd_at91_overcurrent_irq\n  USB: sierra_ms: don\u0027t keep unused variable\n  fsl/usb: Add support for USB controller version 2.4\n  USB: qcaux: add Pantech vendor class match\n  ...\n"
    },
    {
      "commit": "06d2fe153b9b35e57221e35831a26918f462db68",
      "tree": "f77cb72dfba7f2a47ceb93e120abd9399a24a1b9",
      "parents": [
        "3aebd34b1200a902a8662da8845824a02f00772e",
        "e0f21e6d52cc245e7d4f7e02ca4b7b6571660ec2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 12:10:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 12:10:44 2012 -0700"
      },
      "message": "Merge tag \u0027driver-core-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core merge from Greg Kroah-Hartman:\n \"Here is the big driver core update for 3.7-rc1.\n\n  A number of firmware_class.c updates (as you saw a month or so ago),\n  and some hyper-v updates and some printk fixes as well.  All patches\n  that are outside of the drivers/base area have been acked by the\n  respective maintainers, and have all been in the linux-next tree for a\n  while.\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\n* tag \u0027driver-core-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (95 commits)\n  memory: tegra{20,30}-mc: Fix reading incorrect register in mc_readl()\n  device.h: Add missing inline to #ifndef CONFIG_PRINTK dev_vprintk_emit\n  memory: emif: Add ifdef CONFIG_DEBUG_FS guard for emif_debugfs_[init|exit]\n  Documentation: Fixes some translation error in Documentation/zh_CN/gpio.txt\n  Documentation: Remove 3 byte redundant code at the head of the Documentation/zh_CN/arm/booting\n  Documentation: Chinese translation of Documentation/video4linux/omap3isp.txt\n  device and dynamic_debug: Use dev_vprintk_emit and dev_printk_emit\n  dev: Add dev_vprintk_emit and dev_printk_emit\n  netdev_printk/netif_printk: Remove a superfluous logging colon\n  netdev_printk/dynamic_netdev_dbg: Directly call printk_emit\n  dev_dbg/dynamic_debug: Update to use printk_emit, optimize stack\n  driver-core: Shut up dev_dbg_reatelimited() without DEBUG\n  tools/hv: Parse /etc/os-release\n  tools/hv: Check for read/write errors\n  tools/hv: Fix exit() error code\n  tools/hv: Fix file handle leak\n  Tools: hv: Implement the KVP verb - KVP_OP_GET_IP_INFO\n  Tools: hv: Rename the function kvp_get_ip_address()\n  Tools: hv: Implement the KVP verb - KVP_OP_SET_IP_INFO\n  Tools: hv: Add an example script to configure an interface\n  ...\n"
    },
    {
      "commit": "81f56e5375e84689b891e0e6c5a02ec12a1f18d9",
      "tree": "a1e128a71ff24fc705428df86a858076cfe4bc13",
      "parents": [
        "6c09931b3f987898f5c581d267ef269f5e2e9575",
        "27aa55c5e5123fa8b8ad0156559d34d7edff58ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 11:51:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 11:51:57 2012 -0700"
      },
      "message": "Merge tag \u0027arm64-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64\n\nPull arm64 support from Catalin Marinas:\n \"Linux support for the 64-bit ARM architecture (AArch64)\n\n  Features currently supported:\n   - 39-bit address space for user and kernel (each)\n   - 4KB and 64KB page configurations\n   - Compat (32-bit) user applications (ARMv7, EABI only)\n   - Flattened Device Tree (mandated for all AArch64 platforms)\n   - ARM generic timers\"\n\n* tag \u0027arm64-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (35 commits)\n  arm64: ptrace: remove obsolete ptrace request numbers from user headers\n  arm64: Do not set the SMP/nAMP processor bit\n  arm64: MAINTAINERS update\n  arm64: Build infrastructure\n  arm64: Miscellaneous header files\n  arm64: Generic timers support\n  arm64: Loadable modules\n  arm64: Miscellaneous library functions\n  arm64: Performance counters support\n  arm64: Add support for /proc/sys/debug/exception-trace\n  arm64: Debugging support\n  arm64: Floating point and SIMD\n  arm64: 32-bit (compat) applications support\n  arm64: User access library functions\n  arm64: Signal handling support\n  arm64: VDSO support\n  arm64: System calls handling\n  arm64: ELF definitions\n  arm64: SMP support\n  arm64: DMA mapping API\n  ...\n"
    },
    {
      "commit": "620e77533f29796df7aff861e79bd72e08554ebb",
      "tree": "844afce2333549bc5b8d7dc87a4875b9216a0023",
      "parents": [
        "6977b4c7736e8809b7959c66875a16c0bbcf2152",
        "fa34da708cbe1e2d9a2ee7fc68ea8fccbf095d12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:16:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:16:42 2012 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU changes from Ingo Molnar:\n\n 0. \u0027idle RCU\u0027:\n\n     Adds RCU APIs that allow non-idle tasks to enter RCU idle mode and\n     provides x86 code to make use of them, allowing RCU to treat\n     user-mode execution as an extended quiescent state when the new\n     RCU_USER_QS kernel configuration parameter is specified.  (Work is\n     in progress to port this to a few other architectures, but is not\n     part of this series.)\n\n 1.  A fix for a latent bug that has been in RCU ever since the addition\n     of CPU stall warnings.  This bug results in false-positive stall\n     warnings, but thus far only on embedded systems with severely\n     cut-down userspace configurations.\n\n 2.  Further reductions in latency spikes for huge systems, along with\n     additional boot-time adaptation to the actual hardware.\n\n     This is a large change, as it moves RCU grace-period initialization\n     and cleanup, along with quiescent-state forcing, from softirq to a\n     kthread.  However, it appears to be in quite good shape (famous\n     last words).\n\n 3.  Updates to documentation and rcutorture, the latter category\n     including keeping statistics on CPU-hotplug latencies and fixing\n     some initialization-time races.\n\n 4.  CPU-hotplug fixes and improvements.\n\n 5.  Idle-loop fixes that were omitted on an earlier submission.\n\n 6.  Miscellaneous fixes and improvements\n\nIn certain RCU configurations new kernel threads will show up (rcu_bh,\nrcu_sched), showing RCU processing overhead.\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (90 commits)\n  rcu: Apply micro-optimization and int/bool fixes to RCU\u0027s idle handling\n  rcu: Userspace RCU extended QS selftest\n  x86: Exit RCU extended QS on notify resume\n  x86: Use the new schedule_user API on userspace preemption\n  rcu: Exit RCU extended QS on user preemption\n  rcu: Exit RCU extended QS on kernel preemption after irq/exception\n  x86: Exception hooks for userspace RCU extended QS\n  x86: Unspaghettize do_general_protection()\n  x86: Syscall hooks for userspace RCU extended QS\n  rcu: Switch task\u0027s syscall hooks on context switch\n  rcu: Ignore userspace extended quiescent state by default\n  rcu: Allow rcu_user_enter()/exit() to nest\n  rcu: Settle config for userspace extended quiescent state\n  rcu: Make RCU_FAST_NO_HZ handle adaptive ticks\n  rcu: New rcu_user_enter_after_irq() and rcu_user_exit_after_irq() APIs\n  rcu: New rcu_user_enter() and rcu_user_exit() APIs\n  ia64: Add missing RCU idle APIs on idle loop\n  xtensa: Add missing RCU idle APIs on idle loop\n  score: Add missing RCU idle APIs on idle loop\n  parisc: Add missing RCU idle APIs on idle loop\n  ...\n"
    },
    {
      "commit": "6a06e5e1bb217be077e1f8ee2745b4c5b1aa02db",
      "tree": "8faea23112a11f52524eb413f71b7b02712d8b53",
      "parents": [
        "d9f72f359e00a45a6cd7cc2d5121b04b9dc927e1",
        "6672d90fe779dc0dfffe027c3ede12609df091c2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/team/team.c\n\tdrivers/net/usb/qmi_wwan.c\n\tnet/batman-adv/bat_iv_ogm.c\n\tnet/ipv4/fib_frontend.c\n\tnet/ipv4/route.c\n\tnet/l2tp/l2tp_netlink.c\n\nThe team, fib_frontend, route, and l2tp_netlink conflicts were simply\noverlapping changes.\n\nqmi_wwan and bat_iv_ogm were of the \"use HEAD\" variety.\n\nWith help from Antonio Quartulli.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "232f1b51062553b7cf49f99719fbd1b8a8d80f29",
      "tree": "bf0ad31232df77562ad42a48b1bf21a0e2948c3f",
      "parents": [
        "2e484610296b25f0a04b516bc144a00731d1d845"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Fri Sep 28 10:38:15 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Sep 28 10:38:15 2012 +0200"
      },
      "message": "scatterlist: refactor the sg_nents\n\nReplace \u0027while\u0027 with \u0027for\u0027 as suggested by Tejun Heo\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2e484610296b25f0a04b516bc144a00731d1d845",
      "tree": "d45467ec0b7c2446652e685b270427183471a5ad",
      "parents": [
        "c2b1ad800b66f62105a7fd250604d72e07202e66"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Thu Sep 27 12:45:28 2012 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Sep 27 12:45:28 2012 +0200"
      },
      "message": "scatterlist: add sg_nents\n\nUseful helper to know the number of entries in scatterlist.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "593d1006cdf710ab3469c0c37c184fea0bc3da97",
      "tree": "e4db58440018a52089e8d6b39160f753ab10df99",
      "parents": [
        "5217192b85480353aeeb395574e60d0db04f3676",
        "9b20aa63b8fc9a6a3b6831f4eae3621755e51211"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:03:56 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 25 10:03:56 2012 -0700"
      },
      "message": "Merge remote-tracking branch \u0027tip/core/rcu\u0027 into next.2012.09.25b\n\nResolved conflict in kernel/sched/core.c using Peter Zijlstra\u0027s\napproach from https://lkml.org/lkml/2012/9/5/585.\n"
    },
    {
      "commit": "b5bd6a0e5fa8c0376d9746c566fe3daaa51ec825",
      "tree": "ac746aa7a4f21b9ac4161b66fce9965ffeda9cb1",
      "parents": [
        "0e75898fe2499ece0ac3f1475982a828b3283b0d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 24 17:17:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 25 08:59:21 2012 -0700"
      },
      "message": "lib/flex_proportions.c: fix corruption of denominator in flexible proportions\n\nWhen racing with CPU hotplug, percpu_counter_sum() can return negative\nvalues for the number of observed events.\n\nThis confuses fprop_new_period(), which uses unsigned type and as a\nresult number of events is set to big *positive* number.  From that\nmoment on, things go pear shaped and can result e.g.  in division by\nzero as denominator is later truncated to 32-bits.\n\nThis bug causes a divide-by-zero oops in bdi_dirty_limit() in Borislav\u0027s\n3.6.0-rc6 based kernel.\n\nFix the issue by using a signed type in fprop_new_period().  That makes\nus bail out from the function without doing anything (mistakenly)\nthinking there are no events to age.  That makes aging somewhat\ninaccurate but getting accurate data would be rather hard.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReported-by: Borislav Petkov \u003cbp@amd64.org\u003e\nReported-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3ebfb96f396731ca2d0b108785d5da31b53ab00",
      "tree": "7bac429c3cad5f00894746270322d5a4119cea47",
      "parents": [
        "a10d206ef1a83121ab7430cb196e0376a7145b22"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Mon Jul 02 14:42:01 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 23 07:42:49 2012 -0700"
      },
      "message": "rcu: Add PROVE_RCU_DELAY to provoke difficult races\n\nThere have been some recent bugs that were triggered only when\npreemptible RCU\u0027s __rcu_read_unlock() was preempted just after setting\n-\u003ercu_read_lock_nesting to INT_MIN, which is a low-probability event.\nTherefore, reproducing those bugs (to say nothing of gaining confidence\nin alleged fixes) was quite difficult.  This commit therefore creates\na new debug-only RCU kernel config option that forces a short delay\nin __rcu_read_unlock() to increase the probability of those sorts of\nbugs occurring.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "a5f95155709cb854e96aa27969d110668cdbda9d",
      "tree": "c9392d6871184838bf81a0b70900e28558e92870",
      "parents": [
        "c571898ffc24a1768e1b2dabeac0fc7dd4c14601",
        "2a3bce8f6afb9118a7ac3c360a5baf7cdaec87bc"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Sat Sep 22 20:01:16 2012 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Sat Sep 22 20:01:24 2012 -0400"
      },
      "message": "Merge branch \u0027stable/late-swiotlb.v3.3\u0027 into stable/for-linus-3.7\n\n* stable/late-swiotlb.v3.3:\n  xen/swiotlb: Fix compile warnings when using plain integer instead of NULL pointer.\n  xen/swiotlb: Remove functions not needed anymore.\n  xen/pcifront: Use Xen-SWIOTLB when initting if required.\n  xen/swiotlb: For early initialization, return zero on success.\n  xen/swiotlb: Use the swiotlb_late_init_with_tbl to init Xen-SWIOTLB late when PV PCI is used.\n  xen/swiotlb: Move the error strings to its own function.\n  xen/swiotlb: Move the nr_tbl determination in its own function.\n  swiotlb: add the late swiotlb initialization function with iotlb memory\n  xen/swiotlb: With more than 4GB on 64-bit, disable the native SWIOTLB.\n  xen/swiotlb: Simplify the logic.\n\nConflicts:\n\tarch/x86/xen/pci-swiotlb-xen.c\n\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "666f355f3805d68b6ed5f7013806f1f65abfbf03",
      "tree": "a04490ab9e68e4113410b7e7399edb9369545dfe",
      "parents": [
        "05e4e5b87aab74f994acf9dd4bed4a8f1367cd09"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Sep 12 20:14:11 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Sep 17 06:10:05 2012 -0700"
      },
      "message": "device and dynamic_debug: Use dev_vprintk_emit and dev_printk_emit\n\nConvert direct calls of vprintk_emit and printk_emit to the\ndev_ equivalents.\n\nMake create_syslog_header static.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "c2c5a7051c556036b7beb8f4a89eefdc91c3245b",
      "tree": "926e7b486447b29c0195111e4d5ce098d2138d4e",
      "parents": [
        "b004ff4972e2a42aa4512c90cc6a9e4dc1bb36b6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Sep 12 20:13:01 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Sep 17 06:10:05 2012 -0700"
      },
      "message": "netdev_printk/netif_printk: Remove a superfluous logging colon\n\nnetdev_printk originally called dev_printk with %pV.\n\nThis style emitted the complete dev_printk header with\na colon followed by the netdev_name prefix followed\nby a colon.\n\nNow that netdev_printk does not call dev_printk, the\nextra colon is superfluous.  Remove it.\n\nExample:\nold: sky2 0000:02:00.0: eth0: Link is up at 100 Mbps, full duplex, flow control both\nnew: sky2 0000:02:00.0 eth0: Link is up at 100 Mbps, full duplex, flow control both\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b004ff4972e2a42aa4512c90cc6a9e4dc1bb36b6",
      "tree": "13d68f77aeb0db8cf32ff81f7fc6931640c13f70",
      "parents": [
        "798efc60e4276825df34af0e91ecbe0781237834"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Sep 12 20:12:19 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Sep 17 06:08:30 2012 -0700"
      },
      "message": "netdev_printk/dynamic_netdev_dbg: Directly call printk_emit\n\nA lot of stack is used in recursive printks with %pV.\n\nUsing multiple levels of %pV (a logging function with %pV\nthat calls another logging function with %pV) can consume\nmore stack than necessary.\n\nAvoid excessive stack use by not calling dev_printk from\nnetdev_printk and dynamic_netdev_dbg.  Duplicate the logic\nand form of dev_printk instead.\n\nMake __netdev_printk static.\nRemove EXPORT_SYMBOL(__netdev_printk)\nWhitespace and brace style neatening.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "798efc60e4276825df34af0e91ecbe0781237834",
      "tree": "8ccec7118a7a76f5731fecb8507643c44936eb49",
      "parents": [
        "8f949b9a7e0bac3a9c3c29dc27c476a87e21db3e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Sep 12 20:11:29 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Sep 17 06:08:30 2012 -0700"
      },
      "message": "dev_dbg/dynamic_debug: Update to use printk_emit, optimize stack\n\ncommit c4e00daaa9\n(\"driver-core: extend dev_printk() to pass structured data\")\nchanged __dev_printk and broke dynamic-debug\u0027s ability to control the\ndynamic prefix of dev_dbg(dev,..).\n\ncommit af7f2158fd\n(\"drivers-core: make structured logging play nice with dynamic-debug\")\nmade a minimal correction.\n\nThe current dynamic debug code uses up to 3 recursion levels via %pV.\nThis can consume quite a bit of stack.  Directly call printk_emit to\nreduce the recursion depth.\n\nThese changes include:\n\ndev_dbg:\no Create and use function create_syslog_header to format the syslog\n  header for printk_emit uses.\no Call create_syslog_header and neaten __dev_printk\no Make __dev_printk static not global\no Remove include header declaration of __dev_printk\no Remove now unused EXPORT_SYMBOL() of __dev_printk\no Whitespace neatening\n\ndynamic_dev_dbg:\no Remove KERN_DEBUG from dynamic_emit_prefix\no Call create_syslog_header and printk_emit\no Whitespace neatening\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "8c2c3df31e3b87cb5348e48776c366ebd1dc5a7a",
      "tree": "c67b6e60bffd8d61a7d61ccb48f18cf1d6a68d75",
      "parents": [
        "10b663aef1c24794d32141be86b4dfcc64293bd0"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Apr 20 14:45:54 2012 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Sep 17 13:42:21 2012 +0100"
      },
      "message": "arm64: Build infrastructure\n\nThis patch adds Makefile and Kconfig files required for building an\nAArch64 kernel.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Tony Lindgren \u003ctony@atomide.com\u003e\nAcked-by: Nicolas Pitre \u003cnico@linaro.org\u003e\nAcked-by: Olof Johansson \u003colof@lixom.net\u003e\nAcked-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "2bcb132c693566bcb8208cc7ce66b72a4f852ecf",
      "tree": "6fc4f05ce18140d86aa78a10380a610734aeaef9",
      "parents": [
        "67e6da702753dac8f0540209dded80a0c4e60d81",
        "5698bd757d55b1bb87edd1a9744ab09c142abfc2"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Sep 16 20:42:46 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Sep 16 20:42:46 2012 -0700"
      },
      "message": "Merge 3.6-rc6 into usb-next\n\nThis resolves the merge problems with:\n\tdrivers/usb/dwc3/gadget.c\n\tdrivers/usb/musb/tusb6010.c\nthat had been seen in linux-next.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "b48b63a1f6e26b0dec2c9f1690396ed4bcb66903",
      "tree": "8d9ad227c3a7d35cd78d40ecaf9bf59375dbd21a",
      "parents": [
        "7f2e6a5d8608d0353b017a0fe15502307593734e",
        "3f0c3c8fe30c725c1264fb6db8cc4b69db3a658a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 15 11:43:53 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 15 11:43:53 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tnet/netfilter/nfnetlink_log.c\n\tnet/netfilter/xt_LOG.c\n\nRather easy conflict resolution, the \u0027net\u0027 tree had bug fixes to make\nsure we checked if a socket is a time-wait one or not and elide the\nlogging code if so.\n\nWhereas on the \u0027net-next\u0027 side we are calculating the UID and GID from\nthe creds using different interfaces due to the user namespace changes\nfrom Eric Biederman.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc01637a80f5b670bd70a0279d3f93fa8de1c96d",
      "tree": "55913071b502e2adc7a2dd4daf3b5b92c5e06b65",
      "parents": [
        "8507876aaada8a2cf68ebccdf1d056465dd1fc11"
      ],
      "author": {
        "name": "Dmitry Kasatkin",
        "email": "dmitry.kasatkin@intel.com",
        "time": "Wed Sep 12 13:26:55 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 13 09:13:02 2012 +0800"
      },
      "message": "digsig: add hash size comparision on signature verification\n\nWhen pkcs_1_v1_5_decode_emsa() returns without error and hash sizes do\nnot match, hash comparision is not done and digsig_verify_rsa() returns\nno error.  This is a bug and this patch fixes it.\n\nThe bug was introduced in v3.3 by commit b35e286a640f (\"lib/digsig:\npkcs_1_v1_5_decode_emsa cleanup\").\n\nCc: stable@vger.kernel.org\nSigned-off-by: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b53d657d84f530e5d83f34ff1b81ceedad3faa31",
      "tree": "f7921ce311aca66d7f42031e3a6e0cd31a808ea9",
      "parents": [
        "8a424bf40d772fedacc91862ecc86f10541fabb3"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Sep 07 14:31:45 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Sep 10 11:13:16 2012 -0700"
      },
      "message": "usb/core: use bin2bcd() for bcdDevice in RH\n\nThe kernel\u0027s version number is used as decimal in the bcdDevice field of\nthe RH descriptor. For kernel version v3.12 we would see 3.0c in lsusb.\nI am not sure how important it is to stick with bcd values since this is\nthis way since we started git history and nobody complained (however back\nthen we reported only 2.6).\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "9f00d9776bc5beb92e8bfc884a7e96ddc5589e2e",
      "tree": "2a9f9513a13c73cb1196ebe3426389c1140e2888",
      "parents": [
        "9785e10aedfa0fad5c1aac709dce5ada1b123783"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Sep 08 02:53:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 08 18:46:30 2012 -0400"
      },
      "message": "netlink: hide struct module parameter in netlink_kernel_create\n\nThis patch defines netlink_kernel_create as a wrapper function of\n__netlink_kernel_create to hide the struct module *me parameter\n(which seems to be THIS_MODULE in all existing netlink subsystems).\n\nSuggested by David S. Miller.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9785e10aedfa0fad5c1aac709dce5ada1b123783",
      "tree": "ca523e084318b6e908b18c6f3e9e53ea7e9a1c49",
      "parents": [
        "16fa9e1d104e6f2c18005a4ac7ea60e4c7fc1286"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Sep 08 02:53:53 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Sep 08 18:45:27 2012 -0400"
      },
      "message": "netlink: kill netlink_set_nonroot\n\nReplace netlink_set_nonroot by one new field `flags\u0027 in\nstruct netlink_kernel_cfg that is passed to netlink_kernel_create.\n\nThis patch also renames NL_NONROOT_* to NL_CFG_F_NONROOT_* since\nnow the flags field in nl_table is generic (so we can add more\nflags if needed in the future).\n\nAlso adjust all callers in the net-next tree to use these flags\ninstead of netlink_set_nonroot.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9eca2eb9942ee0b6f2bc76485e16e334aee2c0bf",
      "tree": "a4f4f6759e4558651975a856578f732da46876d8",
      "parents": [
        "e8c75e2c1c6965d071d50620278df78f65cfe082"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Sat Aug 25 22:47:57 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 30 13:11:46 2012 -0400"
      },
      "message": "netlink: add minlen validation for the new signed types\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74838b75379a53678ffc5f59de86161d21e2c808",
      "tree": "432322ae10e8f72dbda8745492a6cc35a32c6193",
      "parents": [
        "fc2341df9e31be8a3940f4e302372d7ef46bab8c"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Fri Jul 27 20:55:27 2012 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Aug 21 14:47:25 2012 -0400"
      },
      "message": "swiotlb: add the late swiotlb initialization function with iotlb memory\n\nThis enables the caller to initialize swiotlb with its own iotlb\nmemory late in the bootup.\n\nSee git commit eb605a5754d050a25a9f00d718fb173f24c486ef\n\"swiotlb: add swiotlb_tbl_map_single library function\" which will\nexplain the full details of what it can be used for.\n\nCC: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\n[v1: Fold in smatch warning]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "a0e881b7c189fa2bd76c024dbff91e79511c971d",
      "tree": "0c801918565b08921d21aceee5b326f64d998f5f",
      "parents": [
        "eff0d13f3823f35d70228cd151d2a2c89288ff32",
        "dbc6e0222d79e78925fe20733844a796a4b72cf9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second vfs pile from Al Viro:\n \"The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the\n  deadlock reproduced by xfstests 068), symlink and hardlink restriction\n  patches, plus assorted cleanups and fixes.\n\n  Note that another fsfreeze deadlock (emergency thaw one) is *not*\n  dealt with - the series by Fernando conflicts a lot with Jan\u0027s, breaks\n  userland ABI (FIFREEZE semantics gets changed) and trades the deadlock\n  for massive vfsmount leak; this is going to be handled next cycle.\n  There probably will be another pull request, but that stuff won\u0027t be\n  in it.\"\n\nFix up trivial conflicts due to unrelated changes next to each other in\ndrivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)\n  delousing target_core_file a bit\n  Documentation: Correct s_umount state for freeze_fs/unfreeze_fs\n  fs: Remove old freezing mechanism\n  ext2: Implement freezing\n  btrfs: Convert to new freezing mechanism\n  nilfs2: Convert to new freezing mechanism\n  ntfs: Convert to new freezing mechanism\n  fuse: Convert to new freezing mechanism\n  gfs2: Convert to new freezing mechanism\n  ocfs2: Convert to new freezing mechanism\n  xfs: Convert to new freezing code\n  ext4: Convert to new freezing mechanism\n  fs: Protect write paths by sb_start_write - sb_end_write\n  fs: Skip atime update on frozen filesystem\n  fs: Add freezing handling to mnt_want_write() / mnt_drop_write()\n  fs: Improve filesystem freezing handling\n  switch the protection of percpu_counter list to spinlock\n  nfsd: Push mnt_want_write() outside of i_mutex\n  btrfs: Push mnt_want_write() outside of i_mutex\n  fat: Push mnt_want_write() outside of i_mutex\n  ...\n"
    },
    {
      "commit": "d87aae2f3c8e90bd0fe03f5309b4d066b712b8ec",
      "tree": "2e5cd5f0ffaf5b725dd5bcc948a5f8cd06e13663",
      "parents": [
        "4a55c1017b8dcfd0554734ce3f19374d5b522d59"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 09:28:31 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 09:28:31 2012 +0400"
      },
      "message": "switch the protection of percpu_counter list to spinlock\n\n... making percpu_counter_destroy() non-blocking\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e3ee613480563a6d5c01b57d342e65cc58c06df",
      "tree": "b6b82d1ade41f137bdb9a5a18d8aa446e149c8b2",
      "parents": [
        "1fad1e9a747687a7399bf58e87974f9b1bbcae06",
        "331cbdeedeb2f4ef01ccb761513708af0fe77098"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 22:14:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 22:14:04 2012 -0700"
      },
      "message": "Merge tag \u0027writeback-proportions\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback updates from Wu Fengguang:\n \"Use time based periods to age the writeback proportions, which can\n  adapt equally well to fast/slow devices.\"\n\nFix up trivial conflict in comment in fs/sync.c\n\n* tag \u0027writeback-proportions\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Fix some comment errors\n  block: Convert BDI proportion calculations to flexible proportions\n  lib: Fix possible deadlock in flexible proportion code\n  lib: Proportions with flexible period\n"
    },
    {
      "commit": "27c1ee3f929555b71fa39ec0d81a7e7185de1b16",
      "tree": "42e40bdfe4efac660d650658019391536ce67a42",
      "parents": [
        "37cd9600a9e20359b0283983c9e3a55d84347168",
        "086ff4b3a7fb9cdf41e6a5d0ccd99b86d84633a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s first set of patches:\n \"Non-MM patches:\n\n   - lots of misc bits\n\n   - tree-wide have_clk() cleanups\n\n   - quite a lot of printk tweaks.  I draw your attention to \"printk:\n     convert the format for KERN_\u003cLEVEL\u003e to a 2 byte pattern\" which\n     looks a bit scary.  But afaict it\u0027s solid.\n\n   - backlight updates\n\n   - lib/ feature work (notably the addition and use of memweight())\n\n   - checkpatch updates\n\n   - rtc updates\n\n   - nilfs updates\n\n   - fatfs updates (partial, still waiting for acks)\n\n   - kdump, proc, fork, IPC, sysctl, taskstats, pps, etc\n\n   - new fault-injection feature work\"\n\n* Merge emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (128 commits)\n  drivers/misc/lkdtm.c: fix missing allocation failure check\n  lib/scatterlist: do not re-write gfp_flags in __sg_alloc_table()\n  fault-injection: add tool to run command with failslab or fail_page_alloc\n  fault-injection: add selftests for cpu and memory hotplug\n  powerpc: pSeries reconfig notifier error injection module\n  memory: memory notifier error injection module\n  PM: PM notifier error injection module\n  cpu: rewrite cpu-notifier-error-inject module\n  fault-injection: notifier error injection\n  c/r: fcntl: add F_GETOWNER_UIDS option\n  resource: make sure requested range is included in the root range\n  include/linux/aio.h: cpp-\u003eC conversions\n  fs: cachefiles: add support for large files in filesystem caching\n  pps: return PTR_ERR on error in device_create\n  taskstats: check nla_reserve() return\n  sysctl: suppress kmemleak messages\n  ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION\n  ipc: compat: use signed size_t types for msgsnd and msgrcv\n  ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC\n  ipc: add COMPAT_SHMLBA support\n  ...\n"
    },
    {
      "commit": "e04f228335bde305d2833e40382ed37fc36f9efe",
      "tree": "b942a4540c99d44bba5e0950c92f089a2f621ebf",
      "parents": [
        "c24aa64d169b7224f1a5bc6a4b1365da37ce861b"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Mon Jul 30 14:43:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "lib/scatterlist: do not re-write gfp_flags in __sg_alloc_table()\n\nWe are seeing a lot of sg_alloc_table allocation failures using the new\ndrm prime infrastructure.  We isolated the cause to code in\n__sg_alloc_table that was re-writing the gfp_flags.\n\nThere is a comment in the code that suggest that there is an assumption\nabout the allocation coming from a memory pool.  This was likely true\nwhen sg lists were primarily used for disk I/O.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nCc: Rob Clark \u003crob.clark@linaro.org\u003e\nCc: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\nCc: Inki Dae \u003cinki.dae@samsung.com\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Sonny Rao \u003csonnyrao@chromium.org\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08dfb4ddeeeebdee4f3d5a08a87dc9aa68d26f81",
      "tree": "237d2afc4d2c280c9ae76611ab0d5c11f99c5ac9",
      "parents": [
        "9579f5bd31a04e80a87a7b58bd52dff6dc68bc99"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:43:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "powerpc: pSeries reconfig notifier error injection module\n\nThis provides the ability to inject artifical errors to pSeries reconfig\nnotifier chain callbacks.  It is controlled through debugfs interface\nunder /sys/kernel/debug/notifier-error-inject/pSeries-reconfig\n\nIf the notifier call chain should be failed with some events\nnotified, write the error code to \"actions/\u003cnotifier event\u003e/error\".\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9579f5bd31a04e80a87a7b58bd52dff6dc68bc99",
      "tree": "a574a53f7829f157ef9ce2b696cc66ffe92bcef9",
      "parents": [
        "048b9c3549790af21eabd06a5ebdad305e75b1c5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:43:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "memory: memory notifier error injection module\n\nThis provides the ability to inject artifical errors to memory hotplug\nnotifier chain callbacks.  It is controlled through debugfs interface\nunder /sys/kernel/debug/notifier-error-inject/memory\n\nIf the notifier call chain should be failed with some events notified,\nwrite the error code to \"actions/\u003cnotifier event\u003e/error\".\n\nExample: Inject memory hotplug offline error (-12 \u003d\u003d -ENOMEM)\n\n\t# cd /sys/kernel/debug/notifier-error-inject/memory\n\t# echo -12 \u003e actions/MEM_GOING_OFFLINE/error\n\t# echo offline \u003e /sys/devices/system/memory/memoryXXX/state\n\tbash: echo: write error: Cannot allocate memory\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "048b9c3549790af21eabd06a5ebdad305e75b1c5",
      "tree": "784e739face8b1ca4ff82cfe143c53b0eab1a1b6",
      "parents": [
        "f5a9f52e2c5654c3d212dbf7e7a169c60876691a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:43:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "PM: PM notifier error injection module\n\nThis provides the ability to inject artifical errors to PM notifier chain\ncallbacks.  It is controlled through debugfs interface under\n/sys/kernel/debug/notifier-error-inject/pm\n\nEach of the files in \"error\" directory represents an event which can be\nfailed and contains the error code.  If the notifier call chain should be\nfailed with some events notified, write the error code to the files.\n\nIf the notifier call chain should be failed with some events notified,\nwrite the error code to \"actions/\u003cnotifier event\u003e/error\".\n\nExample: Inject PM suspend error (-12 \u003d -ENOMEM)\n\n\t# cd /sys/kernel/debug/notifier-error-inject/pm\n\t# echo -12 \u003e actions/PM_SUSPEND_PREPARE/error\n\t# echo mem \u003e /sys/power/state\n\tbash: echo: write error: Cannot allocate memory\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5a9f52e2c5654c3d212dbf7e7a169c60876691a",
      "tree": "81b8394ed422894cc9606a0d8030c5b52a246a00",
      "parents": [
        "8d438288145f19f253a82ca71290b44fce79e23f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:43:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "cpu: rewrite cpu-notifier-error-inject module\n\nRewrite existing cpu-notifier-error-inject module to use debugfs based new\nframework.\n\nThis change removes cpu_up_prepare_error and cpu_down_prepare_error module\nparameters which were used to specify error code to be injected.  We could\nkeep these module parameters for backward compatibility by module_param_cb\nbut it seems overkill for this module.\n\nThis provides the ability to inject artifical errors to CPU notifier chain\ncallbacks.  It is controlled through debugfs interface under\n/sys/kernel/debug/notifier-error-inject/cpu\n\nIf the notifier call chain should be failed with some events notified,\nwrite the error code to \"actions/\u003cnotifier event\u003e/error\".\n\nExample1: inject CPU offline error (-1 \u003d\u003d -EPERM)\n\n\t# cd /sys/kernel/debug/notifier-error-inject/cpu\n\t# echo -1 \u003e actions/CPU_DOWN_PREPARE/error\n\t# echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n\tbash: echo: write error: Operation not permitted\n\nExample2: inject CPU online error (-2 \u003d\u003d -ENOENT)\n\n\t# cd /sys/kernel/debug/notifier-error-inject/cpu\n\t# echo -2 \u003e actions/CPU_UP_PREPARE/error\n\t# echo 1 \u003e /sys/devices/system/cpu/cpu1/online\n\tbash: echo: write error: No such file or directory\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d438288145f19f253a82ca71290b44fce79e23f",
      "tree": "521c1086079ed8fb78aa622cf19bdbcfd53cbe12",
      "parents": [
        "1d151c337d79fa3de88654d2514f58fbd916a8e0"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:22 2012 -0700"
      },
      "message": "fault-injection: notifier error injection\n\nThis patchset provides kernel modules that can be used to test the error\nhandling of notifier call chain failures by injecting artifical errors to\nthe following notifier chain callbacks.\n\n * CPU notifier\n * PM notifier\n * memory hotplug notifier\n * powerpc pSeries reconfig notifier\n\nExample: Inject CPU offline error (-1 \u003d\u003d -EPERM)\n\n  # cd /sys/kernel/debug/notifier-error-inject/cpu\n  # echo -1 \u003e actions/CPU_DOWN_PREPARE/error\n  # echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n  bash: echo: write error: Operation not permitted\n\nThe patchset also adds cpu and memory hotplug tests to\ntools/testing/selftests These tests first do simple online and offline\ntest and then do fault injection tests if notifier error injection\nmodule is available.\n\nThis patch:\n\nThe notifier error injection provides the ability to inject artifical\nerrors to specified notifier chain callbacks.  It is useful to test the\nerror handling of notifier call chain failures.\n\nThis adds common basic functions to define which type of events can be\nfail and to initialize the debugfs interface to control what error code\nshould be returned and which event should be failed.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49ac572b93832210dc1895839692b3a51e5d0e27",
      "tree": "382ec2bd038946e94332f1573db1dbcd47b35988",
      "parents": [
        "b13edf7ff2dd0fef95e981170fa71fa6b60421b0"
      ],
      "author": {
        "name": "Thiago Rafael Becker",
        "email": "trbecker@trbecker.org",
        "time": "Mon Jul 30 14:41:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:17 2012 -0700"
      },
      "message": "lib/crc32.c: fix unused variables warnings\n\nVariables t4, t5, t6 and t7 are only used when CRC_LE_BITS !\u003d 32.  Fix\nthe following compilation warnings:\n\n  lib/crc32.c: In function \u0027crc32_body\u0027:\n  lib/crc32.c:77:55: warning: unused variable \u0027t7\u0027\n  lib/crc32.c:77:41: warning: unused variable \u0027t6\u0027\n  lib/crc32.c:77:27: warning: unused variable \u0027t5\u0027\n  lib/crc32.c:77:13: warning: unused variable \u0027t4\u0027\n\nSigned-off-by: Thiago Rafael Becker \u003ctrbecker@trbecker.org\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b0681487bf72fdb86b42c93b7d8a607e5a426b1",
      "tree": "908da53ebb82951b1051f0c2021857fac9d7563f",
      "parents": [
        "7463449b8287162454d7e00bf7fd2c64f72c1dc8"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Jul 30 14:41:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:16 2012 -0700"
      },
      "message": "spinlock_debug: print offset in addition to symbol name\n\nIf there are two spinlocks embedded in a structure that kallsyms knows\nabout and one of the spinlocks locks up we will print the name of the\ncontaining structure instead of the address of the lock.  This is quite\nbad, so let\u0027s use %pS instead of %ps so we get an offset in addition to\nthe symbol so we can determine which particular lock is having problems.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7463449b8287162454d7e00bf7fd2c64f72c1dc8",
      "tree": "c9dd3007ce4cd59489c0cb7b55b0240aa8bbd865",
      "parents": [
        "6017b485caeae5915956190b4f3d8307021e785d"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 30 14:41:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:16 2012 -0700"
      },
      "message": "atomic64_test: simplify the #ifdef for atomic64_dec_if_positive() test\n\nIntroduce CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE and use this instead\nof the multitude of #if defined() checks in atomic64_test.c\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "639b9e34f15e4b2c30068a4e4485586af0cdf709",
      "tree": "a84e3277a55757dac4630e3d20bc353b195c3c10",
      "parents": [
        "f7f95056779eb69c5fc3ac30e5cb6fd28bdbba43"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:40:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:16 2012 -0700"
      },
      "message": "string: introduce memweight()\n\nmemweight() is the function that counts the total number of bits set in\nmemory area.  Unlike bitmap_weight(), memweight() takes pointer and size\nin bytes to specify a memory area which does not need to be aligned to\nlong-word boundary.\n\n[akpm@linux-foundation.org: rename `w\u0027 to `ret\u0027]\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Anders Larsen \u003cal@alarsen.net\u003e\nCc: Alasdair Kergon \u003cagk@redhat.com\u003e\nCc: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Tony Luck \u003ctony.luck@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31550a16a5d2af859e8a11839e8c6c6c9c92dfa7",
      "tree": "b38c5921bfeecdfc24e3146b15e21360a490e19e",
      "parents": [
        "3715c5309f6d175c3053672b73fd4f73be16fd07"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Jul 30 14:40:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:14 2012 -0700"
      },
      "message": "vsprintf: add support of \u0027%*ph[CDN]\u0027\n\nThere are many places in the kernel where the drivers print small buffers\nas a hex string.  This patch adds a support of the variable width buffer\nto print it as a hex string with a delimiter.  The idea came from Pavel\nRoskin here: http://www.digipedia.pl/usenet/thread/18835/17449/\n\nSample output of\n\tpr_info(\"buf[%d:%d] %*phC\\n\", from, len, len, \u0026buf[from]);\ncould be look like this:\n\t[ 0.726130] buf[51:8] e8:16:b6:ef:e3:74:45:6e\n\t[ 0.750736] buf[59:15] 31:81:b8:3f:35:49:06:ae:df:32:06:05:4a:af:55\n\t[ 0.757602] buf[17:5] ac:16:d5:2c:ef\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "3715c5309f6d175c3053672b73fd4f73be16fd07"
}
