)]}'
{
  "log": [
    {
      "commit": "3cb7a56344ca45ee56d71c5f8fe9f922306bff1f",
      "tree": "da6fd5aa462e9e7c117063740c15fd95241c72d3",
      "parents": [
        "a8906b0b673a8a64ae1446a7847def62388f6e46"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Jan 11 14:32:20 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 11 14:54:56 2013 -0800"
      },
      "message": "lib/rbtree.c: avoid the use of non-static __always_inline\n\nlib/rbtree.c declared __rb_erase_color() as __always_inline void, and\nthen exported it with EXPORT_SYMBOL.\n\nThis was because __rb_erase_color() must be exported for augmented\nrbtree users, but it must also be inlined into rb_erase() so that the\ndummy callback can get optimized out of that call site.\n\n(Actually with a modern compiler, none of the dummy callback functions\nshould even be generated as separate text functions).\n\nThe above usage is legal C, but it was unusual enough for some compilers\nto warn about it.  This change makes things more explicit, with a static\n__always_inline ____rb_erase_color function for use in rb_erase(), and a\nseparate non-inline __rb_erase_color function for use in\nrb_erase_augmented call sites.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReported-by: Wu Fengguang \u003cfengguang.wu@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": "896f97ea95c1d29c0520ee0766b66b7f64cb967c",
      "tree": "9898ba669c2348294452fcfd5b7b81fe04cb072f",
      "parents": [
        "254adaa465c40151df11fc1f88f93e6e86eb61d4"
      ],
      "author": {
        "name": "David Decotigny",
        "email": "decot@googlers.com",
        "time": "Fri Jan 11 14:31:36 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 11 14:54:54 2013 -0800"
      },
      "message": "lib: cpu_rmap: avoid flushing all workqueues\n\nIn some cases, free_irq_cpu_rmap() is called while holding a lock (eg\nrtnl).  This can lead to deadlocks, because it invokes\nflush_scheduled_work() which ends up waiting for whole system workqueue\nto flush, but some pending works might try to acquire the lock we are\nalready holding.\n\nThis commit uses reference-counting to replace\nirq_run_affinity_notifiers().  It also removes\nirq_run_affinity_notifiers() altogether.\n\n[akpm@linux-foundation.org: eliminate free_cpu_rmap, rename cpu_rmap_reclaim() to cpu_rmap_release(), propagate kref_put() retval from cpu_rmap_put()]\nSigned-off-by: David Decotigny \u003cdecot@googlers.com\u003e\nReviewed-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nAcked-by: Amir Vadai \u003camirv@mellanox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ae141718e3f9c7e2c620e999c86612a7f415bb1",
      "tree": "808737193b879da8b287f54647c4782fb450299d",
      "parents": [
        "e389623a68622e3c9be440ab522fac1aa1ca3454"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Dec 21 15:16:45 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 03 15:57:16 2013 -0800"
      },
      "message": "misc: remove __dev* attributes.\n\nCONFIG_HOTPLUG is going away as an option.  As a result, the __dev*\nmarkings need to be removed.\n\nThis change removes the last of the __dev* markings from the kernel from\na variety of different, tiny, places.\n\nBased on patches originally written by Bill Pemberton, but redone by me\nin order to handle some of the coding style issues better, by hand.\n\nCc: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "fcc16882ac4532aaa644bff444f0c5d6228ba71e",
      "tree": "7104729ed7fd136a26ea47462e716410666aa1f6",
      "parents": [
        "787314c35fbb97e02823a1b8eb8cfa58f366cd49"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Wed Dec 19 23:39:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 13:50:16 2012 -0800"
      },
      "message": "lib: atomic64: Initialize locks statically to fix early users\n\nThe atomic64 library uses a handful of static spin locks to implement\natomic 64-bit operations on architectures without support for atomic\n64-bit instructions.\n\nUnfortunately, the spinlocks are initialized in a pure initcall and that\nis too late for the vfs namespace code which wants to use atomic64\noperations before the initcall is run.\n\nThis became a problem as of commit 8823c079ba71: \"vfs: Add setns support\nfor the mount namespace\".\n\nThis leads to BUG messages such as:\n\n  BUG: spinlock bad magic on CPU#0, swapper/0/0\n   lock: atomic64_lock+0x240/0x400, .magic: 00000000, .owner: \u003cnone\u003e/-1, .owner_cpu: 0\n    do_raw_spin_lock+0x158/0x198\n    _raw_spin_lock_irqsave+0x4c/0x58\n    atomic64_add_return+0x30/0x5c\n    alloc_mnt_ns.clone.14+0x44/0xac\n    create_mnt_ns+0xc/0x54\n    mnt_init+0x120/0x1d4\n    vfs_caches_init+0xe0/0x10c\n    start_kernel+0x29c/0x300\n\ncoming out early on during boot when spinlock debugging is enabled.\n\nFix this by initializing the spinlocks statically at compile time.\n\nReported-and-tested-by: Vaibhav Bedia \u003cvaibhav.bedia@ti.com\u003e\nTested-by: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "787314c35fbb97e02823a1b8eb8cfa58f366cd49",
      "tree": "3fe5a484c1846c80361217a726997484533e8344",
      "parents": [
        "6491d4d02893d9787ba67279595990217177b351",
        "9c6ecf6a3ade2dc4b03a239af68058b22897af41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 10:07:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 10:07:25 2012 -0800"
      },
      "message": "Merge tag \u0027iommu-updates-v3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU updates from Joerg Roedel:\n \"A few new features this merge-window.  The most important one is\n  probably, that dma-debug now warns if a dma-handle is not checked with\n  dma_mapping_error by the device driver.  This requires minor changes\n  to some architectures which make use of dma-debug.  Most of these\n  changes have the respective Acks by the Arch-Maintainers.\n\n  Besides that there are updates to the AMD IOMMU driver for refactor\n  the IOMMU-Groups support and to make sure it does not trigger a\n  hardware erratum.\n\n  The OMAP changes (for which I pulled in a branch from Tony Lindgren\u0027s\n  tree) have a conflict in linux-next with the arm-soc tree.  The\n  conflict is in the file arch/arm/mach-omap2/clock44xx_data.c which is\n  deleted in the arm-soc tree.  It is safe to delete the file too so\n  solve the conflict.  Similar changes are done in the arm-soc tree in\n  the common clock framework migration.  A missing hunk from the patch\n  in the IOMMU tree will be submitted as a seperate patch when the\n  merge-window is closed.\"\n\n* tag \u0027iommu-updates-v3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (29 commits)\n  ARM: dma-mapping: support debug_dma_mapping_error\n  ARM: OMAP4: hwmod data: ipu and dsp to use parent clocks instead of leaf clocks\n  iommu/omap: Adapt to runtime pm\n  iommu/omap: Migrate to hwmod framework\n  iommu/omap: Keep mmu enabled when requested\n  iommu/omap: Remove redundant clock handling on ISR\n  iommu/amd: Remove obsolete comment\n  iommu/amd: Don\u0027t use 512GB pages\n  iommu/tegra: smmu: Move bus_set_iommu after probe for multi arch\n  iommu/tegra: gart: Move bus_set_iommu after probe for multi arch\n  iommu/tegra: smmu: Remove unnecessary PTC/TLB flush all\n  tile: dma_debug: add debug_dma_mapping_error support\n  sh: dma_debug: add debug_dma_mapping_error support\n  powerpc: dma_debug: add debug_dma_mapping_error support\n  mips: dma_debug: add debug_dma_mapping_error support\n  microblaze: dma-mapping: support debug_dma_mapping_error\n  ia64: dma_debug: add debug_dma_mapping_error support\n  c6x: dma_debug: add debug_dma_mapping_error support\n  ARM64: dma_debug: add debug_dma_mapping_error support\n  intel-iommu: Prevent devices with RMRRs from being placed into SI Domain\n  ...\n"
    },
    {
      "commit": "7a684c452e2589f3ddd7e2d466b4f747d3715ad9",
      "tree": "fed803e7450770993575b37807ba2195eafd5b0e",
      "parents": [
        "7f2de8171ddf28fdb2ca7f9a683ee1207849f718",
        "e10e1774efbdaec54698454200619a03a01e1d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:55:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:55:08 2012 -0800"
      },
      "message": "Merge tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module update from Rusty Russell:\n \"Nothing all that exciting; a new module-from-fd syscall for those who\n  want to verify the source of the module (ChromeOS) and/or use standard\n  IMA on it or other security hooks.\"\n\n* tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  MODSIGN: Fix kbuild output when using default extra_certificates\n  MODSIGN: Avoid using .incbin in C source\n  modules: don\u0027t hand 0 to vmalloc.\n  module: Remove a extra null character at the top of module-\u003estrtab.\n  ASN.1: Use the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants\n  ASN.1: Define indefinite length marker constant\n  moduleparam: use __UNIQUE_ID()\n  __UNIQUE_ID()\n  MODSIGN: Add modules_sign make target\n  powerpc: add finit_module syscall.\n  ima: support new kernel module syscall\n  add finit_module syscall to asm-generic\n  ARM: add finit_module syscall to ARM\n  security: introduce kernel_module_from_file hook\n  module: add flags arg to sys_finit_module()\n  module: add syscall to load module from fd\n"
    },
    {
      "commit": "16e024f30ce96ef5fa651e2914e19d175a924cab",
      "tree": "d68106151a0b36e22625d7af7b23081a48c92e87",
      "parents": [
        "c36e0501ee91d7616a188efbf9714b1fce150032",
        "376bddd34433065aeb9b9a140870537feecf90ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc update from Benjamin Herrenschmidt:\n \"The main highlight is probably some base POWER8 support.  There\u0027s more\n  to come such as transactional memory support but that will wait for\n  the next one.\n\n  Overall it\u0027s pretty quiet, or rather I\u0027ve been pretty poor at picking\n  things up from patchwork and reviewing them this time around and Kumar\n  no better on the FSL side it seems...\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (73 commits)\n  powerpc+of: Rename and fix OF reconfig notifier error inject module\n  powerpc: mpc5200: Add a3m071 board support\n  powerpc/512x: don\u0027t compile any platform DIU code if the DIU is not enabled\n  powerpc/mpc52xx: use module_platform_driver macro\n  powerpc+of: Export of_reconfig_notifier_[register,unregister]\n  powerpc/dma/raidengine: add raidengine device\n  powerpc/iommu/fsl: Add PAMU bypass enable register to ccsr_guts struct\n  powerpc/mpc85xx: Change spin table to cached memory\n  powerpc/fsl-pci: Add PCI controller ATMU PM support\n  powerpc/86xx: fsl_pcibios_fixup_bus requires CONFIG_PCI\n  drivers/virt: the Freescale hypervisor driver doesn\u0027t need to check MSR[GS]\n  powerpc/85xx: p1022ds: Use NULL instead of 0 for pointers\n  powerpc: Disable relocation on exceptions when kexecing\n  powerpc: Enable relocation on during exceptions at boot\n  powerpc: Move get_longbusy_msecs into hvcall.h and remove duplicate function\n  powerpc: Add wrappers to enable/disable relocation on exceptions\n  powerpc: Add set_mode hcall\n  powerpc: Setup relocation on exceptions for bare metal systems\n  powerpc: Move initial mfspr LPCR out of __init_LPCR\n  powerpc: Add relocation on exception vector handlers\n  ...\n"
    },
    {
      "commit": "ea88eeac0cb8328014b53d80ca631e8dc0dc18dc",
      "tree": "de605c1d0e7ab1e342eedad47c56061b65a6b790",
      "parents": [
        "848b81415c42ff3dc9a4204749087b015c37ef66",
        "a9add5d92b64ea57fb4c3b557c3891cdeb15fa0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "message": "Merge tag \u0027md-3.8\u0027 of git://neil.brown.name/md\n\nPull md update from Neil Brown:\n \"Mostly just little fixes.  Probably biggest part is AVX accelerated\n  RAID6 calculations.\"\n\n* tag \u0027md-3.8\u0027 of git://neil.brown.name/md:\n  md/raid5: add blktrace calls\n  md/raid5: use async_tx_quiesce() instead of open-coding it.\n  md: Use -\u003ecurr_resync as last completed request when cleanly aborting resync.\n  lib/raid6: build proper files on corresponding arch\n  lib/raid6: Add AVX2 optimized gen_syndrome functions\n  lib/raid6: Add AVX2 optimized recovery functions\n  md: Update checkpoint of resync/recovery based on time.\n  md:Add place to update -\u003erecovery_cp.\n  md.c: re-indent various \u0027switch\u0027 statements.\n  md: close race between removing and adding a device.\n  md: removed unused variable in calc_sb_1_csm.\n"
    },
    {
      "commit": "848b81415c42ff3dc9a4204749087b015c37ef66",
      "tree": "391da3a73aea48632248220d2d6b8d45a88f7eae",
      "parents": [
        "992956189de58cae9f2be40585bc25105cd7c5ad",
        "6fd59a83b9261fa53eaf98fb5514abba504a3ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n \"Incoming:\n\n   - lots of misc stuff\n\n   - backlight tree updates\n\n   - lib/ updates\n\n   - Oleg\u0027s percpu-rwsem changes\n\n   - checkpatch\n\n   - rtc\n\n   - aoe\n\n   - more checkpoint/restart support\n\n  I still have a pile of MM stuff pending - Pekka should be merging\n  later today after which that is good to go.  A number of other things\n  are twiddling thumbs awaiting maintainer merges.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (180 commits)\n  scatterlist: don\u0027t BUG when we can trivially return a proper error.\n  docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n  fs, fanotify: add @mflags field to fanotify output\n  docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n  fs, notify: add procfs fdinfo helper\n  fs, exportfs: add exportfs_encode_inode_fh() helper\n  fs, exportfs: escape nil dereference if no s_export_op present\n  fs, epoll: add procfs fdinfo helper\n  fs, eventfd: add procfs fdinfo helper\n  procfs: add ability to plug in auxiliary fdinfo providers\n  tools/testing/selftests/kcmp/kcmp_test.c: print reason for failure in kcmp_test\n  breakpoint selftests: print failure status instead of cause make error\n  kcmp selftests: print fail status instead of cause make error\n  kcmp selftests: make run_tests fix\n  mem-hotplug selftests: print failure status instead of cause make error\n  cpu-hotplug selftests: print failure status instead of cause make error\n  mqueue selftests: print failure status instead of cause make error\n  vm selftests: print failure status instead of cause make error\n  ubifs: use prandom_bytes\n  mtd: nandsim: use prandom_bytes\n  ...\n"
    },
    {
      "commit": "6fd59a83b9261fa53eaf98fb5514abba504a3ea3",
      "tree": "08dfeef55544c0c30e1567618f62ae771feeac53",
      "parents": [
        "e71ec593201e1b367b5f22955e3db49e3c562e67"
      ],
      "author": {
        "name": "Nick Bowler",
        "email": "nbowler@elliptictech.com",
        "time": "Mon Dec 17 16:05:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:28 2012 -0800"
      },
      "message": "scatterlist: don\u0027t BUG when we can trivially return a proper error.\n\nThere is absolutely no reason to crash the kernel when we have a\nperfectly good return value already available to use for conveying\nfailure status.\n\nLet\u0027s return an error code instead of crashing the kernel: that sounds\nlike a much better plan.\n\n[akpm@linux-foundation.org: s/E2BIG/EINVAL/]\nSigned-off-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6582c665d6b882dad8329e05749fbcf119f1ab88",
      "tree": "c40cbd6ed26fb1fea9d63d9244e6ce377d8196fd",
      "parents": [
        "496f2f93b1cc286f5a4f4f9acdc1e5314978683f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Dec 17 16:04:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "prandom: introduce prandom_bytes() and prandom_bytes_state()\n\nAdd functions to get the requested number of pseudo-random bytes.\n\nThe difference from get_random_bytes() is that it generates pseudo-random\nnumbers by prandom_u32().  It doesn\u0027t consume the entropy pool, and the\nsequence is reproducible if the same rnd_state is used.  So it is suitable\nfor generating random bytes for testing.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nCc: David Laight \u003cdavid.laight@aculab.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nCc: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "496f2f93b1cc286f5a4f4f9acdc1e5314978683f",
      "tree": "464fa6bd115ad4e3bedc02a0b0796a9f9e055ccc",
      "parents": [
        "31279b1457f992f24eee8d45ddd647f5fce42cf6"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Dec 17 16:04:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "random32: rename random32 to prandom\n\nThis renames all random32 functions to have \u0027prandom_\u0027 prefix as follows:\n\n  void prandom_seed(u32 seed);\t/* rename from srandom32() */\n  u32 prandom_u32(void);\t\t/* rename from random32() */\n  void prandom_seed_state(struct rnd_state *state, u64 seed);\n  \t\t\t\t/* rename from prandom32_seed() */\n  u32 prandom_u32_state(struct rnd_state *state);\n  \t\t\t\t/* rename from prandom32() */\n\nThe purpose of this renaming is to prevent some kernel developers from\nassuming that prandom32() and random32() might imply that only\nprandom32() was the one using a pseudo-random number generator by\nprandom32\u0027s \"p\", and the result may be a very embarassing security\nexposure.  This concern was expressed by Theodore Ts\u0027o.\n\nAnd furthermore, I\u0027m going to introduce new functions for getting the\nrequested number of pseudo-random bytes.  If I continue to use both\nprandom32 and random32 prefixes for these functions, the confusion\nis getting worse.\n\nAs a result of this renaming, \"prandom_\" is the common prefix for\npseudo-random number library.\n\nCurrently, srandom32() and random32() are preserved because it is\ndifficult to rename too many users at once.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nCc: David Laight \u003cdavid.laight@aculab.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "462e471107624fe9bd8b6353ac13e06305c3f3fd",
      "tree": "96b9d914912da795f238e1aa3cf75ccc2efa36c0",
      "parents": [
        "4c925d6031f719fad6ea8b1c94a636f4c0fea39b"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Mon Dec 17 16:03:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:22 2012 -0800"
      },
      "message": "simple_strto*: annotate function as obsolete\n\nUpdate the documentation for simple_strto* to reflect that it has been\nobsoleted and advise the usage of kstrto*.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c925d6031f719fad6ea8b1c94a636f4c0fea39b",
      "tree": "a27265311ff47951ab00d4df3b49350c1ae898ba",
      "parents": [
        "543f56c19c3e926d33b50a6bcbc37c408631601e"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Mon Dec 17 16:03:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:22 2012 -0800"
      },
      "message": "kstrto*: add documentation\n\nAs Bruce Fields pointed out, kstrto* is currently lacking kerneldoc\ncomments.  This patch adds kerneldoc comments to common variants of\nkstrto*: kstrto(u)l, kstrto(u)ll and kstrto(u)int.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "918854a65e856574523d94763ef2a2b48ad55a25",
      "tree": "d193a1f4a7075c521160009b0c96815824537f2b",
      "parents": [
        "22b361d1df7bc25b558e52f22e779286a3d323e4"
      ],
      "author": {
        "name": "Cong Ding",
        "email": "dinggnu@gmail.com",
        "time": "Mon Dec 17 16:01:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "lib/rbtree_test.c: fix uninitialized variable warning\n\nFix this warning:\n\n  lib/rbtree_test.c: In function `check\u0027:\n  lib/rbtree_test.c:121: warning: `blacks\u0027 may be used uninitialized in this function\n\nSigned-off-by: Cong Ding \u003cdinggnu@gmail.com\u003e\nCc: Michel Lespinasse \u003cwalken@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": "22b361d1df7bc25b558e52f22e779286a3d323e4",
      "tree": "a66c2e50d07d87e52dfc74a1e9118b2aff6759fe",
      "parents": [
        "8ebe34731a0d1a9d89b536430afd98d0fadec99b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:01:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "percpu_rw_semaphore: introduce CONFIG_PERCPU_RWSEM\n\nCurrently only block_dev and uprobes use percpu_rw_semaphore,\nadd the config option selected by BLOCK || UPROBES.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ebe34731a0d1a9d89b536430afd98d0fadec99b",
      "tree": "bb378645318ce7c9b1b5a389a5e522835916cbed",
      "parents": [
        "9390ef0c85fd065f01045fef708b046c98cda04c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:01:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "percpu_rw_semaphore: add lockdep annotations\n\nAdd lockdep annotations.  Not only this can help to find the potential\nproblems, we do not want the false warnings if, say, the task takes two\ndifferent percpu_rw_semaphore\u0027s for reading.  IOW, at least -\u003erw_sem\nshould not use a single class.\n\nThis patch exposes this internal lock to lockdep so that it represents the\nwhole percpu_rw_semaphore.  This way we do not need to add another \"fake\"\n-\u003elockdep_map and lock_class_key.  More importantly, this also makes the\noutput from lockdep much more understandable if it finds the problem.\n\nIn short, with this patch from lockdep pov percpu_down_read() and\npercpu_up_read() acquire/release -\u003erw_sem for reading, this matches the\nactual semantics.  This abuses __up_read() but I hope this is fine and in\nfact I\u0027d like to have down_read_no_lockdep() as well,\npercpu_down_read_recursive_readers() will need it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9390ef0c85fd065f01045fef708b046c98cda04c",
      "tree": "22ae17e0d07a9386cd494a869f60df757cfc56d7",
      "parents": [
        "a1fd3e24d8a484b3265a6d485202afe093c058f3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:01:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "percpu_rw_semaphore: kill -\u003ewriter_mutex, add -\u003ewrite_ctr\n\npercpu_rw_semaphore-\u003ewriter_mutex was only added to simplify the initial\nrewrite, the only thing it protects is clear_fast_ctr() which otherwise\ncould be called by multiple writers.  -\u003erw_sem is enough to serialize the\nwriters.\n\nKill this mutex and add \"atomic_t write_ctr\" instead.  The writers\nincrement/decrement this counter, the readers check it is zero instead of\nmutex_is_locked().\n\nMove atomic_add(clear_fast_ctr(), slow_read_ctr) under down_write() to\navoid the race with other writers.  This is a bit sub-optimal, only the\nfirst writer needs this and we do not need to exclude the readers at this\nstage.  But this is simple, we do not want another internal lock until we\nadd more features.\n\nAnd this speeds up the write-contended case.  Before this patch the racing\nwriters sleep in synchronize_sched_expedited() sequentially, with this\npatch multiple synchronize_sched_expedited\u0027s can \"overlap\" with each\nother.  Note: we can do more optimizations, this is only the first step.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1fd3e24d8a484b3265a6d485202afe093c058f3",
      "tree": "472f6480a81abbc04b27eccdb798d80b1685bee0",
      "parents": [
        "53809751ac230a3611b5cdd375f3389f3207d471"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:01:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "percpu_rw_semaphore: reimplement to not block the readers unnecessarily\n\nCurrently the writer does msleep() plus synchronize_sched() 3 times to\nacquire/release the semaphore, and during this time the readers are\nblocked completely.  Even if the \"write\" section was not actually started\nor if it was already finished.\n\nWith this patch down_write/up_write does synchronize_sched() twice and\ndown_read/up_read are still possible during this time, just they use the\nslow path.\n\npercpu_down_write() first forces the readers to use rw_semaphore and\nincrement the \"slow\" counter to take the lock for reading, then it\ntakes that rw_semaphore for writing and blocks the readers.\n\nAlso.  With this patch the code relies on the documented behaviour of\nsynchronize_sched(), it doesn\u0027t try to pair synchronize_sched() with\nbarrier.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53809751ac230a3611b5cdd375f3389f3207d471",
      "tree": "8555da83945aaba9291f0d9ff09d271043e36263",
      "parents": [
        "375da3a76dc49f10c35e243ebef62df12e3adf4e"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Mon Dec 17 16:01:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "sscanf: don\u0027t ignore field widths for numeric conversions\n\nThis is another step towards better standard conformance.  Rather than\nadding a local buffer to store the specified portion of the string (with\nthe need to enforce an arbitrary maximum supported width to limit the\nbuffer size), do a maximum width conversion and then drop as much of it as\nis necessary to meet the caller\u0027s request.\n\nAlso fail on negative field widths.\n\nUses the deprecated simple_strto*() functions because kstrtoXX() fail on\nnon-zero terminated strings.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "35367ab28d024ef026dbd797b4076c8f008ec08c",
      "tree": "0f4505be48bcf7de1136dde92365cbe9ab8bf55e",
      "parents": [
        "b18888ab256f05626193be955a7a03f01d676f8c"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Dec 17 16:01:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:17 2012 -0800"
      },
      "message": "lib: dynamic_debug: use kbasename()\n\nRemove the custom implementation of the functionality similar to kbasename().\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Jason Baron \u003cjbaron@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": "ef12496022d5917cfe0b04cf8fd685fc6bc08400",
      "tree": "0dde49b464f3d06f1279c6262e2b3d9800893e1d",
      "parents": [
        "2fa72c8fa5d03c4e07894ccb9f0be72e8687a455"
      ],
      "author": {
        "name": "Jason Gunthorpe",
        "email": "jgunthorpe@obsidianresearch.com",
        "time": "Mon Dec 17 15:59:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:13 2012 -0800"
      },
      "message": "lib/vsprintf.c: fix handling of %zd when using ssize_t\n\nDocumentation/printk-formats.txt says to use %zd for a ssize_t argument\nand some drivers do.  Unfortunately this prints a positive number for\nnegative values eg:\n\n  tpm_tis 70030000.tpm_tis: tpm_transmit: tpm_send: error 4294967234\n\nAdd a case to va_args a ssize_t type if the interpretation should be\nsigned.\n\nTested on PPC32.\n\nSigned-off-by: Jason Gunthorpe \u003cjgunthorpe@obsidianresearch.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "376bddd34433065aeb9b9a140870537feecf90ef",
      "tree": "a40e2b84ad89f4b3ba968de65a4bf7ff6ccae835",
      "parents": [
        "d526e85f60fce9aa2a1432cbd06e3cf20c1644c8",
        "667b504a2c411e4d5915a6e2260a3857ba9f797a"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Dec 18 10:22:27 2012 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Dec 18 10:22:27 2012 +1100"
      },
      "message": "Merge remote-tracking branch \u0027agust/next\u0027 into next\n\nBrings some 52xx updates. Also manually merged tools/perf/perf.h.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
      "tree": "e7c87b68daba7cf7ca4c342c6b52165bd78fbe16",
      "parents": [
        "9360b53661a2c7754517b2925580055bacc8ec38",
        "d2ec180c23a5a1bfe34d8638b0342a47c00cf70f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 13:39:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 13:39:11 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver update from Jens Axboe:\n \"Now that the core bits are in, here are the driver bits for 3.8.  The\n  branch contains:\n\n   - A huge pile of drbd bits that were dumped from the 3.7 merge\n     window.  Following that, it was both made perfectly clear that\n     there is going to be no more over-the-wall pulls and how the\n     situation on individual pulls can be improved.\n\n   - A few cleanups from Akinobu Mita for drbd and cciss.\n\n   - Queue improvement for loop from Lukas.  This grew into adding a\n     generic interface for waiting/checking an even with a specific\n     lock, allowing this to be pulled out of md and now loop and drbd is\n     also using it.\n\n   - A few fixes for xen back/front block driver from Roger Pau Monne.\n\n   - Partition improvements from Stephen Warren, allowing partiion UUID\n     to be used as an identifier.\"\n\n* \u0027for-3.8/drivers\u0027 of git://git.kernel.dk/linux-block: (609 commits)\n  drbd: update Kconfig to match current dependencies\n  drbd: Fix drbdsetup wait-connect, wait-sync etc... commands\n  drbd: close race between drbd_set_role and drbd_connect\n  drbd: respect no-md-barriers setting also when changed online via disk-options\n  drbd: Remove obsolete check\n  drbd: fixup after wait_even_lock_irq() addition to generic code\n  loop: Limit the number of requests in the bio list\n  wait: add wait_event_lock_irq() interface\n  xen-blkfront: free allocated page\n  xen-blkback: move free persistent grants code\n  block: partition: msdos: provide UUIDs for partitions\n  init: reduce PARTUUID min length to 1 from 36\n  block: store partition_meta_info.uuid as a string\n  cciss: use check_signature()\n  cciss: cleanup bitops usage\n  drbd: use copy_highpage\n  drbd: if the replication link breaks during handshake, keep retrying\n  drbd: check return of kmalloc in receive_uuids\n  drbd: Broadcast sync progress no more often than once per second\n  drbd: don\u0027t try to clear bits once the disk has failed\n  ...\n"
    },
    {
      "commit": "9b690c3d56ce15dd265b6398f9d8d58c29c17032",
      "tree": "56477d1f4e596011f17d1c64e8597613330e5439",
      "parents": [
        "36cd5c19c3fe8291fac45a262c44c00bd14b531a",
        "af51a9f1848ff50079a10def56a2c064f326af22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 17:39:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 17:39:14 2012 -0800"
      },
      "message": "Merge tag \u0027stable/for-linus-3.8-rc0-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb\n\nPull swiotlb update from Konrad Rzeszutek Wilk:\n \"Feature:\n   - Use dma addresses instead of the virt_to_phys and vice versa\n     functions.\n\n  Remove the multitude of phys_to_virt/virt_to_phys calls and instead\n  operate on the physical addresses instead of virtual in many of the\n  internal functions.  This does provide a speed up in interrupt\n  handlers that do DMA operations and use SWIOTLB.\"\n\n* tag \u0027stable/for-linus-3.8-rc0-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:\n  swiotlb: Do not export swiotlb_bounce since there are no external consumers\n  swiotlb: Use physical addresses instead of virtual in swiotlb_tbl_sync_single\n  swiotlb: Use physical addresses for swiotlb_tbl_unmap_single\n  swiotlb: Return physical addresses when calling swiotlb_tbl_map_single\n  swiotlb: Make io_tlb_overflow_buffer a physical address\n  swiotlb: Make io_tlb_start a physical address instead of a virtual one\n  swiotlb: Make io_tlb_end a physical address instead of a virtual one\n"
    },
    {
      "commit": "9c6ecf6a3ade2dc4b03a239af68058b22897af41",
      "tree": "fe8345ddac388c832f6438e7a074c3c0d1837d6f",
      "parents": [
        "29594404d7fe73cd80eaa4ee8c43dcc53970c60e",
        "a0157573041403e7507a6f3f32279fc14ff5c02e",
        "310aa95078443c7b7b56c60dbc55b7a11b946edb",
        "ea2447f700cab264019b52e2b417d689e052dcfd",
        "f1bda29c2bfa84c2c022e1f443528e21607bf360",
        "298ea44f211de93ce1b30dc4e2bd2d3b23e41556"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Sun Dec 16 12:24:09 2012 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Sun Dec 16 12:24:09 2012 +0100"
      },
      "message": "Merge branches \u0027iommu/fixes\u0027, \u0027dma-debug\u0027, \u0027x86/amd\u0027, \u0027x86/vt-d\u0027, \u0027arm/tegra\u0027 and \u0027arm/omap\u0027 into next\n"
    },
    {
      "commit": "18dd0bf22b6f0c1bd5e4e813a42245ed86ec57b6",
      "tree": "a4794b6041b44fa94f5d9438cdb5bbfc58b35f05",
      "parents": [
        "2d9c8b5d6a5f5f7a6111cc68a050b5b44729376b",
        "385ddeac7ed99cf7dc62d76274d55fbd7cae1b5a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 14 10:03:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 14 10:03:23 2012 -0800"
      },
      "message": "Merge branch \u0027x86-acpi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 ACPI update from Peter Anvin:\n \"This is a patchset which didn\u0027t make the last merge window.  It adds a\n  debugging capability to feed ACPI tables via the initramfs.\n\n  On a grander scope, it formalizes using the initramfs protocol for\n  feeding arbitrary blobs which need to be accessed early to the kernel:\n  they are fed first in the initramfs blob (lots of bootloaders can\n  concatenate this at boot time, others can use a single file) in an\n  uncompressed cpio archive using filenames starting with \"kernel/\".\n\n  The ACPI maintainers requested that this patchset be fed via the x86\n  tree rather than the ACPI tree as the footprint in the general x86\n  code is much bigger than in the ACPI code proper.\"\n\n* \u0027x86-acpi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  X86 ACPI: Use #ifdef not #if for CONFIG_X86 check\n  ACPI: Fix build when disabled\n  ACPI: Document ACPI table overriding via initrd\n  ACPI: Create acpi_table_taint() function to avoid code duplication\n  ACPI: Implement physical address table override\n  ACPI: Store valid ACPI tables passed via early initrd in reserved memblock areas\n  x86, acpi: Introduce x86 arch specific arch_reserve_mem_area() for e820 handling\n  lib: Add early cpio decoder\n"
    },
    {
      "commit": "99cca91e370ab9224755365dda98b78eb5a5417f",
      "tree": "03a7b0db1f061657a7498fc2c46b616bf877ae0b",
      "parents": [
        "facc0a6bd494ce21e31b34fc355ecf702518272b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Dec 05 11:55:30 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Dec 14 13:06:42 2012 +1030"
      },
      "message": "ASN.1: Use the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants\n\nUse the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants in the ASN.1\ngeneral decoder instead of the equivalent numbers.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d526e85f60fce9aa2a1432cbd06e3cf20c1644c8",
      "tree": "8432d5f7f36254fcfea5a1c2d38a93a4fac42a8b",
      "parents": [
        "1a9bd45412665e73c72612b6f744378d860e02a8"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 14 10:32:52 2012 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Dec 14 10:32:52 2012 +1100"
      },
      "message": "powerpc+of: Rename and fix OF reconfig notifier error inject module\n\nThis module used to inject errors in the pSeries specific dynamic\nreconfiguration notifiers. Those are gone however, replaced by\ngeneric notifiers for changes to the device-tree. So let\u0027s update\nthe module to deal with these instead and rename it along the way.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\n"
    },
    {
      "commit": "a2013a13e68354e0c8f3696b69701803e13fb737",
      "tree": "a7e1da6bfad1aa2afd83f401874d606269ce90b4",
      "parents": [
        "dadfab4873256d2145640c0ce468fcbfb48977fe",
        "106f9d9337f65bd428c0c79f650e3489e458d771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial branch from Jiri Kosina:\n \"Usual stuff -- comment/printk typo fixes, documentation updates, dead\n  code elimination.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  HOWTO: fix double words typo\n  x86 mtrr: fix comment typo in mtrr_bp_init\n  propagate name change to comments in kernel source\n  doc: Update the name of profiling based on sysfs\n  treewide: Fix typos in various drivers\n  treewide: Fix typos in various Kconfig\n  wireless: mwifiex: Fix typo in wireless/mwifiex driver\n  messages: i2o: Fix typo in messages/i2o\n  scripts/kernel-doc: check that non-void fcts describe their return value\n  Kernel-doc: Convention: Use a \"Return\" section to describe return values\n  radeon: Fix typo and copy/paste error in comments\n  doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c\n  various: Fix spelling of \"asynchronous\" in comments.\n  Fix misspellings of \"whether\" in comments.\n  eisa: Fix spelling of \"asynchronous\".\n  various: Fix spelling of \"registered\" in comments.\n  doc: fix quite a few typos within Documentation\n  target: iscsi: fix comment typos in target/iscsi drivers\n  treewide: fix typo of \"suport\" in various comments and Kconfig\n  treewide: fix typo of \"suppport\" in various comments\n  ...\n"
    },
    {
      "commit": "4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf",
      "tree": "6d321f8a55c2cbd8aacb5a24870e6eccc6e37d9f",
      "parents": [
        "2c935842bdb46f5f557426feb4d2bdfdad1aa5f9"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yuanhan.liu@linux.intel.com",
        "time": "Fri Nov 30 13:10:40 2012 -0800"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 13 19:51:04 2012 +1100"
      },
      "message": "lib/raid6: build proper files on corresponding arch\n\nsse and avx2 stuff only exist on x86 arch, and we don\u0027t need to build\naltivec on x86. And we can do that at lib/raid6/Makefile.\n\nProposed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Yuanhan Liu \u003cyuanhan.liu@linux.intel.com\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Jim Kukunas \u003cjames.t.kukunas@linux.intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2c935842bdb46f5f557426feb4d2bdfdad1aa5f9",
      "tree": "3b089f583018fb5c1d58192dbf7ff92e914ddac2",
      "parents": [
        "7056741fd9fc14a65608549a4657cf5178f05f63"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yuanhan.liu@linux.intel.com",
        "time": "Fri Nov 30 13:10:39 2012 -0800"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 13 19:51:03 2012 +1100"
      },
      "message": "lib/raid6: Add AVX2 optimized gen_syndrome functions\n\nAdd AVX2 optimized gen_syndrom functions, which is simply based on\nsse2.c written by hpa.\n\nSigned-off-by: Yuanhan Liu \u003cyuanhan.liu@linux.intel.com\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Jim Kukunas \u003cjames.t.kukunas@linux.intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "7056741fd9fc14a65608549a4657cf5178f05f63",
      "tree": "b30504208f8261c4a0a2625169eaff9aa9de544e",
      "parents": [
        "54f89341e8b8da0cdac8a7b873491739de19f098"
      ],
      "author": {
        "name": "Jim Kukunas",
        "email": "james.t.kukunas@linux.intel.com",
        "time": "Thu Nov 08 13:47:44 2012 -0800"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Dec 13 16:42:01 2012 +1100"
      },
      "message": "lib/raid6: Add AVX2 optimized recovery functions\n\nOptimize RAID6 recovery functions to take advantage of\nthe 256-bit YMM integer instructions introduced in AVX2.\n\nThe patch was tested and benchmarked before submission.\nHowever hardware is not yet released so benchmark numbers\ncannot be reported.\n\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Jim Kukunas \u003cjames.t.kukunas@linux.intel.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "37ea95a959d4a49846ecbf2dd45326b6b34bf049",
      "tree": "43791e1244ce06d8ca18ecbfd0b0f6dcb86ebb8b",
      "parents": [
        "de0c276b31538fcd56611132f20b63eae2891876",
        "630e1e0bcddfda9566462d4f9a0d58b31c29d467"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU update from Ingo Molnar:\n \"The major features of this tree are:\n\n     1. A first version of no-callbacks CPUs.  This version prohibits\n        offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n        Relaxing this constraint is in progress, but not yet ready\n        for prime time.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/724.\n\n     2. Changes to SRCU that allows statically initialized srcu_struct\n        structures.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/296.\n\n     3. Restructuring of RCU\u0027s debugfs output.  These commits were posted\n        to LKML at https://lkml.org/lkml/2012/10/30/341.\n\n     4. Additional CPU-hotplug/RCU improvements, posted to LKML at\n        https://lkml.org/lkml/2012/10/30/327.\n        Note that the commit eliminating __stop_machine() was judged to\n        be too-high of risk, so is deferred to 3.9.\n\n     5. Changes to RCU\u0027s idle interface, most notably a new module\n        parameter that redirects normal grace-period operations to\n        their expedited equivalents.  These were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/739.\n\n     6. Additional diagnostics for RCU\u0027s CPU stall warning facility,\n        posted to LKML at https://lkml.org/lkml/2012/10/30/315.\n        The most notable change reduces the\n        default RCU CPU stall-warning time from 60 seconds to 21 seconds,\n        so that it once again happens sooner than the softlockup timeout.\n\n     7. Documentation updates, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/280.\n        A couple of late-breaking changes were posted at\n        https://lkml.org/lkml/2012/11/16/634 and\n        https://lkml.org/lkml/2012/11/16/547.\n\n     8. Miscellaneous fixes, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/309.\n\n     9. Finally, a fix for an lockdep-RCU splat was posted to LKML\n        at https://lkml.org/lkml/2012/11/7/486.\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)\n  context_tracking: New context tracking susbsystem\n  sched: Mark RCU reader in sched_show_task()\n  rcu: Separate accounting of callbacks from callback-free CPUs\n  rcu: Add callback-free CPUs\n  rcu: Add documentation for the new rcuexp debugfs trace file\n  rcu: Update documentation for TREE_RCU debugfs tracing\n  rcu: Reduce default RCU CPU stall warning timeout\n  rcu: Fix TINY_RCU rcu_is_cpu_rrupt_from_idle check\n  rcu: Clarify memory-ordering properties of grace-period primitives\n  rcu: Add new rcutorture module parameters to start/end test messages\n  rcu: Remove list_for_each_continue_rcu()\n  rcu: Fix batch-limit size problem\n  rcu: Add tracing for synchronize_sched_expedited()\n  rcu: Remove old debugfs interfaces and also RCU flavor name\n  rcu: split \u0027rcuhier\u0027 to each flavor\n  rcu: split \u0027rcugp\u0027 to each flavor\n  rcu: split \u0027rcuboost\u0027 to each flavor\n  rcu: split \u0027rcubarrier\u0027 to each flavor\n  rcu: Fix tracing formatting\n  rcu: Remove the interface \"rcudata.csv\"\n  ...\n"
    },
    {
      "commit": "608ff1a210ab0e8b969399039bf8e18693605910",
      "tree": "faea7bb1764461c73d0953089bd5439d91733a03",
      "parents": [
        "414a6750e59b0b687034764c464e9ddecac0f7a6",
        "74d42d8fe146e870c52bde3b1c692f86cc8ff844"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:05:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:05:37 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patchbomb)\n\nMerge misc updates from Andrew Morton:\n \"About half of most of MM.  Going very early this time due to\n  uncertainty over the coreautounifiednumasched things.  I\u0027ll send the\n  other half of most of MM tomorrow.  The rest of MM awaits a slab merge\n  from Pekka.\"\n\n* emailed patches from Andrew Morton: (71 commits)\n  memory_hotplug: ensure every online node has NORMAL memory\n  memory_hotplug: handle empty zone when online_movable/online_kernel\n  mm, memory-hotplug: dynamic configure movable memory and portion memory\n  drivers/base/node.c: cleanup node_state_attr[]\n  bootmem: fix wrong call parameter for free_bootmem()\n  avr32, kconfig: remove HAVE_ARCH_BOOTMEM\n  mm: cma: remove watermark hacks\n  mm: cma: skip watermarks check for already isolated blocks in split_free_page()\n  mm, oom: fix race when specifying a thread as the oom origin\n  mm, oom: change type of oom_score_adj to short\n  mm: cleanup register_node()\n  mm, mempolicy: remove duplicate code\n  mm/vmscan.c: try_to_freeze() returns boolean\n  mm: introduce putback_movable_pages()\n  virtio_balloon: introduce migration primitives to balloon pages\n  mm: introduce compaction and migration for ballooned pages\n  mm: introduce a common interface for balloon pages mobility\n  mm: redefine address_space.assoc_mapping\n  mm: adjust address_space_operations.migratepage() return code\n  arch/sparc/kernel/sys_sparc_64.c: s/COLOUR/COLOR/\n  ...\n"
    },
    {
      "commit": "81df9bff2609f07cef4690ac2ebda1611b55b05a",
      "tree": "52c5ebc7e9e5efd93040cba5f0439e043eec368e",
      "parents": [
        "e9b2e78c6a4247b1bb3e89c61e7d73636d2e48d1"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Tue Dec 11 16:03:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "bootmem: fix wrong call parameter for free_bootmem()\n\nIt is strange that alloc_bootmem() returns a virtual address and\nfree_bootmem() requires a physical address.  Anyway, free_bootmem()\u0027s\nfirst parameter should be physical address.\n\nThere are some call sites for free_bootmem() with virtual address.  So fix\nthem.\n\n[akpm@linux-foundation.org: improve free_bootmem() and free_bootmem_pate() documentation]\nSigned-off-by: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cff2f741b8ee8a70b208830e330de053efd4fc45",
      "tree": "83367ed74d889e2c8179f1f8b5d6f6f73b857982",
      "parents": [
        "b0885d01f9ab1274109c02942c881d598f939623",
        "92e9e6d1f9844b73a26215025a922e7d7aeae361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 13:13:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 13:13:55 2012 -0800"
      },
      "message": "Merge tag \u0027driver-core-3.8-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core updates from Greg Kroah-Hartman:\n \"Here\u0027s the large driver core updates for 3.8-rc1.\n\n  The biggest thing here is the various __dev* marking removals.  This\n  is going to be a pain for the merge with different subsystem trees, I\n  know, but all of the patches included here have been ACKed by their\n  various subsystem maintainers, as they wanted them to go through here.\n\n  If this is too much of a pain, I can pull all of them out of this tree\n  and just send you one with the other fixes/updates and then, after\n  3.8-rc1 is out, do the rest of the removals to ensure we catch them\n  all, it\u0027s up to you.  The merges should all be trivial, and Stephen\n  has been doing them all in linux-next for a few weeks now quite\n  easily.\n\n  Other than the __dev* marking removals, there\u0027s nothing major here,\n  some firmware loading updates and other minor things in the driver\n  core.\n\n  All of these have (much to Stephen\u0027s annoyance), been in linux-next\n  for a while.\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\nFixed up trivial conflicts in drivers/gpio/gpio-{em,stmpe}.c due to gpio\nupdate.\n\n* tag \u0027driver-core-3.8-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (93 commits)\n  modpost.c: Stop checking __dev* section mismatches\n  init.h: Remove __dev* sections from the kernel\n  acpi: remove use of __devinit\n  PCI: Remove __dev* markings\n  PCI: Always build setup-bus when PCI is enabled\n  PCI: Move pci_uevent into pci-driver.c\n  PCI: Remove CONFIG_HOTPLUG ifdefs\n  unicore32/PCI: Remove CONFIG_HOTPLUG ifdefs\n  sh/PCI: Remove CONFIG_HOTPLUG ifdefs\n  powerpc/PCI: Remove CONFIG_HOTPLUG ifdefs\n  mips/PCI: Remove CONFIG_HOTPLUG ifdefs\n  microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs\n  dma: remove use of __devinit\n  dma: remove use of __devexit_p\n  firewire: remove use of __devinitdata\n  firewire: remove use of __devinit\n  leds: remove use of __devexit\n  leds: remove use of __devinit\n  leds: remove use of __devexit_p\n  mmc: remove use of __devexit\n  ...\n"
    },
    {
      "commit": "6d49e352ae9aed3f599041b0c0389aa924815f14",
      "tree": "3b09be4f4c4544a0e602d1f41eb24bde5143496c",
      "parents": [
        "817eecbf8230982ec0fbf0718e06a489b67dcbcf"
      ],
      "author": {
        "name": "Nadia Yvette Chambers",
        "email": "nyc@holomorphy.com",
        "time": "Thu Dec 06 10:39:54 2012 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Dec 06 10:39:54 2012 +0100"
      },
      "message": "propagate name change to comments in kernel source\n\nI\u0027ve legally changed my name with New York State, the US Social Security\nAdministration, et al. This patch propagates the name change and change\nin initials and login to comments in the kernel source as well.\n\nSigned-off-by: Nadia Yvette Chambers \u003cnyc@holomorphy.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "527897ccd968c86ad3265d62962c8beccdb94e47",
      "tree": "7432b19ca679dd2ad2ed1784f4ac4deb31817b5b",
      "parents": [
        "f3537f91f9be2ce5fcbaa1aa6d787ad0436daec6"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Tue Dec 04 12:52:28 2012 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 06 17:25:01 2012 +1030"
      },
      "message": "lib/Makefile: Fix oid_registry build dependency\n\nIt is $(obj)/oid_registry.o that is dependent on $(obj)/oid_registry_data.c.\nThe object file cannot be built until $(obj)/oid_registry_data.c has been\ngenerated.\n\nA periodic and hard to reproduce parallel build failure is due to\nthis incorrect lib/Makefile dependency. The compile error is completely\ndisingenuous.\n\n  GEN     lib/oid_registry_data.c\nCompiling 49 OIDs\n  CC      lib/oid_registry.o\ngcc: error: lib/oid_registry.c: No such file or directory\ngcc: fatal error: no input files\ncompilation terminated.\nmake[3]: *** [lib/oid_registry.o] Error 4\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f3537f91f9be2ce5fcbaa1aa6d787ad0436daec6",
      "tree": "7e3b48605e275e89385b9602c017993441291664",
      "parents": [
        "12e130b04580532aa099893158aa2776b321ae7f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 22 15:05:55 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 05 11:27:39 2012 +1030"
      },
      "message": "ASN.1: Fix an indefinite length skip error\n\nFix an error in asn1_find_indefinite_length() whereby small definite length\nelements of size 0x7f are incorrecly classified as non-small.  Without this\nfix, an error will be given as the length of the length will be perceived as\nbeing very much greater than the maximum supported size.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e41e85cc17fc903a1f1eaae6b69608942952e5d2",
      "tree": "e4c0ccfcb83ffa3e49a4ebdf9db3426fe16613d9",
      "parents": [
        "45c2aa989125bdb5ad064f5b32636edce044a84e"
      ],
      "author": {
        "name": "Masanari Iida",
        "email": "standby24x7@gmail.com",
        "time": "Fri Nov 30 16:44:39 2012 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 03 11:03:56 2012 +0100"
      },
      "message": "treewide: Fix typos in various Kconfig\n\nCorrect spelling typo within various Kconfig.\n\nSigned-off-by: Masanari Iida \u003cstandby24x7@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "630e1e0bcddfda9566462d4f9a0d58b31c29d467",
      "tree": "b09a28cf7b9ff0fee53af2245a7e3f8d006ae091",
      "parents": [
        "7e5530af11be68f3109672aed59243f82e1272f0",
        "91d1aa43d30505b0b825db8898ffc80a8eca96c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Dec 03 06:27:05 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Dec 03 06:27:05 2012 +0100"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nConflicts:\n\tarch/x86/kernel/ptrace.c\n\nPull the latest RCU tree from Paul E. McKenney:\n\n\"       The major features of this series are:\n\n  1.\tA first version of no-callbacks CPUs.  This version prohibits\n  \tofflining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n  \tRelaxing this constraint is in progress, but not yet ready\n  \tfor prime time.  These commits were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/724, and are at branch rcu/nocb.\n\n  2.\tChanges to SRCU that allows statically initialized srcu_struct\n  \tstructures.  These commits were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/296, and are at branch rcu/srcu.\n\n  3.\tRestructuring of RCU\u0027s debugfs output.  These commits were posted\n  \tto LKML at https://lkml.org/lkml/2012/10/30/341, and are at\n  \tbranch rcu/tracing.\n\n  4.\tAdditional CPU-hotplug/RCU improvements, posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/327, and are at branch rcu/hotplug.\n  \tNote that the commit eliminating __stop_machine() was judged to\n  \tbe too-high of risk, so is deferred to 3.9.\n\n  5.\tChanges to RCU\u0027s idle interface, most notably a new module\n  \tparameter that redirects normal grace-period operations to\n  \ttheir expedited equivalents.  These were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/739, and are at branch rcu/idle.\n\n  6.\tAdditional diagnostics for RCU\u0027s CPU stall warning facility,\n  \tposted to LKML at https://lkml.org/lkml/2012/10/30/315, and\n  \tare at branch rcu/stall.  The most notable change reduces the\n  \tdefault RCU CPU stall-warning time from 60 seconds to 21 seconds,\n  \tso that it once again happens sooner than the softlockup timeout.\n\n  7.\tDocumentation updates, which were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/280, and are at branch rcu/doc.\n  \tA couple of late-breaking changes were posted at\n  \thttps://lkml.org/lkml/2012/11/16/634 and\n  \thttps://lkml.org/lkml/2012/11/16/547.\n\n  8.\tMiscellaneous fixes, which were posted to LKML at\n  \thttps://lkml.org/lkml/2012/10/30/309, along with a late-breaking\n  \tchange posted at Fri, 16 Nov 2012 11:26:25 -0800 with message-ID\n  \t\u003c20121116192625.GA447@linux.vnet.ibm.com\u003e, but which lkml.org\n  \tseems to have missed.  These are at branch rcu/fixes.\n\n  9.\tFinally, a fix for an lockdep-RCU splat was posted to LKML\n  \tat https://lkml.org/lkml/2012/11/7/486.  This is at rcu/next. \"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "610141ee651cee2cd27584434aa9dd9d967f0089",
      "tree": "e2ce67885df12377d8ad8e2a39f426a0a26b5fd4",
      "parents": [
        "e3a1a5ec5cd516c85848611992102fc00e8af601"
      ],
      "author": {
        "name": "Bill Pemberton",
        "email": "wfp5p@virginia.edu",
        "time": "Mon Nov 19 13:21:19 2012 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Nov 28 10:52:58 2012 -0800"
      },
      "message": "lib: kobject_uevent is no longer dependant on CONFIG_HOTPLUG\n\nCONFIG_HOTPLUG is being removed so kobject_uevent needs to always be\npart of the library.\n\nSigned-off-by: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a3cea9894157c20a5b1ec08b7e0b5f2019740c10",
      "tree": "a1d319be7afd92637f89c5e6cbc2865b5cf908f6",
      "parents": [
        "f93a1a00f2bd550f86fd1a9f83c493755aecd15f"
      ],
      "author": {
        "name": "Manuel Lauss",
        "email": "manuel.lauss@gmail.com",
        "time": "Thu Nov 22 11:58:22 2012 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Nov 23 18:57:17 2012 +0100"
      },
      "message": "MPI: Fix compilation on MIPS with GCC 4.4 and newer\n\nSince 4.4 GCC on MIPS no longer recognizes the \"h\" constraint,\nleading to this build failure:\n\n  CC      lib/mpi/generic_mpih-mul1.o\nlib/mpi/generic_mpih-mul1.c: In function \u0027mpihelp_mul_1\u0027:\nlib/mpi/generic_mpih-mul1.c:50:3: error: impossible constraint in \u0027asm\u0027\n\nThis patch updates MPI with the latest umul_ppm implementations for MIPS.\n\nSigned-off-by: Manuel Lauss \u003cmanuel.lauss@gmail.com\u003e\nCc: Linux-MIPS \u003clinux-mips@linux-mips.org\u003e\nCc: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/4612/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "bfe0fb0f1a570ae72680d6d48655c98d1f4733f5",
      "tree": "8da2d888a5c38bcc4389e0fbd7cf9bf624ca59c2",
      "parents": [
        "8d7f62e6a7aa0bfd7163d3c4a5fb59280f6a6eb5"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuah.khan@hp.com",
        "time": "Sat Nov 03 17:00:07 2012 -0600"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Sat Nov 17 13:06:41 2012 +0100"
      },
      "message": "dma-debug: fix to not have dependency on get_dma_ops() interface\n\ndma-debug depends on get_dma_ops() interface. Several architectures\ndo not define dma_ops and get_dma_ops(). When dma debug interfaces are\nused on an architecture (e.g: c6x) that doesn\u0027t define get_dmap_ops(),\ncompilation fails. Changing dma-debug to call dma_mapping_error() instead\nof defining its own that calls get_dma_ops(), such that the internal use of\ndma_mapping_error() doesn\u0027t interfere with the debug_dma_mapping_error()\ninterface\u0027s mapping error checks. Moving dma_mapping_error() checks in\ncheck_unmap() under the dma debug entry not found is sufficient to fix the\nproblem.\n\nReference: https://lkml.org/lkml/2012/10/26/367\n\nSigned-off-by: Shuah Khan \u003cshuah.khan@hp.com\u003e\nReported-by: Mark Salter \u003cmsalter@redhat.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoro@8bytes.org\u003e\n"
    },
    {
      "commit": "c896054f75f9a720ecf2ab3e688f4da79a55fe05",
      "tree": "3d5008aaf1c30330ad3d73119337f4be665ec077",
      "parents": [
        "53bb857c373d6b7936f8a7b4451f0a99703c308e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 25 17:59:23 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Nov 13 14:09:56 2012 -0800"
      },
      "message": "rcu: Reduce default RCU CPU stall warning timeout\n\nThe RCU CPU stall warning timeout has defaulted to 60 seconds for\nsome years, with almost no false positives.  This commit therefore\nreduces the default to 21 seconds, slightly shorter than the new\nsoft-lockup timeout.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "986836503e49ccf7e84b813715d344964ec93566",
      "tree": "b3bea7428efde5b77096cef80e5b6bfee494cc12",
      "parents": [
        "ccae7868b0c5697508a541c531cf96b361d62c1c",
        "328e0f125bf41f4f33f684db22015f92cb44fe56"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:18:43 2012 +0100"
      },
      "committer": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Nov 09 14:20:23 2012 +0100"
      },
      "message": "Merge branch \u0027drbd-8.4_ed6\u0027 into for-3.8-drivers-drbd-8.4_ed6\n"
    },
    {
      "commit": "af51a9f1848ff50079a10def56a2c064f326af22",
      "tree": "c20814b1488a23a9f861f2f91bb74abcd30977bc",
      "parents": [
        "fbfda893eb570bbe9e9ad9128b6e9cf2a1e48c87"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:55 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:07 2012 -0400"
      },
      "message": "swiotlb: Do not export swiotlb_bounce since there are no external consumers\n\nCurrently swiotlb is the only consumer for swiotlb_bounce.  Since that is the\ncase it doesn\u0027t make much sense to be exporting it so make it a static\nfunction only.\n\nIn addition we can save a few more lines of code by making it so that it\naccepts the DMA address as a physical address instead of a virtual one.  This\nis the last piece in essentially pushing all of the DMA address values to use\nphysical addresses in swiotlb.\n\nIn order to clarify things since we now have 2 physical addresses in use\ninside of swiotlb_bounce I am renaming phys to orig_addr, and dma_addr to\ntlb_addr.  This way is should be clear that orig_addr is contained within\nio_orig_addr and tlb_addr is an address within the io_tlb_addr buffer.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "fbfda893eb570bbe9e9ad9128b6e9cf2a1e48c87",
      "tree": "c79485f1cec2861db3f86852629c19d32fda30bd",
      "parents": [
        "61ca08c3220032dd88815b3465d56cb779258168"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:49 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:07 2012 -0400"
      },
      "message": "swiotlb: Use physical addresses instead of virtual in swiotlb_tbl_sync_single\n\nThis change makes it so that the sync functionality also uses physical\naddresses.  This helps to further reduce the use of virt_to_phys and\nphys_to_virt functions.\n\nIn order to clarify things since we now have 2 physical addresses in use\ninside of swiotlb_tbl_sync_single I am renaming phys to orig_addr, and\ndma_addr to tlb_addr.  This way is should be clear that orig_addr is\ncontained within io_orig_addr and tlb_addr is an address within the\nio_tlb_addr buffer.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "61ca08c3220032dd88815b3465d56cb779258168",
      "tree": "b126015d4fd76ff1e4b936097877e734aa19746b",
      "parents": [
        "e05ed4d1fad9e730995abb08cb9bc3bffac5018b"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:44 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:07 2012 -0400"
      },
      "message": "swiotlb: Use physical addresses for swiotlb_tbl_unmap_single\n\nThis change makes it so that the unmap functionality also uses physical\naddresses.  This helps to further reduce the use of virt_to_phys and\nphys_to_virt functions.\n\nIn order to clarify things since we now have 2 physical addresses in use\ninside of swiotlb_tbl_unmap_single I am renaming phys to orig_addr, and\ndma_addr to tlb_addr.  This way is should be clear that orig_addr is\ncontained within io_orig_addr and tlb_addr is an address within the\nio_tlb_addr buffer.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "e05ed4d1fad9e730995abb08cb9bc3bffac5018b",
      "tree": "72a2662e8b85308bad057c904a5231d890d7fbba",
      "parents": [
        "ee3f6ba896c7e62004b677b0018a0b29b9b26472"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:39 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:06 2012 -0400"
      },
      "message": "swiotlb: Return physical addresses when calling swiotlb_tbl_map_single\n\nThis change makes it so that swiotlb_tbl_map_single will return a physical\naddress instead of a virtual address when called.  The advantage to this once\nagain is that we are avoiding a number of virt_to_phys and phys_to_virt\ntranslations by working with everything as a physical address.\n\nOne change I had to make in order to support using physical addresses is that\nI could no longer trust 0 to be a invalid physical address on all platforms.\nSo instead I made it so that ~0 is returned on error.  This should never be a\nvalid return value as it implies that only one byte would be available for\nuse.\n\nIn order to clarify things since we now have 2 physical addresses in use\ninside of swiotlb_tbl_map_single I am renaming phys to orig_addr, and\ndma_addr to tlb_addr.  This way is should be clear that orig_addr is\ncontained within io_orig_addr and tlb_addr is an address within the\nio_tlb_addr buffer.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "ee3f6ba896c7e62004b677b0018a0b29b9b26472",
      "tree": "035a4d1280053dbd68a78b1b31df3d6056f94440",
      "parents": [
        "ff7204a74931fc67ed13d8febbc322a46833c1fa"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:34 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:06 2012 -0400"
      },
      "message": "swiotlb: Make io_tlb_overflow_buffer a physical address\n\nThis change makes it so that we can avoid virt_to_phys overhead when using the\nio_tlb_overflow_buffer.  My original plan was to completely remove the value\nand replace it with a constant but I had seen that there were recent patches\nthat stated this couldn\u0027t be done until all device drivers that depended on\nthat functionality be updated.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "ff7204a74931fc67ed13d8febbc322a46833c1fa",
      "tree": "3f1eccbd9bedf1109c6bbc434805feb52c1dd1d0",
      "parents": [
        "c40dba06e9a27d673197a2083828f13eff16b2ab"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:28 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:06 2012 -0400"
      },
      "message": "swiotlb: Make io_tlb_start a physical address instead of a virtual one\n\nThis change replaces all references to the virtual address for io_tlb_start\nwith references to the physical address io_tlb_end.  The main advantage of\nreplacing the virtual address with a physical address is that we can avoid\nhaving to do multiple translations from the virtual address to the physical\none needed for testing an existing DMA address.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "c40dba06e9a27d673197a2083828f13eff16b2ab",
      "tree": "2bea1f9eaf85ef76aaed04b291f45bbeb7090e15",
      "parents": [
        "8f0d8163b50e01f398b14bcd4dc039ac5ab18d64"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@intel.com",
        "time": "Mon Oct 15 10:19:22 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Oct 30 09:32:05 2012 -0400"
      },
      "message": "swiotlb: Make io_tlb_end a physical address instead of a virtual one\n\nThis change replaces all references to the virtual address for io_tlb_end\nwith references to the physical address io_tlb_end.  The main advantage of\nreplacing the virtual address with a physical address is that we can avoid\nhaving to do multiple translations from the virtual address to the physical\none needed for testing an existing DMA address.\n\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "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": "6c9c6d6301287e369a754d628230fa6e50cdb74b",
      "tree": "ce47f4a8f5005c663c2686ec00d0ba272ace598d",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuah.khan@hp.com",
        "time": "Mon Oct 08 11:08:06 2012 -0600"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Oct 24 17:06:43 2012 +0200"
      },
      "message": "dma-debug: New interfaces to debug dma mapping errors\n\nAdd dma-debug interface debug_dma_mapping_error() to debug\ndrivers that fail to check dma mapping errors on addresses\nreturned by dma_map_single() and dma_map_page() interfaces.\nThis interface clears a flag set by debug_dma_map_page() to\nindicate that dma_mapping_error() has been called by the\ndriver. When driver does unmap, debug_dma_unmap() checks the\nflag and if this flag is still set, prints warning message\nthat includes call trace that leads up to the unmap. This\ninterface can be called from dma_mapping_error() routines to\nenable dma mapping error check debugging.\n\nTested: Intel iommu and swiotlb (iommu\u003dsoft) on x86-64 with\n        CONFIG_DMA_API_DEBUG enabled and disabled.\n\nSigned-off-by: Shuah Khan \u003cshuah.khan@hp.com\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\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"
    }
  ],
  "next": "da99075c1d368315e1508b6143226c0d27b621e0"
}
