)]}'
{
  "log": [
    {
      "commit": "86a1e1896c2710402e29a875d8d830244274244d",
      "tree": "1b27f5107ec51e06921e510c67eeca47ba1b5a66",
      "parents": [
        "27c766aaacb265d625dc634bf7903f7f9fd0c697"
      ],
      "author": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Mon Mar 05 16:51:11 2012 +0100"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Tue Mar 27 20:06:02 2012 +0200"
      },
      "message": "watchdog: nowayout is bool\n\nnowayout is actually a boolean value.\nSo make it bool for all watchdog device drivers.\n\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "e22057c8599373e5caef0bc42bdb95d2a361ab0d",
      "tree": "04e9f51835f4d5c08aada38597c30de1113c03d9",
      "parents": [
        "496b919b3bdd957d4b1727df79bfa3751bced1c1",
        "df7a3ee29b775edd1c2d75cf0b128b174bd4091e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 12:20:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 12:20:25 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4-tag-two\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull more xen updates from Konrad Rzeszutek Wilk:\n \"One tiny feature that accidentally got lost in the initial git pull:\n   * Add fast-EOI acking of interrupts (clear a bit instead of\n     hypercall)\n  And bug-fixes:\n   * Fix CPU bring-up code missing a call to notify other subsystems.\n   * Fix reading /sys/hypervisor even if PVonHVM drivers are not loaded.\n   * In Xen ACPI processor driver: remove too verbose WARN messages, fix\n     up the Kconfig dependency to be a module by default, and add\n     dependency on CPU_FREQ.\n   * Disable CPU frequency drivers from loading when booting under Xen\n     (as we want the Xen ACPI processor to be used instead).\n   * Cleanups in tmem code.\"\n\n* tag \u0027stable/for-linus-3.4-tag-two\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/acpi: Fix Kconfig dependency on CPU_FREQ\n  xen: initialize platform-pci even if xen_emul_unplug\u003dnever\n  xen/smp: Fix bringup bug in AP code.\n  xen/acpi: Remove the WARN\u0027s as they just create noise.\n  xen/tmem: cleanup\n  xen: support pirq_eoi_map\n  xen/acpi-processor: Do not depend on CPU frequency scaling drivers.\n  xen/cpufreq: Disable the cpu frequency scaling drivers from loading.\n  provide disable_cpufreq() function to disable the API.\n"
    },
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
      "tree": "1cbfd86070f724d5ffe53146d4c67edf14cccf98",
      "parents": [
        "dae430c6f6e5d0b98c238c340a41a39e221e8940",
        "4e474a00d7ff746ed177ddae14fa8b2d4bad7a00"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl\n\nPull sysctl updates from Eric Biederman:\n\n - Rewrite of sysctl for speed and clarity.\n\n   Insert/remove/Lookup in sysctl are all now O(NlogN) operations, and\n   are no longer bottlenecks in the process of adding and removing\n   network devices.\n\n   sysctl is now focused on being a filesystem instead of system call\n   and the code can all be found in fs/proc/proc_sysctl.c.  Hopefully\n   this means the code is now approachable.\n\n   Much thanks is owed to Lucian Grinjincu for keeping at this until\n   something was found that was usable.\n\n - The recent proc_sys_poll oops found by the fuzzer during hibernation\n   is fixed.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl: (36 commits)\n  sysctl: protect poll() in entries that may go away\n  sysctl: Don\u0027t call sysctl_follow_link unless we are a link.\n  sysctl: Comments to make the code clearer.\n  sysctl: Correct error return from get_subdir\n  sysctl: An easier to read version of find_subdir\n  sysctl: fix memset parameters in setup_sysctl_set()\n  sysctl: remove an unused variable\n  sysctl: Add register_sysctl for normal sysctl users\n  sysctl: Index sysctl directories with rbtrees.\n  sysctl: Make the header lists per directory.\n  sysctl: Move sysctl_check_dups into insert_header\n  sysctl: Modify __register_sysctl_paths to take a set instead of a root and an nsproxy\n  sysctl: Replace root_list with links between sysctl_table_sets.\n  sysctl: Add sysctl_print_dir and use it in get_subdir\n  sysctl: Stop requiring explicit management of sysctl directories\n  sysctl: Add a root pointer to ctl_table_set\n  sysctl: Rewrite proc_sys_readdir in terms of first_entry and next_entry\n  sysctl: Rewrite proc_sys_lookup introducing find_entry and lookup_entry.\n  sysctl: Normalize the root_table data structure.\n  sysctl: Factor out insert_header and erase_header\n  ...\n"
    },
    {
      "commit": "cf821923ba9aa0917165a12573bdd6dc0a354421",
      "tree": "a42f6e7db1eeddb67f6b78ef0336ad7d3ac0fd26",
      "parents": [
        "4416b0eaa3d51f3e360d6e171e603ff51848bcf5",
        "a7b422cda5084db7265c3b23310a959b43b47529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:56:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:56:39 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\nPull cpufreq updates for 3.4 from Dave Jones: new drivers and some fixes.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  provide disable_cpufreq() function to disable the API.\n  EXYNOS5250: Add support cpufreq for EXYNOS5250\n  EXYNOS4X12: Add support cpufreq for EXYNOS4X12\n  [CPUFREQ] CPUfreq ondemand: update sampling rate without waiting for next sampling\n  [CPUFREQ] Add S3C2416/S3C2450 cpufreq driver\n  [CPUFREQ] Fix exposure of ARM_EXYNOS4210_CPUFREQ\n  [CPUFREQ] EXYNOS4210: update the name of EXYNOS clock register\n  [CPUFREQ] EXYNOS: Initialize locking_frequency with initial frequency\n  [CPUFREQ] s3c64xx: Fix mis-cherry pick of VDDINT\n\nFix up trivial conflicts in Kconfig and Makefile due to just changes\nnext to each other (OMAP2PLUS changes vs some new EXYNOS cpufreq\ndrivers).\n"
    },
    {
      "commit": "0d19eac12031680dc5f5402921fb0c388e42f619",
      "tree": "57302fb8778b6527c35175cc1edf228dd9f7abb9",
      "parents": [
        "56c10bf82c10588b743e75a13a7949e11b9fc942",
        "bba1594d348b59d6172e02bf74fba837c8273989"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:36:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:36:29 2012 -0700"
      },
      "message": "Merge branch \u0027amba\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull #2 ARM updates from Russell King:\n \"Further ARM AMBA primecell updates which aren\u0027t included directly in\n  the previous commit.  I wanted to keep these separate as they\u0027re\n  touching stuff outside arch/arm/.\"\n\n* \u0027amba\u0027 of git://git.linaro.org/people/rmk/linux-arm:\n  ARM: 7362/1: AMBA: Add module_amba_driver() helper macro for amba_driver\n  ARM: 7335/1: mach-u300: do away with MMC config files\n  ARM: 7280/1: mmc: mmci: Cache MMCICLOCK and MMCIPOWER register\n  ARM: 7309/1: realview: fix unconnected interrupts on EB11MP\n  ARM: 7230/1: mmc: mmci: Fix PIO read for small SDIO packets\n  ARM: 7227/1: mmc: mmci: Prepare for SDIO before setting up DMA job\n  ARM: 7223/1: mmc: mmci: Fixup use of runtime PM and use autosuspend\n  ARM: 7221/1: mmc: mmci: Change from using legacy suspend\n  ARM: 7219/1: mmc: mmci: Change vdd_handler to a generic ios_handler\n  ARM: 7218/1: mmc: mmci: Provide option to configure bus signal direction\n  ARM: 7217/1: mmc: mmci: Put power register deviations in variant data\n  ARM: 7216/1: mmc: mmci: Do not release spinlock in request_end\n  ARM: 7215/1: mmc: mmci: Increase max_segs from 16 to 128\n"
    },
    {
      "commit": "56c10bf82c10588b743e75a13a7949e11b9fc942",
      "tree": "a2eda0459abb314107ac64af770bf7fb360aefc6",
      "parents": [
        "bab2d8c6020e1d7521cb6c4939f72b061ce947bc",
        "61b80086a525c8a6081257ae40da5dee2bcaee16"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:30:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 17:30:49 2012 -0700"
      },
      "message": "Merge branch \u0027for-armsoc\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull #1 ARM updates from Russell King:\n \"This one covers stuff which Arnd is waiting for me to push, as this is\n  shared between both our trees and probably other trees elsewhere.\n\n  Essentially, this contains:\n   - AMBA primecell device initializer updates - mostly shrinking the\n     size of the device declarations in platform code to something more\n     reasonable.\n   - Getting rid of the NO_IRQ crap from AMBA primecell stuff.\n   - Nicolas\u0027 idle cleanups.  This in combination with the restart\n     cleanups from the last merge window results in a great many\n     mach/system.h files being deleted.\"\n\nYay: ~80 files, ~2000 lines deleted.\n\n* \u0027for-armsoc\u0027 of git://git.linaro.org/people/rmk/linux-arm: (60 commits)\n  ARM: remove disable_fiq and arch_ret_to_user macros\n  ARM: make entry-macro.S depend on !MULTI_IRQ_HANDLER\n  ARM: rpc: make default fiq handler run-time installed\n  ARM: make arch_ret_to_user macro optional\n  ARM: amba: samsung: use common amba device initializers\n  ARM: amba: spear: use common amba device initializers\n  ARM: amba: nomadik: use common amba device initializers\n  ARM: amba: u300: use common amba device initializers\n  ARM: amba: lpc32xx: use common amba device initializers\n  ARM: amba: netx: use common amba device initializers\n  ARM: amba: bcmring: use common amba device initializers\n  ARM: amba: ep93xx: use common amba device initializers\n  ARM: amba: omap2: use common amba device initializers\n  ARM: amba: integrator: use common amba device initializers\n  ARM: amba: realview: get rid of private platform amba_device initializer\n  ARM: amba: versatile: get rid of private platform amba_device initializer\n  ARM: amba: vexpress: get rid of private platform amba_device initializer\n  ARM: amba: provide common initializers for static amba devices\n  ARM: amba: make use of -1 IRQs warn\n  ARM: amba: u300: get rid of NO_IRQ initializers\n  ...\n"
    },
    {
      "commit": "bba1594d348b59d6172e02bf74fba837c8273989",
      "tree": "223e67a4ad043d4ec9361e89c59592ea60e7ddff",
      "parents": [
        "9e5ed094c89e55fbf11d2e81d60be98eb12346c0",
        "7437cfa532842ce75189826742bddf1ba137f58e"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Mar 24 00:10:36 2012 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Mar 24 00:10:36 2012 +0000"
      },
      "message": "Merge branch \u0027mmci\u0027 into amba\n"
    },
    {
      "commit": "8e3ade251bc7c0a4f0777df4dd34343a03efadba",
      "tree": "6c0b78731e3d6609057951d07660efbd90992ad0",
      "parents": [
        "e317234975cb7463b8ca21a93bb6862d9dcf113f",
        "e075f59152890ffd7e3d704afc997dd686c8a781"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge second batch of patches from Andrew Morton:\n - various misc things\n - core kernel changes to prctl, exit, exec, init, etc.\n - kernel/watchdog.c updates\n - get_maintainer\n - MAINTAINERS\n - the backlight driver queue\n - core bitops code cleanups\n - the led driver queue\n - some core prio_tree work\n - checkpatch udpates\n - largeish crc32 update\n - a new poll() feature for the v4l guys\n - the rtc driver queue\n - fatfs\n - ptrace\n - signals\n - kmod/usermodehelper updates\n - coredump\n - procfs updates\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (141 commits)\n  seq_file: add seq_set_overflow(), seq_overflow()\n  proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().\n  procfs: speed up /proc/pid/stat, statm\n  procfs: add num_to_str() to speed up /proc/stat\n  proc: speed up /proc/stat handling\n  fs/proc/kcore.c: make get_sparsemem_vmemmap_info() static\n  coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n  coredump: remove VM_ALWAYSDUMP flag\n  kmod: make __request_module() killable\n  kmod: introduce call_modprobe() helper\n  usermodehelper: ____call_usermodehelper() doesn\u0027t need do_exit()\n  usermodehelper: kill umh_wait, renumber UMH_* constants\n  usermodehelper: implement UMH_KILLABLE\n  usermodehelper: introduce umh_complete(sub_info)\n  usermodehelper: use UMH_WAIT_PROC consistently\n  signal: zap_pid_ns_processes: s/SEND_SIG_NOINFO/SEND_SIG_FORCED/\n  signal: oom_kill_task: use SEND_SIG_FORCED instead of force_sig()\n  signal: cosmetic, s/from_ancestor_ns/force/ in prepare_signal() paths\n  signal: give SEND_SIG_FORCED more power to beat SIGNAL_UNKILLABLE\n  Hexagon: use set_current_blocked() and block_sigmask()\n  ...\n"
    },
    {
      "commit": "bda7bad62bc4c4e0783348e8db51abe094153c56",
      "tree": "c62650a3da656ba18aebe170df7d554158ae5fc5",
      "parents": [
        "1ac101a5d675aca2426c5cd460c73fb95acb8391"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: speed up /proc/pid/stat, statm\n\nProcess accounting applications as top, ps visit some files under\n/proc/\u003cpid\u003e.  With seq_put_decimal_ull(), we can optimize /proc/\u003cpid\u003e/stat\nand /proc/\u003cpid\u003e/statm files.\n\nThis patch adds\n  - seq_put_decimal_ll() for signed values.\n  - allow delimiter \u003d\u003d 0.\n  - convert seq_printf() to seq_put_decimal_ull/ll in /proc/stat, statm.\n\nTest result on a system with 2000+ procs.\n\nBefore patch:\n  [kamezawa@bluextal test]$ top -b -n 1 | wc -l\n  2223\n  [kamezawa@bluextal test]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.675s\n  user    0m0.044s\n  sys     0m0.121s\n\n  [kamezawa@bluextal test]$ time ps -elf \u003e /dev/null\n\n  real    0m0.236s\n  user    0m0.056s\n  sys     0m0.176s\n\nAfter patch:\n  kamezawa@bluextal ~]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.657s\n  user    0m0.052s\n  sys     0m0.100s\n\n  [kamezawa@bluextal ~]$ time ps -elf \u003e /dev/null\n\n  real    0m0.198s\n  user    0m0.050s\n  sys     0m0.145s\n\nConsidering top, ps tend to scan /proc periodically, this will reduce cpu\nconsumption by top/ps to some extent.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "1ac101a5d675aca2426c5cd460c73fb95acb8391",
      "tree": "5d993fde0c5e67de97c0d9ffac54163f06fc90c9",
      "parents": [
        "59a32e2ce5eb809967cac4e718bc527beca83c59"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: add num_to_str() to speed up /proc/stat\n\n\u003d\u003d stat_check.py\nnum \u003d 0\nwith open(\"/proc/stat\") as f:\n        while num \u003c 1000 :\n                data \u003d f.read()\n                f.seek(0, 0)\n                num \u003d num + 1\n\u003d\u003d\n\nperf shows\n\n    20.39%  stat_check.py  [kernel.kallsyms]    [k] format_decode\n    13.41%  stat_check.py  [kernel.kallsyms]    [k] number\n    12.61%  stat_check.py  [kernel.kallsyms]    [k] vsnprintf\n    10.85%  stat_check.py  [kernel.kallsyms]    [k] memcpy\n     4.85%  stat_check.py  [kernel.kallsyms]    [k] radix_tree_lookup\n     4.43%  stat_check.py  [kernel.kallsyms]    [k] seq_printf\n\nThis patch removes most of calls to vsnprintf() by adding num_to_str()\nand seq_print_decimal_ull(), which prints decimal numbers without rich\nfunctions provided by printf().\n\nOn my 8cpu box.\n\u003d\u003d Before patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.150s\nuser    0m0.026s\nsys     0m0.121s\n\n\u003d\u003d After patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.055s\nuser    0m0.022s\nsys     0m0.030s\n\n[akpm@linux-foundation.org: remove incorrect comment, use less statck in num_to_str(), move comment from .h to .c, simplify seq_put_decimal_ull()]\n[andrea@betterlinux.com: avoid breaking the ABI in /proc/stat]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Righi \u003candrea@betterlinux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909af768e88867016f427264ae39d27a57b6a8ed",
      "tree": "5068b4d98e4bedecde89d9113dc7ef8c69633f45",
      "parents": [
        "1cc684ab75123efe7ff446eb821d44375ba8fa30"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: remove VM_ALWAYSDUMP flag\n\nThe motivation for this patchset was that I was looking at a way for a\nqemu-kvm process, to exclude the guest memory from its core dump, which\ncan be quite large.  There are already a number of filter flags in\n/proc/\u003cpid\u003e/coredump_filter, however, these allow one to specify \u0027types\u0027\nof kernel memory, not specific address ranges (which is needed in this\ncase).\n\nSince there are no more vma flags available, the first patch eliminates\nthe need for the \u0027VM_ALWAYSDUMP\u0027 flag.  The flag is used internally by\nthe kernel to mark vdso and vsyscall pages.  However, it is simple\nenough to check if a vma covers a vdso or vsyscall page without the need\nfor this flag.\n\nThe second patch then replaces the \u0027VM_ALWAYSDUMP\u0027 flag with a new\n\u0027VM_NODUMP\u0027 flag, which can be set by userspace using new madvise flags:\n\u0027MADV_DONTDUMP\u0027, and unset via \u0027MADV_DODUMP\u0027.  The core dump filters\ncontinue to work the same as before unless \u0027MADV_DONTDUMP\u0027 is set on the\nregion.\n\nThe qemu code which implements this features is at:\n\n  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch\n\nIn my testing the qemu core dump shrunk from 383MB -\u003e 13MB with this\npatch.\n\nI also believe that the \u0027MADV_DONTDUMP\u0027 flag might be useful for\nsecurity sensitive apps, which might want to select which areas are\ndumped.\n\nThis patch:\n\nThe VM_ALWAYSDUMP flag is currently used by the coredump code to\nindicate that a vma is part of a vsyscall or vdso section.  However, we\ncan determine if a vma is in one these sections by checking it against\nthe gate_vma and checking for a non-NULL return value from\narch_vma_name().  Thus, freeing a valuable vma bit.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@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": "9d944ef32e83405a07376f112e9f02161d3e9731",
      "tree": "24170ff64fb83221da133e2afb53f58e840a6eee",
      "parents": [
        "d0bd587a80960d7ba7e0c8396e154028c9045c54"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "usermodehelper: kill umh_wait, renumber UMH_* constants\n\nNo functional changes.  It is not sane to use UMH_KILLABLE with enum\numh_wait, but obviously we do not want another argument in\ncall_usermodehelper_* helpers.  Kill this enum, use the plain int.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@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": "d0bd587a80960d7ba7e0c8396e154028c9045c54",
      "tree": "3765f8eccdc5f982ba173a7a05d8981d573b9486",
      "parents": [
        "b3449922502f5a161ee2b5022a33aec8472fbf18"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "usermodehelper: implement UMH_KILLABLE\n\nImplement UMH_KILLABLE, should be used along with UMH_WAIT_EXEC/PROC.\nThe caller must ensure that subprocess_info-\u003epath/etc can not go away\nuntil call_usermodehelper_freeinfo().\n\ncall_usermodehelper_exec(UMH_KILLABLE) does\nwait_for_completion_killable.  If it fails, it uses\nxchg(\u0026sub_info-\u003ecomplete, NULL) to serialize with umh_complete() which\ndoes the same xhcg() to access sub_info-\u003ecomplete.\n\nIf call_usermodehelper_exec wins, it can safely return.  umh_complete()\nshould get NULL and call call_usermodehelper_freeinfo().\n\nOtherwise we know that umh_complete() was already called, in this case\ncall_usermodehelper_exec() falls back to wait_for_completion() which\nshould succeed \"very soon\".\n\nNote: UMH_NO_WAIT \u003d\u003d -1 but it obviously should not be used with\nUMH_KILLABLE.  We delay the neccessary cleanup to simplify the back\nporting.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@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": "ee00560c7dac1dbbf048446a8489550d0a5765b7",
      "tree": "e2a07e3ee58daa2a915634b18bb14d6c75c3e006",
      "parents": [
        "5cdf389aee90109e2e3d88085dea4dd5508a3be7"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Mar 23 15:02:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "ptrace: remove PTRACE_SEIZE_DEVEL bit\n\nPTRACE_SEIZE code is tested and ready for production use, remove the\ncode which requires special bit in data argument to make PTRACE_SEIZE\nwork.\n\nStrace team prepares for a new release of strace, and we would like to\nship the code which uses PTRACE_SEIZE, preferably after this change goes\ninto released kernel.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@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": "5cdf389aee90109e2e3d88085dea4dd5508a3be7",
      "tree": "ab59bc0fef6800ea6bbe20a1828bd396094bfbf8",
      "parents": [
        "aa9147c98f27550bd39416eca5a5844e54bced26"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Mar 23 15:02:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "ptrace: renumber PTRACE_EVENT_STOP so that future new options and events can match\n\nPTRACE_EVENT_foo and PTRACE_O_TRACEfoo used to match.\n\nNew PTRACE_EVENT_STOP is the first event which has no corresponding\nPTRACE_O_TRACE option.  If we will ever want to add another such option,\nits PTRACE_EVENT\u0027s value will collide with PTRACE_EVENT_STOP\u0027s value.\n\nThis patch changes PTRACE_EVENT_STOP value to prevent this.\n\nWhile at it, added a comment - the one atop PTRACE_EVENT block, saying\n\"Wait extended result codes for the above trace options\", is not true\nfor PTRACE_EVENT_STOP.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@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": "86b6c1f301faf085de5a3f9ce16b8de6e69c729b",
      "tree": "115a168d533a54f4e3dc1ed195c58b65a71d8627",
      "parents": [
        "8c5cf9e5c50dc902713897e10201aa71f3546aa1"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Mar 23 15:02:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:40 2012 -0700"
      },
      "message": "ptrace: simplify PTRACE_foo constants and PTRACE_SETOPTIONS code\n\nExchange PT_TRACESYSGOOD and PT_PTRACE_CAP bit positions, which makes\nPT_option bits contiguous and therefore makes code in\nptrace_setoptions() much simpler.\n\nEvery PTRACE_O_TRACEevent is defined to (1 \u003c\u003c PTRACE_EVENT_event)\ninstead of using explicit numeric constants, to ensure we don\u0027t mess up\nrelationship between bit positions and event ids.\n\nPT_EVENT_FLAG_SHIFT was not particularly useful, PT_OPT_FLAG_SHIFT with\nvalue of PT_EVENT_FLAG_SHIFT-1 is easier to use.\n\nPT_TRACE_MASK constant is nuked, the only its use is replaced by\n(PTRACE_O_MASK \u003c\u003c PT_OPT_FLAG_SHIFT).\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@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": "b1845ff53f1a9eadba005ae53dfe60ab00dfe83b",
      "tree": "1c38877029c0ffe0844cbbe7b0e022e8f79b6235",
      "parents": [
        "15cab952139404d0e593cb1aaab0a3547ac0f95b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:40 2012 -0700"
      },
      "message": "ptrace: don\u0027t send SIGTRAP on exec if SEIZED\n\nptrace_event(PTRACE_EVENT_EXEC) sends SIGTRAP if PT_TRACE_EXEC is not\nset.  This is because this SIGTRAP predates PTRACE_O_TRACEEXEC option,\nwe do not need/want this with PT_SEIZED which can set the options during\nattach.\n\nSuggested-by: Pedro Alves \u003cpalves@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Evans \u003cscarybeasts@gmail.com\u003e\nCc: Indan Zupancic \u003cindan@nul.nu\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@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": "15cab952139404d0e593cb1aaab0a3547ac0f95b",
      "tree": "0b8554db2eadd6782774e4448e43fb40dcc11c35",
      "parents": [
        "d533df07c20c7b59b0559a3ac38fb45c81ffd6bb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:40 2012 -0700"
      },
      "message": "ptrace: the killed tracee should not enter the syscall\n\nAnother old/known problem.  If the tracee is killed after it reports\nsyscall_entry, it starts the syscall and debugger can\u0027t control this.\nThis confuses the users and this creates the security problems for\nptrace jailers.\n\nChange tracehook_report_syscall_entry() to return non-zero if killed,\nthis instructs syscall_trace_enter() to abort the syscall.\n\nReported-by: Chris Evans \u003cscarybeasts@gmail.com\u003e\nTested-by: Indan Zupancic \u003cindan@nul.nu\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@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": "626cf236608505d376e4799adb4f7eb00a8594af",
      "tree": "eb0421fec1a7fed05cd9ea785bd18b5f40c80971",
      "parents": [
        "5cde7656d0dd222170eb0250bd1f70c9018fd438"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Mar 23 15:02:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "poll: add poll_requested_events() and poll_does_not_wait() functions\n\nIn some cases the poll() implementation in a driver has to do different\nthings depending on the events the caller wants to poll for.  An example\nis when a driver needs to start a DMA engine if the caller polls for\nPOLLIN, but doesn\u0027t want to do that if POLLIN is not requested but instead\nonly POLLOUT or POLLPRI is requested.  This is something that can happen\nin the video4linux subsystem among others.\n\nUnfortunately, the current epoll/poll/select implementation doesn\u0027t\nprovide that information reliably.  The poll_table_struct does have it: it\nhas a key field with the event mask.  But once a poll() call matches one\nor more bits of that mask any following poll() calls are passed a NULL\npoll_table pointer.\n\nAlso, the eventpoll implementation always left the key field at ~0 instead\nof using the requested events mask.\n\nThis was changed in eventpoll.c so the key field now contains the actual\nevents that should be polled for as set by the caller.\n\nThe solution to the NULL poll_table pointer is to set the qproc field to\nNULL in poll_table once poll() matches the events, not the poll_table\npointer itself.  That way drivers can obtain the mask through a new\npoll_requested_events inline.\n\nThe poll_table_struct can still be NULL since some kernel code calls it\ninternally (netfs_state_poll() in ./drivers/staging/pohmelfs/netfs.h).  In\nthat case poll_requested_events() returns ~0 (i.e.  all events).\n\nVery rarely drivers might want to know whether poll_wait will actually\nwait.  If another earlier file descriptor in the set already matched the\nevents the caller wanted to wait for, then the kernel will return from the\nselect() call without waiting.  This might be useful information in order\nto avoid doing expensive work.\n\nA new helper function poll_does_not_wait() is added that drivers can use\nto detect this situation.  This is now used in sock_poll_wait() in\ninclude/net/sock.h.  This was the only place in the kernel that needed\nthis information.\n\nDrivers should no longer access any of the poll_table internals, but use\nthe poll_requested_events() and poll_does_not_wait() access functions\ninstead.  In order to enforce that the poll_table fields are now prepended\nwith an underscore and a comment was added warning against using them\ndirectly.\n\nThis required a change in unix_dgram_poll() in unix/af_unix.c which used\nthe key field to get the requested events.  It\u0027s been replaced by a call\nto poll_requested_events().\n\nFor qproc it was especially important to change its name since the\nbehavior of that field changes with this patch since this function pointer\ncan now be NULL when that wasn\u0027t possible in the past.\n\nAny driver accessing the qproc or key fields directly will now fail to compile.\n\nSome notes regarding the correctness of this patch: the driver\u0027s poll()\nfunction is called with a \u0027struct poll_table_struct *wait\u0027 argument.  This\npointer may or may not be NULL, drivers can never rely on it being one or\nthe other as that depends on whether or not an earlier file descriptor in\nthe select()\u0027s fdset matched the requested events.\n\nThere are only three things a driver can do with the wait argument:\n\n1) obtain the key field:\n\n\tevents \u003d wait ? wait-\u003ekey : ~0;\n\n   This will still work although it should be replaced with the new\n   poll_requested_events() function (which does exactly the same).\n   This will now even work better, since wait is no longer set to NULL\n   unnecessarily.\n\n2) use the qproc callback. This could be deadly since qproc can now be\n   NULL. Renaming qproc should prevent this from happening. There are no\n   kernel drivers that actually access this callback directly, BTW.\n\n3) test whether wait \u003d\u003d NULL to determine whether poll would return without\n   waiting. This is no longer sufficient as the correct test is now\n   wait \u003d\u003d NULL || wait-\u003e_qproc \u003d\u003d NULL.\n\n   However, the worst that can happen here is a slight performance hit in\n   the case where wait !\u003d NULL and wait-\u003e_qproc \u003d\u003d NULL. In that case the\n   driver will assume that poll_wait() will actually add the fd to the set\n   of waiting file descriptors. Of course, poll_wait() will not do that\n   since it tests for wait-\u003e_qproc. This will not break anything, though.\n\n   There is only one place in the whole kernel where this happens\n   (sock_poll_wait() in include/net/sock.h) and that code will be replaced\n   by a call to poll_does_not_wait() in the next patch.\n\n   Note that even if wait-\u003e_qproc !\u003d NULL drivers cannot rely on poll_wait()\n   actually waiting. The next file descriptor from the set might match the\n   event mask and thus any possible waits will never happen.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nReviewed-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nReviewed-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@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": "46c5801eaf86e83cb3a4142ad35188db5011fff0",
      "tree": "2b8a8f7709aa7dadafdf13f823488cf51e2e2fed",
      "parents": [
        "78dff4189708d07cdcaf7bfd1b04ebe78ac9c041"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Mar 23 15:02:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "crc32: bolt on crc32c\n\nReuse the existing crc32 code to stamp out a crc32c implementation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6061d949dd984c762ee272a88e77699fa675d1c8",
      "tree": "2e19eecd34a716fc5ed9fa3f18a7db0a3edf6f5b",
      "parents": [
        "97e834c5040b85e133d8d922111a62b2b853a406"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Mar 23 15:02:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:36 2012 -0700"
      },
      "message": "include/ and checkpatch: prefer __scanf to __attribute__((format(scanf,...)\n\nIt\u0027s equivalent to __printf, so prefer __scanf.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb982009d3850759d3f4a4c853f9c456c48b6c2d",
      "tree": "9bd6ed1979f86e5531f83240720cf0119b33a4e0",
      "parents": [
        "e13d97865942e9dcf4fdd39d9fb9c5ae31e7c3d1"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Fri Mar 23 15:02:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:35 2012 -0700"
      },
      "message": "leds-lm3530: support pwm input mode\n\n* add \u0027struct lm3530_pwm_data\u0027 in the platform data\n  The pwm data is the platform specific functions which generate the pwm.\n  The pwm data is only valid when brightness is pwm input mode.\n  Functions should be implemented by the pwm driver.\n  pwm_set_intensity() : set duty of pwm.\n  pwm_get_intensity() : get current the brightness.\n\n* brightness control by pwm\n  If the control mode is pwm, then brightness is changed by the duty of\n  pwm\u003d.  So pwm platform function should be called in lm3530_brightness_set().\n\n* do not update brightness register when pwm input mode\n  In pwm input mode, brightness register is not used.\n  If any value is updated in this register, then the led will be off.\n\n* when input mode is changed, set duty of pwm to 0 if unnecessary.\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "011af7bc7cd188a0310e2d26cdc2cc5d90148b0c",
      "tree": "3f3aa08b555bdcb4c4dfe6e8d4bec9c4205ccd79",
      "parents": [
        "3b49aacd0e56d5bf1b511f6554f17cd65eb8da64"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Fri Mar 23 15:02:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:34 2012 -0700"
      },
      "message": "drivers/leds/leds-lp5521.c: support led pattern data\n\nThe lp5521 has autonomous operation mode without external control.\nUsing lp5521_platform_data, various led patterns can be configurable.\nFor supporting this feature, new functions and device attribute are\nadded.\n\nStructure of lp5521_led_pattern: 3 channels are supported - red, green\nand blue.  Pattern(s) of each channel and numbers of pattern(s) are\ndefined in the pla\u003d tform data.  Pattern data are hexa codes which\ninclude pattern commands such like set pwm, wait, ramp up/down, branch\nand so on.\n\nPattern mode functions:\n * lp5521_clear_program_memory\n\tBefore running new led pattern, program memory should be cleared.\n * lp5521_write_program_memory\n\tPattern data updated in the program memory via the i2c.\n * lp5521_get_pattern\n\tGet pattern from predefined in the platform data.\n * lp5521_run_led_pattern\n\tStop current pattern or run new pattern.\n\tTransition time is required between different operation mode.\n\nDevice attribute - \u0027led_pattern\u0027: To load specific led pattern, new device\nattribute is added.\n\nWhen the lp5521 driver is unloaded, stop current led pattern mode.\n\nDocumentation updated : description about how to define the led patterns\nand example.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Arun MURTHY \u003carun.murthy@stericsson.com\u003e\nCc: Srinidhi Kasagar \u003csrinidhi.kasagar@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b49aacd0e56d5bf1b511f6554f17cd65eb8da64",
      "tree": "22da84acf260e760e68006afa03346342a518f84",
      "parents": [
        "5ae4e8a77dc82afcfe8460168ec0b94f4b79a54a"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Fri Mar 23 15:02:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:34 2012 -0700"
      },
      "message": "drivers/leds/leds-lp5521.c: add \u0027update_config\u0027 in the lp5521_platform_data\n\nThe value of CONFIG register(Addr 08h) is configurable.  For supporting\nthis feature, update_config is added in the platform data.  If\n\u0027update_config\u0027 is not defined, the default value is \u0027LP5521_PWRSAVE_EN |\nLP5521_CP_MODE_AUTO | LP5521_R_TO_BATT\u0027.\n\nTo define CONFIG register in the platform data, the bit definitions were\nmo\u003d ved to the header file.\n\nDocumentation updated : description about \u0027update_config\u0027 and example.\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Arun MURTHY \u003carun.murthy@stericsson.com\u003e\nCc: Srinidhi Kasagar \u003csrinidhi.kasagar@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ae4e8a77dc82afcfe8460168ec0b94f4b79a54a",
      "tree": "563eb3978832bff9e989b9cc7aa12b3da3f2fa20",
      "parents": [
        "c5bd2a712a0c7299b61b0e02404b1376f794d251"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Fri Mar 23 15:02:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:34 2012 -0700"
      },
      "message": "drivers/leds/leds-lp5521.c: add \u0027name\u0027 in the lp5521_led_config\n\nThe name of each led channel can be configurable.  For the compatibility,\nthe name is set to default value(xx:channelN) when \u0027name\u0027 is not defined.\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Arun MURTHY \u003carun.murthy@stericsson.com\u003e\nCc: Srinidhi Kasagar \u003csrinidhi.kasagar@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03f4a8226c2f9c14361f75848d1e93139bab90c4",
      "tree": "c8c225f2debf749286c178897eaf2f802e50b0ab",
      "parents": [
        "0a329d2d5a1dd75273597538cdc33512ee38855e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 23 15:02:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:34 2012 -0700"
      },
      "message": "bitops: introduce for_each_clear_bit()\n\nIntroduce for_each_clear_bit() and for_each_clear_bit_from().  They are\nsimilar to for_each_set_bit() and list_for_each_set_bit_from(), but they\niterate over all the cleared bits in a memory region.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Stefano Panella \u003cstefano.panella@csr.com\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nCc: Sergei Shtylyov \u003csshtylyov@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a329d2d5a1dd75273597538cdc33512ee38855e",
      "tree": "5e4b51863a0b05e8866615e2da1e123173a61220",
      "parents": [
        "307b1cd7ecd7f3dc5ce3d3860957f034f0abe4df"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 23 15:02:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:33 2012 -0700"
      },
      "message": "bitops: remove for_each_set_bit_cont()\n\nRemove for_each_set_bit_cont() after confirming that no one uses\nfor_each_set_bit_cont() anymore.\n\n[sfr@canb.auug.org.au: regmap: cope with bitops API change]\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "307b1cd7ecd7f3dc5ce3d3860957f034f0abe4df",
      "tree": "dfc8eb9a5dd7c4621a3a61058f25cabf82e327cd",
      "parents": [
        "2df5e12900d847af9113980d015939dde0d1b1d4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 23 15:02:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:33 2012 -0700"
      },
      "message": "bitops: rename for_each_set_bit_cont() in favor of analogous list.h function\n\nThis renames for_each_set_bit_cont() to for_each_set_bit_from() because\nit is analogous to list_for_each_entry_from() in list.h rather than\nlist_for_each_entry_continue().\n\nThis doesn\u0027t remove for_each_set_bit_cont() for now.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.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": "7be865ab8634d4ec2a6bdb9459b268cd60e832af",
      "tree": "d7b73134707935d0bf6a912fa96e6dfcef47676a",
      "parents": [
        "050ea48bbfc80b6aa81f8df0d9f25e6e47d96e98"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Fri Mar 23 15:02:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:33 2012 -0700"
      },
      "message": "backlight: new backlight driver for LP855x devices\n\nTHis driver supports TI LP8550/LP8551/LP8552/LP8553/LP8556 backlight\ndevices.\n\nThe brightness can be controlled by the I2C or PWM input.  The lp855x\ndriver provides both modes.  For the PWM control, pwm-specific functions\ncan be defined in the platform data.  And some information can be read\nvia the sysfs(lp855x device attributes).\n\nFor details, please refer to Documentation/backlight/lp855x-driver.txt.\n\n[axel.lin@gmail.com: add missing mutex_unlock in lp855x_read_byte() error path]\n[axel.lin@gmail.com: check platform data in lp855x_probe()]\n[axel.lin@gmail.com: small cleanups]\n[dan.carpenter@oracle.com: silence a compiler warning]\n[axel.lin@gmail.com: use id-\u003edriver_data to differentiate lp855x chips]\n[akpm@linux-foundation.org: simplify boolean return expression]\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebec18a6d3aa1e7d84aab16225e87fd25170ec2b",
      "tree": "fd329dcd5173c252fc7aed64cab9c2a51575dcec",
      "parents": [
        "953326cb60c1dff1bd3458d6468d16d75f2bcd61"
      ],
      "author": {
        "name": "Lennart Poettering",
        "email": "lennart@poettering.net",
        "time": "Fri Mar 23 15:01:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:32 2012 -0700"
      },
      "message": "prctl: add PR_{SET,GET}_CHILD_SUBREAPER to allow simple process supervision\n\nUserspace service managers/supervisors need to track their started\nservices.  Many services daemonize by double-forking and get implicitly\nre-parented to PID 1.  The service manager will no longer be able to\nreceive the SIGCHLD signals for them, and is no longer in charge of\nreaping the children with wait().  All information about the children is\nlost at the moment PID 1 cleans up the re-parented processes.\n\nWith this prctl, a service manager process can mark itself as a sort of\n\u0027sub-init\u0027, able to stay as the parent for all orphaned processes\ncreated by the started services.  All SIGCHLD signals will be delivered\nto the service manager.\n\nReceiving SIGCHLD and doing wait() is in cases of a service-manager much\npreferred over any possible asynchronous notification about specific\nPIDs, because the service manager has full access to the child process\ndata in /proc and the PID can not be re-used until the wait(), the\nservice-manager itself is in charge of, has happened.\n\nAs a side effect, the relevant parent PID information does not get lost\nby a double-fork, which results in a more elaborate process tree and\n\u0027ps\u0027 output:\n\nbefore:\n  # ps afx\n  253 ?        Ss     0:00 /bin/dbus-daemon --system --nofork\n  294 ?        Sl     0:00 /usr/libexec/polkit-1/polkitd\n  328 ?        S      0:00 /usr/sbin/modem-manager\n  608 ?        Sl     0:00 /usr/libexec/colord\n  658 ?        Sl     0:00 /usr/libexec/upowerd\n  819 ?        Sl     0:00 /usr/libexec/imsettings-daemon\n  916 ?        Sl     0:00 /usr/libexec/udisks-daemon\n  917 ?        S      0:00  \\_ udisks-daemon: not polling any devices\n\nafter:\n  # ps afx\n  294 ?        Ss     0:00 /bin/dbus-daemon --system --nofork\n  426 ?        Sl     0:00  \\_ /usr/libexec/polkit-1/polkitd\n  449 ?        S      0:00  \\_ /usr/sbin/modem-manager\n  635 ?        Sl     0:00  \\_ /usr/libexec/colord\n  705 ?        Sl     0:00  \\_ /usr/libexec/upowerd\n  959 ?        Sl     0:00  \\_ /usr/libexec/udisks-daemon\n  960 ?        S      0:00  |   \\_ udisks-daemon: not polling any devices\n  977 ?        Sl     0:00  \\_ /usr/libexec/packagekitd\n\nThis prctl is orthogonal to PID namespaces.  PID namespaces are isolated\nfrom each other, while a service management process usually requires the\nservices to live in the same namespace, to be able to talk to each\nother.\n\nUsers of this will be the systemd per-user instance, which provides\ninit-like functionality for the user\u0027s login session and D-Bus, which\nactivates bus services on-demand.  Both need init-like capabilities to\nbe able to properly keep track of the services they start.\n\nMany thanks to Oleg for several rounds of review and insights.\n\n[akpm@linux-foundation.org: fix comment layout and spelling]\n[akpm@linux-foundation.org: add lengthy code comment from Oleg]\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Lennart Poettering \u003clennart@poettering.net\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: 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": "7ccaba5314caf3a2b1052edb3146ccc969b4d466",
      "tree": "b2d2c6a0c188794bf334b163bd89d827c84c1462",
      "parents": [
        "10db4e1e4e9a910a26b94045660e5ba7e7c71419"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Fri Mar 23 15:01:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "consolidate WARN_...ONCE() static variables\n\nDue to the alignment of following variables, these typically consume\nmore than just the single byte that \u0027bool\u0027 requires, and as there are a\nfew hundred instances, the cache pollution (not so much the waste of\nmemory) sums up.  Put these variables into their own section, outside of\nany half way frequently used memory range.\n\nDo the same also to the __warned variable of rcu_lockdep_assert().\n(Don\u0027t, however, include the ones used by printk_once() and alike, as\nthey can potentially be hot.)\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10db4e1e4e9a910a26b94045660e5ba7e7c71419",
      "tree": "cd28bea676da081ceb76984867ecfb5559bbe70a",
      "parents": [
        "d314d74c695f967e10598467a326f41c78ed1e20"
      ],
      "author": {
        "name": "Bobby Powers",
        "email": "bobbypowers@gmail.com",
        "time": "Fri Mar 23 15:01:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "headers: include linux/types.h where appropriate\n\nThis addresses some header check warnings.  DRM headers which include\n\"drm.h\" have been excluded, as they indirectly include types.h.\n\nSigned-off-by: Bobby Powers \u003cbobbypowers@gmail.com\u003e\nCc: Chris Ball \u003ccjb@laptop.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d314d74c695f967e10598467a326f41c78ed1e20",
      "tree": "71fabe9cf1f2b99f16f7f9cc3f809955038a2d0c",
      "parents": [
        "b502bd1152472dc1b98c60434f23c23b280c7b94"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Fri Mar 23 15:01:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "nmi watchdog: do not use cpp symbol in Kconfig\n\nARCH_HAS_NMI_WATCHDOG is a macro defined by arch, but config\nHARDLOCKUP_DETECTOR depends on it.  This is wrong, ARCH_HAS_NMI_WATCHDOG\nhas to be a Kconfig config, and arch\u0027s need it should select it\nexplicitly.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b502bd1152472dc1b98c60434f23c23b280c7b94",
      "tree": "4de5d63e00a348108c436ebfd0639b57295e4bfe",
      "parents": [
        "d982d5955e9033015a2cc119aa7c0a878e275964"
      ],
      "author": {
        "name": "Muthu Kumar",
        "email": "muthu.lkml@gmail.com",
        "time": "Fri Mar 23 15:01:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "magic.h: move some FS magic numbers into magic.h\n\n- Move open-coded filesystem magic numbers into magic.h\n\n- Rearrange magic.h so that the filesystem-related constants are grouped\n  together.\n\nSigned-off-by: Muthukumar R \u003cmuthur@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": "e317234975cb7463b8ca21a93bb6862d9dcf113f",
      "tree": "4446fa3a21364f3cba23a22aa2a94027f169d8df",
      "parents": [
        "f37ab0fba271e43edab0e3ae9fe644fcda455402",
        "7483d45f0aee3afc0646d185cabd4af9f6cab58c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:39:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:39:09 2012 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\nPull media updates from Mauro Carvalho Chehab:\n - V4L2 API additions to better support JPEG compression control\n - media API additions to properly support MPEG decoders\n - V4L2 API additions for image crop/scaling\n - a few other V4L2 API DocBook fixes/improvements\n - two new DVB frontend drivers: m88rs2000 and rtl2830\n - two new DVB drivers: az6007 and rtl28xxu\n - a framework for ISA drivers, that removed lots of common code found\n   at the ISA radio drivers\n - a new FM transmitter driver (radio-keene)\n - a GPIO-based IR receiver driver\n - a new sensor driver: mt9m032\n - some new video drivers: adv7183, blackfin, mx2_emmaprp, sii9234_drv,\n   vs6624\n - several new board additions, driver fixes, improvements and cleanups.\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (295 commits)\n  [media] update CARDLIST.em28xx\n  [media] partially reverts changeset fa5527c\n  [media] stb0899: fix the limits for signal strength values\n  [media] em28xx: support for 2304:0242 PCTV QuatroStick (510e)\n  [media] em28xx: support for 2013:0251 PCTV QuatroStick nano (520e)\n  [media] -EINVAL -\u003e -ENOTTY\n  [media] gspca - sn9c20x: Cleanup source\n  [media] gspca - sn9c20x: Simplify register write for capture start/stop\n  [media] gspca - sn9c20x: Add automatic JPEG compression mechanism\n  [media] gspca - sn9c20x: Greater delay in case of sensor no response\n  [media] gspca - sn9c20x: Optimize the code of write sequences\n  [media] gspca - sn9c20x: Add the JPEG compression quality control\n  [media] gspca - sn9c20x: Add a delay after Omnivision sensor reset\n  [media] gspca - sn9c20x: Propagate USB errors to higher level\n  [media] gspca - sn9c20x: Use the new video control mechanism\n  [media] gspca - sn9c20x: Fix loss of frame start\n  [media] gspca - zc3xx: Lack of register 08 value for sensor cs2102k\n  [media] gspca - ov534_9: Add brightness to OmniVision 5621 sensor\n  [media] gspca - zc3xx: Add V4L2_CID_JPEG_COMPRESSION_QUALITY control support\n  [media] pvrusb2: fix 7MHz \u0026 8MHz DVB-T tuner support for HVR1900 rev D1F5\n  ...\n"
    },
    {
      "commit": "0b0c9d3a5872e8a02a071c6f0775ee6bf00a1206",
      "tree": "12f6cc1eedffd62e4dfa3b0d41b2c643462426db",
      "parents": [
        "fc2bb8d1cde1296d210a0f1ff9ee979a447d0a34",
        "7de473066f1512e52ea806e3c9698e5ea325b26c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:15:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:15:07 2012 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU updates from Joerg Roedel:\n \"The IOMMU updates for this round are not very large patch-wise.  But\n  they contain two new IOMMU drivers for the ARM Tegra 2 and 3\n  platforms.  Besides that there are also a few patches for the AMD\n  IOMMU which prepare the driver for adding intr-remapping support and a\n  couple of fixes.\"\n\n* tag \u0027iommu-updates-v3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:\n  iommu/amd: Fix section mismatch\n  iommu/amd: Move interrupt setup code into seperate function\n  iommu/amd: Make sure IOMMU interrupts are re-enabled on resume\n  iommu/amd: Fix section warning for prealloc_protection_domains\n  iommu/amd: Don\u0027t initialize IOMMUv2 resources when not required\n  iommu/amd: Update git-tree in MAINTAINERS\n  iommu/tegra-gart: fix spin_unlock in map failure path\n  iommu/amd: Fix double free of mem-region in error-path\n  iommu/amd: Split amd_iommu_init function\n  ARM: IOMMU: Tegra30: Add iommu_ops for SMMU driver\n  ARM: IOMMU: Tegra20: Add iommu_ops for GART driver\n"
    },
    {
      "commit": "fc2bb8d1cde1296d210a0f1ff9ee979a447d0a34",
      "tree": "725696adebdc70e1b4e0ce8537da25eb5f2bf564",
      "parents": [
        "475c77edf826333aa61625f49d6a2bec26ecb5a6",
        "bbceeee82ef55c11db0161f4078edd79290e3bcf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:12:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:12:04 2012 -0700"
      },
      "message": "Merge branch \u0027i2c-embedded/for-3.4\u0027 of git://git.pengutronix.de/git/wsa/linux\n\nPull i2c embedded updates from Wolfram Sang:\n \"Nothing special from i2c-embedded for this merge window.  Two new\n  drivers, minor feature additions, bugfixes, cleanups.\n\n  All patches have been in linux-next for some time, too.\"\n\n* \u0027i2c-embedded/for-3.4\u0027 of git://git.pengutronix.de/git/wsa/linux:\n  i2c-eg20t: Remove write-only variables\n  i2c-eg20t: Rework pch_i2c_wait_for_bus_idle to reduce wait time\n  i2c-s3c2410: Add stub runtime power management\n  i2c-s3c2410: Convert to devm_kzalloc()\n  i2c: add CSR SiRFprimaII on-chip I2C controllers driver\n  i2c: tegra: Remove unnecessary write to INT_STATUS\n  i2c: imx: fix imx driver to work though signal is pending\n  i2c: designware: dw_i2c_init_driver as subsys initcall\n  misc: at24: describe platform_data with kernel_doc\n  i2c: Move I2C_EG20T option to the right place.\n  i2c: Support for Netlogic XLR/XLS I2C controller.\n  i2c: mpc: Add support for SMBUS_READ_BLOCK_DATA\n  i2c: versatile: Add Device Tree support\n"
    },
    {
      "commit": "475c77edf826333aa61625f49d6a2bec26ecb5a6",
      "tree": "8e1c6c319e347cd3c649fdb0b3ab45971c6b19e7",
      "parents": [
        "934e18b5cb4531cc6e81865bf54115cfd21d1ac6",
        "1488d5158dcd612fcdaf6b642451b026ee8bbcbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\nPull PCI changes (including maintainer change) from Jesse Barnes:\n \"This pull has some good cleanups from Bjorn and Yinghai, as well as\n  some more code from Yinghai to better handle resource re-allocation\n  when enabled.\n\n  There\u0027s also a new initcall_debug feature from Arjan which will print\n  out quirk timing information to help identify slow quirks for fixing\n  or refinement (Yinghai sent in a few patches to do just that once the\n  new debug code landed).\n\n  Beyond that, I\u0027m handing off PCI maintainership to Bjorn Helgaas.\n  He\u0027s been a core PCI and Linux contributor for some time now, and has\n  kindly volunteered to take over.  I just don\u0027t feel I have the time\n  for PCI review and work that it deserves lately (I\u0027ve taken on some\n  other projects), and haven\u0027t been as responsive lately as I\u0027d like, so\n  I approached Bjorn asking if he\u0027d like to manage things.  He\u0027s going\n  to give it a try, and I\u0027m confident he\u0027ll do at least as well as I\n  have in keeping the tree managed, patches flowing, and keeping things\n  stable.\"\n\nFix up some fairly trivial conflicts due to other cleanups (mips device\nresource fixup cleanups clashing with list handling cleanup, ppc iseries\nremoval clashing with pci_probe_only cleanup etc)\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (112 commits)\n  PCI: Bjorn gets PCI hotplug too\n  PCI: hand PCI maintenance over to Bjorn Helgaas\n  unicore32/PCI: move \u003casm-generic/pci-bridge.h\u003e include to asm/pci.h\n  sparc/PCI: convert devtree and arch-probed bus addresses to resource\n  powerpc/PCI: allow reallocation on PA Semi\n  powerpc/PCI: convert devtree bus addresses to resource\n  powerpc/PCI: compute I/O space bus-to-resource offset consistently\n  arm/PCI: don\u0027t export pci_flags\n  PCI: fix bridge I/O window bus-to-resource conversion\n  x86/PCI: add spinlock held check to \u0027pcibios_fwaddrmap_lookup()\u0027\n  PCI / PCIe: Introduce command line option to disable ARI\n  PCI: make acpihp use __pci_remove_bus_device instead\n  PCI: export __pci_remove_bus_device\n  PCI: Rename pci_remove_behind_bridge to pci_stop_and_remove_behind_bridge\n  PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device\n  PCI: print out PCI device info along with duration\n  PCI: Move \"pci reassigndev resource alignment\" out of quirks.c\n  PCI: Use class for quirk for usb host controller fixup\n  PCI: Use class for quirk for ti816x class fixup\n  PCI: Use class for quirk for intel e100 interrupt fixup\n  ...\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "437538267b672f9320833907f1b5acbb2605f4be",
      "tree": "d10173b35a5b86bc037bb2ece1b406d5575a2094",
      "parents": [
        "9586c959bfc917695893bef0102433a7d0675691",
        "6bff98b455cf3e666fd0e3d0d908eba874de0eee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:43:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:43:40 2012 -0700"
      },
      "message": "Merge tag \u0027fbdev-updates-for-3.4\u0027 of git://github.com/schandinat/linux-2.6\n\nPull fbdev updates for 3.4 from Florian Tobias Schandinat:\n - drivers for Samsung Exynos MIPI DSI and display port\n - i740fb to support those old Intel chips\n - large updates to OMAP, viafb and sh_mobile_lcdcfb\n - some updates to s3c-fb and udlfb, few patches to others\n\nFix up conflicts in drivers/video/udlfb.c due to Key Sievers\u0027 fix making\nit in twice.\n\n* tag \u0027fbdev-updates-for-3.4\u0027 of git://github.com/schandinat/linux-2.6: (156 commits)\n  Revert \"video:uvesafb: Fix oops that uvesafb try to execute NX-protected page\"\n  OMAPDSS: register dss drivers in module init\n  video: pxafb: add clk_prepare/clk_unprepare calls\n  fbdev: bfin_adv7393fb: Drop needless include\n  fbdev: sh_mipi_dsi: add extra phyctrl for sh_mipi_dsi_info\n  fbdev: remove dependency of FB_SH_MOBILE_MERAM from FB_SH_MOBILE_LCDC\n  Revert \"MAINTAINERS: add entry for exynos mipi display drivers\"\n  fbdev: da8xx: add support for SP10Q010 display\n  fbdev: da8xx:: fix reporting of the display timing info\n  drivers/video/pvr2fb.c: ensure arguments to request_irq and free_irq are compatible\n  OMAPDSS: APPLY: fix clearing shadow dirty flag with manual update\n  fbdev: sh_mobile_meram: Implement system suspend/resume\n  fbdev: sh_mobile_meram: Remove unneeded sanity checks\n  fbdev: sh_mobile_meram: Don\u0027t perform update in register operation\n  arm: mach-shmobile: Constify sh_mobile_meram_cfg structures\n  fbdev: sh_mobile_lcdc: Don\u0027t store copy of platform data\n  fbdev: sh_mobile_meram: Remove unused sh_mobile_meram_icb_cfg fields\n  arm: mach-shmobile: Don\u0027t set MERAM ICB numbers in platform data\n  fbdev: sh_mobile_meram: Allocate ICBs automatically\n  fbdev: sh_mobile_meram: Use genalloc to manage MERAM allocation\n  ...\n"
    },
    {
      "commit": "9586c959bfc917695893bef0102433a7d0675691",
      "tree": "c8b89e40b7a04c3150e50785e7c48b67df360c83",
      "parents": [
        "34699403e9916060af8ae23f5e4705a6c078e79d",
        "addfd8a09e1f434a73b3d87d36ef050c73511d2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:33:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:33:14 2012 -0700"
      },
      "message": "Merge tag \u0027regmap-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap\n\nPull regmap updates from Mark Brown:\n \"Things are really quieting down with the regmap API, while we\u0027re still\n  seeing a trickle of new features coming in they\u0027re getting much\n  smaller than they were.  It\u0027s also nice to have some features which\n  support other subsystems building infrastructure on top of regmap.\n  Highlights include:\n\n  - Support for padding between the register and the value when\n    interacting with the device, sometimes needed for fast interfaces.\n  - Support for applying register updates to the device when restoring\n    the register state.  This is intended to be used to apply updates\n    supplied by manufacturers for tuning the performance of the device\n    (many of which are to undocumented registers which aren\u0027t otherwise\n    covered).\n  - Support for multi-register operations on cached registers.\n  - Support for syncing only part of the register cache.\n  - Stubs and parameter query functions intended to make it easier for\n    other subsystems to build infrastructure on top of the regmap API.\n\n  plus a few driver updates making use of the new features which it was\n  easier to merge via this tree.\"\n\n* tag \u0027regmap-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (41 commits)\n  regmap: Fix future missing prototype of devres_alloc() and friends\n  regmap: Rejig struct declarations for stubbed API\n  regmap: Fix rbtree block base in sync\n  regcache: Make sure we sync register 0 in an rbtree cache\n  regmap: delete unused module.h from drivers/base/regmap files\n  regmap: Add stub for regcache_sync_region()\n  mfd: Improve performance of later WM1811 revisions\n  regmap: Fix x86_64 breakage\n  regmap: Allow drivers to sync only part of the register cache\n  regmap: Supply ranges to the sync operations\n  regmap: Add tracepoints for cache only and cache bypass\n  regmap: Mark the cache as clean after a successful sync\n  regmap: Remove default cache sync implementation\n  regmap: Skip hardware defaults for LZO caches\n  regmap: Expose the driver name in debugfs\n  mfd: wm8400: Convert to devm_regmap_init_i2c()\n  mfd: wm831x: Convert to devm_regmap_init()\n  mfd: wm8994: Convert to devm_regmap_init()\n  mfd/ASoC: Convert WM8994 driver to use regmap patches\n  mfd: Add __devinit and __devexit annotations in wm8994\n  ...\n"
    },
    {
      "commit": "34699403e9916060af8ae23f5e4705a6c078e79d",
      "tree": "e149ca6354171caf61132d80508ad878b00878c9",
      "parents": [
        "7fc86a7908a4e9eb2da4b6498f86193d113842d3",
        "d1bbd20972936b9b178fda3eb1ec417cb27fdc01"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:31:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:31:15 2012 -0700"
      },
      "message": "Merge tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394\n\nPull IEEE 1394 (FireWire) subsystem updates post v3.3 from Stefan Richter:\n\n - Some SBP-2 initiator fixes, side product from ongoing work on a target.\n\n - Reintroduction of an isochronous I/O feature of the older ieee1394 driver\n   stack (flush buffer completions); it was evidently rarely used but not\n   actually unused.  Matching libraw1394 code is already available.\n\n - Be sure to prefix all kernel log messages with device name or card name,\n   and other logging related cleanups.\n\n - Misc other small cleanups, among them a small API change that affects\n   sound/firewire/ too. Clemens Ladisch is aware of it.\n\n* tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (26 commits)\n  firewire: allow explicit flushing of iso packet completions\n  firewire: prevent dropping of completed iso packet header data\n  firewire: ohci: factor out iso completion flushing code\n  firewire: ohci: simplify iso header pointer arithmetic\n  firewire: ohci: optimize control bit checks\n  firewire: ohci: remove unused excess_bytes field\n  firewire: ohci: copy_iso_headers(): make comment match the code\n  firewire: cdev: fix IR multichannel event documentation\n  firewire: ohci: fix too-early completion of IR multichannel buffers\n  firewire: ohci: move runtime debug facility out of #ifdef\n  firewire: tone down some diagnostic log messages\n  firewire: sbp2: replace a GFP_ATOMIC allocation\n  firewire: sbp2: Fix SCSI sense data mangling\n  firewire: sbp2: Ignore SBP-2 targets on the local node\n  firewire: sbp2: Take into account Unit_Unique_ID\n  firewire: nosy: Use the macro DMA_BIT_MASK().\n  firewire: core: convert AR-req handler lock from _irqsave to _bh\n  firewire: core: fix race at address_handler unregistration\n  firewire: core: remove obsolete comment\n  firewire: core: prefix log messages with card name\n  ...\n"
    },
    {
      "commit": "7fc86a7908a4e9eb2da4b6498f86193d113842d3",
      "tree": "c1b2faab48d2a6003c8e8efae5f356a4e792ce0a",
      "parents": [
        "90597b6cfc1fc9926a4d54f09bbf5b3254b1b028",
        "51dddfe839a0ebcb5ff61a779e3f2768714f9957"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:25:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:25:50 2012 -0700"
      },
      "message": "Merge tag \u0027pinctrl-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl\n\nPull pinctrl updates for v3.4 from Linus Walleij (*):\n - Switches the PXA 168, 910 and MMP over to use pinctrl\n - Locking revamped\n - Massive refactorings...\n - Reform the driver API to use multiple states\n - Support pin config in the mapping tables\n - Pinctrl drivers for the nVidia Tegra series\n - Generic pin config support lib for simple pin controllers\n - Implement pin config for the U300\n\n* tag \u0027pinctrl-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits)\n  ARM: u300: configure some pins as an example\n  pinctrl: support pinconfig on the U300\n  pinctrl/coh901: use generic pinconf enums and parameters\n  pinctrl: introduce generic pin config\n  pinctrl: fix error path in pinconf_map_to_setting()\n  pinctrl: allow concurrent gpio and mux function ownership of pins\n  pinctrl: forward-declare struct device\n  pinctrl: split pincontrol states into its own header\n  pinctrl: include machine header to core.h\n  ARM: tegra: Select PINCTRL Kconfig variables\n  pinctrl: add a driver for NVIDIA Tegra\n  pinctrl: Show selected function and group in pinmux-pins debugfs\n  pinctrl: enhance mapping table to support pin config operations\n  pinctrl: API changes to support multiple states per device\n  pinctrl: add usecount to pins for muxing\n  pinctrl: refactor struct pinctrl handling in core.c vs pinmux.c\n  pinctrl: fix and simplify locking\n  pinctrl: fix the pin descriptor kerneldoc\n  pinctrl: assume map table entries can\u0027t have a NULL name field\n  pinctrl: introduce PINCTRL_STATE_DEFAULT, define hogs as that state\n  ...\n\n(*) What is it with all these Linuses these days? There\u0027s a Linus at\n    google too.  Some day I will get myself my own broadsword, and run\n    around screaming \"There can be only one\".\n\n    I used to be _special_ dammit. Snif.\n"
    },
    {
      "commit": "7bfe0e66d5da32961f0060fc5d96b739b1ed64b9",
      "tree": "6d5dcf77248b574bb0c50930bbf9030aafb99fce",
      "parents": [
        "6a76a6992341faab0ef31e7d97000e0cf336d0ba",
        "10ce3cc919f50c2043b41ca968b43c26a3672600"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:20:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:20:18 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input subsystem updates from Dmitry Torokhov:\n \"- we finally merged driver for USB version of Synaptics touchpads\n    (I guess most commonly found in IBM/Lenovo keyboard/touchpad combo);\n\n   - a bunch of new drivers for embedded platforms (Cypress\n     touchscreens, DA9052 OnKey, MAX8997-haptic, Ilitek ILI210x\n     touchscreens, TI touchscreen);\n\n   - input core allows clients to specify desired clock source for\n     timestamps on input events (EVIOCSCLOCKID ioctl);\n\n   - input core allows querying state of all MT slots for given event\n     code via EVIOCGMTSLOTS ioctl;\n\n   - various driver fixes and improvements.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)\n  Input: ili210x - add support for Ilitek ILI210x based touchscreens\n  Input: altera_ps2 - use of_match_ptr()\n  Input: synaptics_usb - switch to module_usb_driver()\n  Input: convert I2C drivers to use module_i2c_driver()\n  Input: convert SPI drivers to use module_spi_driver()\n  Input: omap4-keypad - move platform_data to \u003clinux/platform_data\u003e\n  Input: kxtj9 - who_am_i check value and initial data rate fixes\n  Input: add driver support for MAX8997-haptic\n  Input: tegra-kbc - revise device tree support\n  Input: of_keymap - add device tree bindings for simple key matrices\n  Input: wacom - fix physical size calculation for 3rd-gen Bamboo\n  Input: twl4030-vibra - really switch from #if to #ifdef\n  Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible\n  Input: max8925_onkey - avoid accessing input device too early\n  Input: max8925_onkey - allow to be used as a wakeup source\n  Input: atmel-wm97xx - convert to dev_pm_ops\n  Input: atmel-wm97xx - set driver owner\n  Input: add cyttsp touchscreen maintainer entry\n  Input: cyttsp - remove useless checks in cyttsp_probe()\n  Input: usbtouchscreen - add support for Data Modul EasyTouch TP 72037\n  ...\n"
    },
    {
      "commit": "d4c6fa73fe984e504d52f3d6bba291fd76fe49f7",
      "tree": "47842ddebb2a48cc1513b36fba18835678e2b94e",
      "parents": [
        "aab008db8063364dc3c8ccf4981c21124866b395",
        "4bc25af79ec54b79266148f8c1b84bb1e7ff2621"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:59:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:16:14 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull xen updates from Konrad Rzeszutek Wilk:\n \"which has three neat features:\n\n   - PV multiconsole support, so that there can be hvc1, hvc2, etc; This\n     can be used in HVM and in PV mode.\n\n   - P-state and C-state power management driver that uploads said power\n     management data to the hypervisor.  It also inhibits cpufreq\n     scaling drivers to load so that only the hypervisor can make power\n     management decisions - fixing a weird perf bug.\n\n     There is one thing in the Kconfig that you won\u0027t like: \"default y\n     if (X86_ACPI_CPUFREQ \u003d y || X86_POWERNOW_K8 \u003d y)\" (note, that it\n     all depends on CONFIG_XEN which depends on CONFIG_PARAVIRT which by\n     default is off).  I\u0027ve a fix to convert that boolean expression\n     into \"default m\" which I am going to post after the cpufreq git\n     pull - as the two patches to make this work depend on a fix in Dave\n     Jones\u0027s tree.\n\n   - Function Level Reset (FLR) support in the Xen PCI backend.\n\n  Fixes:\n\n   - Kconfig dependencies for Xen PV keyboard and video\n   - Compile warnings and constify fixes\n   - Change over to use percpu_xxx instead of this_cpu_xxx\"\n\nFix up trivial conflicts in drivers/tty/hvc/hvc_xen.c due to changes to\na removed commit.\n\n* tag \u0027stable/for-linus-3.4-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen kconfig: relax INPUT_XEN_KBDDEV_FRONTEND deps\n  xen/acpi-processor: C and P-state driver that uploads said data to hypervisor.\n  xen: constify all instances of \"struct attribute_group\"\n  xen/xenbus: ignore console/0\n  hvc_xen: introduce HVC_XEN_FRONTEND\n  hvc_xen: implement multiconsole support\n  hvc_xen: support PV on HVM consoles\n  xenbus: don\u0027t free other end details too early\n  xen/enlighten: Expose MWAIT and MWAIT_LEAF if hypervisor OKs it.\n  xen/setup/pm/acpi: Remove the call to boot_option_idle_override.\n  xenbus: address compiler warnings\n  xen: use this_cpu_xxx replace percpu_xxx funcs\n  xen/pciback: Support pci_reset_function, aka FLR or D3 support.\n  pci: Introduce __pci_reset_function_locked to be used when holding device_lock.\n  xen: Utilize the restore_msi_irqs hook.\n"
    },
    {
      "commit": "aab008db8063364dc3c8ccf4981c21124866b395",
      "tree": "72914203f4decb023efdaabd0301a62d742dfa8c",
      "parents": [
        "4f5b1affdda3e0c48cac674182f52004137b0ffc",
        "16c0cfa425b8e1488f7a1873bd112a7a099325f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm\n\nPull cleancache changes from Konrad Rzeszutek Wilk:\n \"This has some patches for the cleancache API that should have been\n  submitted a _long_ time ago.  They are basically cleanups:\n\n   - rename of flush to invalidate\n\n   - moving reporting of statistics into debugfs\n\n   - use __read_mostly as necessary.\n\n  Oh, and also the MAINTAINERS file change.  The files (except the\n  MAINTAINERS file) have been in #linux-next for months now.  The late\n  addition of MAINTAINERS file is a brain-fart on my side - didn\u0027t\n  realize I needed that just until I was typing this up - and I based\n  that patch on v3.3 - so the tree is on top of v3.3.\"\n\n* tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:\n  MAINTAINERS: Adding cleancache API to the list.\n  mm: cleancache: Use __read_mostly as appropiate.\n  mm: cleancache: report statistics via debugfs instead of sysfs.\n  mm: zcache/tmem/cleancache: s/flush/invalidate/\n  mm: cleancache: s/flush/invalidate/\n"
    },
    {
      "commit": "09fa30226130652af75152d9010c603c66d46f6e",
      "tree": "26dc4ba7fc66dc0c10e442d81595dd319eef4c75",
      "parents": [
        "be53bfdb8088e9d1924199cc1a96e113756b1075",
        "1b2681ba271c9f5bb66cb0d8ceeaa215fcd218d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:23:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:23:46 2012 -0700"
      },
      "message": "Merge branch \u0027drm-radeon-sitn-support\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull radeon southern islands / trinity support from Dave Airlie:\n \"This is support from AMD for their newest GPU and APUs.  The products\n  called RadeonHD 7xxx, and the Trinity APU series.\n\n  This did come in a bit late, due to some over-complicated AMD internal\n  review process, which from the outside seems unnecessary once the\n  company has decided it wants to support open source.  However as I\n  said previously I\u0027d rather not put the people who\u0027ve got this hw for 3\n  months now being forced to use fglrx on it if there is open code.\n\n  Its pretty well self contained and just plugs into the driver in\n  various places.\"\n\n* \u0027drm-radeon-sitn-support\u0027 of git://people.freedesktop.org/~airlied/linux: (48 commits)\n  drm/radeon/kms: update duallink checks for DCE6\n  drm/radeon/kms: add trinity pci ids\n  drm/radeon/kms: add radeon_asic struct for trinity\n  drm/radeon/kms: add support for ucode loading on trinity (v2)\n  drm/radeon/kms/vm: set vram base offset properly for TN\n  drm/radeon/kms: Update evergreen functions for trinity\n  drm/radeon/kms: cayman gpu init updates for trinity\n  drm/radeon/kms: Add checks for TN in the DP bridge code\n  drm/radeon/kms/DCE6.1: ss is not supported on the internal pplls\n  drm/radeon/kms: disable PPLL0 on DCE6.1 when not in use\n  drm/radeon/kms: Adjust pll picker for DCE6.1\n  drm/radeon/kms: DCE6.1 disp eng pll updates\n  drm/radeon/kms: DCE6.1 watermark updates for TN\n  drm/radeon/kms: no support for internal thermal sensor on TN yet\n  drm/radeon/kms: add trinity (TN) chip family\n  drm/radeon/kms: Add SI pci ids\n  drm/radeon: Update radeon_info_ioctl for SI. (v2)\n  drm/radeon/kms: add radeon_asic struct for SI\n  drm/radeon/kms: add support for compute rings in CS ioctl on SI\n  drm/radeon/kms: fill in startup/shutdown callbacks for SI\n  ...\n"
    },
    {
      "commit": "be53bfdb8088e9d1924199cc1a96e113756b1075",
      "tree": "8c65eb9d82ca4c0f11c17cfdc44d5263820b415b",
      "parents": [
        "b2094ef840697bc8ca5d17a83b7e30fad5f1e9fa",
        "5466c7b1683a23dbbcfb7ee4a71c4f23886001c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:08:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:08:22 2012 -0700"
      },
      "message": "Merge branch \u0027drm-next\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull drm main changes from Dave Airlie:\n \"This is the main drm pull request, I\u0027m probably going to send two more\n  smaller ones, will explain below.\n\n  This contains a patch that is also in the fbdev tree, but it should be\n  the same patch, it added an API for hot unplugging framebuffer\n  devices, and I need that API for a new driver.\n\n  It also contains some changes to the i2c tree which Jean has acked,\n  and one change to moorestown platform stuff in x86.\n\n  Highlights:\n   - new drivers: UDL driver for USB displaylink devices, kms only,\n     should support correct hotplug operations.\n   - core: i2c speedups + better hotplug support, EDID overriding via\n     firmware interface - allows user to load a firmware for a broken\n     monitor/kvm from userspace, it even has documentation for it.\n   - exynos: new HDMI audio + hdmi 1.4 + virtual output driver\n   - gma500: code cleanup\n   - radeon: cleanups, CS optimisations, streamout support and pageflip\n     fix\n   - nouveau: NVD9 displayport support + more reclocking work\n   - i915: re-enabling GMBUS, finish gpu patch (might help hibernation\n     who knows), missed irq fixes, stencil tiling fixes, interlaced\n     support, aliasesd PPGTT support for SNB/IVB, swizzling for SNB/IVB,\n     semaphore fixes\n\n  As well as the usual bunch of cleanups and fixes all over the place.\n\n  I\u0027ve got two things I\u0027d like to merge a bit later:\n\n   a) AMD support for all their new radeonhd 7000 series GPU and APUs.\n      AMD dropped this a bit late due to insane internal review\n      processes, (please AMD just follow Intel and let open source guys\n      ship stuff early) however I don\u0027t want to penalise people who own\n      this hardware (since its been on sale for 3-4 months and GPU hw\n      doesn\u0027t exactly have a lifetime in years) and consign them to\n      using closed drivers for longer than necessary.  The changes are\n      well contained and just plug into the driver new gpu functionality\n      so they should be fairly regression proof.  I just want to give\n      them a bit of a run on the hw AMD kindly sent me.\n\n   b) drm prime/dma-buf interface code.  This is just infrastructure\n      code to expose the dma-buf stuff to drm drivers and to userspace.\n      I\u0027m not planning on pushing any driver support in this cycle\n      (except maybe exynos), but I\u0027d like to get the infrastructure code\n      in so for the next cycle I can start getting the driver support\n      into the individual drivers.  We have started driver support for\n      i915, nouveau and udl along with I think exynos and omap in\n      staging.  However this code relies on the dma-buf tree being\n      pulled into your tree first since it needs the latest interfaces\n      from that tree.  I\u0027ll push to get that tree sent asap.\n\n  (oh and any warnings you see in i915 are gcc\u0027s fault from what anyone\n  can see).\"\n\nFix up trivial conflicts in arch/x86/platform/mrst/mrst.c due to the new\nmsic_thermal_platform_data() thermal function being added next to the\ntc35876x_platform_data() i2c device function..\n\n* \u0027drm-next\u0027 of git://people.freedesktop.org/~airlied/linux: (326 commits)\n  drm/i915: use DDC_ADDR instead of hard-coding it\n  drm/radeon: use DDC_ADDR instead of hard-coding it\n  drm: remove unneeded redefinition of DDC_ADDR\n  drm/exynos: added virtual display driver.\n  drm: allow loading an EDID as firmware to override broken monitor\n  drm/exynos: enable hdmi audio feature\n  drm/exynos: add default pixel format for plane\n  drm/exynos: cleanup exynos_hdmi.h\n  drm/exynos: add is_local member in exynos_drm_subdrv struct\n  drm/exynos: add subdrv open/close functions\n  drm/exynos: remove module of exynos drm subdrv\n  drm/exynos: release pending pageflip events when closed\n  drm/exynos: added new funtion to get/put dma address.\n  drm/exynos: update gem and buffer framework.\n  drm/exynos: added mode_fixup feature and code clean.\n  drm/exynos: add HDMI version 1.4 support\n  drm/exynos: remove exynos_mixer.h\n  gma500: Fix mmap frambuffer\n  drm/radeon: Drop radeon_gem_object_(un)pin.\n  drm/radeon: Restrict offset for legacy display engine.\n  ...\n"
    },
    {
      "commit": "b2094ef840697bc8ca5d17a83b7e30fad5f1e9fa",
      "tree": "64e5f7253b6a85b6d5d36f95c0d3c67c1798918d",
      "parents": [
        "424a6f6ef990b7e9f56f6627bfc6c46b493faeb4",
        "6681bc0deba495fad0d6fb349e40524abd1b1732"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:00:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 13:00:13 2012 -0700"
      },
      "message": "Merge tag \u0027sound-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull updates of sound stuff from Takashi Iwai:\n \"Here is the first big update chunk of sound stuff for 3.4-rc1.\n\n  In the common sound infrastructure, there are a few changes for\n  dynamic PCM support (used in ASoC) and a few clean-ups.  Majority of\n  changes are found, as usual, in HD-audio and ASoC.\n\n  Some highlights of HD-audio changes:\n\n   - All the long-standing static quirk codes for Realtek codec were\n     finally removed by fixing and extending the Realtek auto-parser.\n\n   - The mute-LED control is standardized over all HD-audio codec\n     drivers using the extended vmaster hook.\n\n   - The vmaster slave mixer elements are initialized to 0dB as default\n     so that the user won\u0027t be annoyed by the silent output after\n     updates, e.g.  due to the additions of new elements.\n\n   - Other many fix-ups for the misc HD-audio devices.\n\n  In the ASoC side, this is a very active release, including a quite a\n  few framework enhancements.  Some highlights:\n\n   - Support for widgets not associated with a CODEC, an important part\n     of the dynamic PCM framework.\n\n   - A library factoring out the common code shared by dmaengine based\n     DMA drivers contributed by Lars-Peter Clausen.  This will save a\n     lot of code and make it much easier to deploy enhancements to\n     dmaengine.\n\n   - Support for binary controls, used for providing runtime\n     configuration of algorithm coefficients.\n\n   - A new DAPM widget type for regulator supplies allowing drivers for\n     devices that can power down unused supplies while active to do\n     without any per-driver code.\n\n   - DAPM widgets for DAIs, initially giving a speed boost for playback\n     startup and shutdown and also the basis for CODEC\u003c-\u003eCODEC DAI link\n     support.\n\n   - Support for specifying the number of significant bits on audio\n     interfaces, useful for allowing applications to know how much\n     effort to put into generating data for a larger sample format.\n\n   - Conversion of the FSI driver used on some SH processors to\n     DMAEngine.\n\n   - Conversion of EP93xx drivers to DMAEngine.\n\n   - New CODEC drivers for Maxim MAX9768 and Wolfson Microelectronics\n     WM2200.\n\n   - Move audmux driver from arc/arm to sound/soc\n\n   - McBSP move from arch/ to sound/ and updates\n\n  Also, a few small updates and fixes for other drivers like au88x0,\n  ymfpci, USB 6fire, USB usx2yaudio are included.\"\n\n* tag \u0027sound-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (446 commits)\n  ASoC: wm8994: Provide VMID mode control and fix default sequence\n  ASoC: wm8994: Add missing break in resume\n  ASoC: wm_hubs: Don\u0027t actively manage LINEOUT_VMID_BUF\n  ASoC: pxa-ssp: atomically set stream active masks\n  ASoC: fsl: p1022ds: tell the WM8776 codec driver that it\u0027s the master\n  ASoC: Samsung: Added to support mono recording\n  ALSA: hda - Fix build with CONFIG_PM\u003dn\n  ALSA: au88x0 - Avoid possible Oops at unbinding\n  ALSA: usb-audio - Fix build error by consitification of rate list\n  ASoC: core: Fix obscure leak of runtime array\n  ALSA: pcm - Avoid GFP_ATOMIC in snd_pcm_link()\n  ALSA: pcm: Constify the list in snd_pcm_hw_constraint_list\n  ASoC: wm8996: Add 44.1kHz support\n  ALSA: hda - Fix build of patch_sigmatel.c without CONFIG_SND_HDA_POWER_SAVE\n  ASoC: mx27vis-aic32x4: Convert it to platform driver\n  ALSA: hda - fix printing of high HDMI sample rates\n  ALSA: ymfpci - Fix legacy registers on S3/S4 resume\n  ALSA: control - Fixe a trailing white space error\n  ALSA: hda - Add expose_enum_ctl flag to snd_hda_add_vmaster_hook()\n  ALSA: hda - Add \"Mute-LED Mode\" enum control\n  ...\n"
    },
    {
      "commit": "424a6f6ef990b7e9f56f6627bfc6c46b493faeb4",
      "tree": "0028356ed8003495fbbe1f716f359e3c8ebc35b6",
      "parents": [
        "1ab142d499294b844ecc81e8004db4ce029b0b61",
        "cd8df932d894f3128c884e3ae1b2b484540513db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:55:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:55:29 2012 -0700"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\nSCSI updates from James Bottomley:\n \"The update includes the usual assortment of driver updates (lpfc,\n  qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge\n  amount of infrastructure work in the SAS library and transport class\n  as well as an iSCSI update.  There\u0027s also a new SCSI based virtio\n  driver.\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)\n  [SCSI] qla4xxx: Update driver version to 5.02.00-k15\n  [SCSI] qla4xxx: trivial cleanup\n  [SCSI] qla4xxx: Fix sparse warning\n  [SCSI] qla4xxx: Add support for multiple session per host.\n  [SCSI] qla4xxx: Export CHAP index as sysfs attribute\n  [SCSI] scsi_transport: Export CHAP index as sysfs attribute\n  [SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry\n  [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry\n  [SCSI] pm8001: fix endian issue with code optimization.\n  [SCSI] pm8001: Fix possible racing condition.\n  [SCSI] pm8001: Fix bogus interrupt state flag issue.\n  [SCSI] ipr: update PCI ID definitions for new adapters\n  [SCSI] qla2xxx: handle default case in qla2x00_request_firmware()\n  [SCSI] isci: improvements in driver unloading routine\n  [SCSI] isci: improve phy event warnings\n  [SCSI] isci: debug, provide state-enum-to-string conversions\n  [SCSI] scsi_transport_sas: \u0027enable\u0027 phys on reset\n  [SCSI] libsas: don\u0027t recover end devices attached to disabled phys\n  [SCSI] libsas: fixup target_port_protocols for expanders that don\u0027t report sata\n  [SCSI] libsas: set attached device type and target protocols for local phys\n  ...\n"
    },
    {
      "commit": "1ab142d499294b844ecc81e8004db4ce029b0b61",
      "tree": "9db85a456d0cba3de8b9bd6671b1b52fa939770c",
      "parents": [
        "267d7b23dd62f6ec55e0fba777e456495c308fc7",
        "187e70a554e0f0717a65998bc9199945cbbd4692"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:38:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:38:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target updates from Nicholas Bellinger:\n \"This contains the usual set of updates and bugfixes to target-core +\n  existing fabric module code, along with a handful of the patches\n  destined for v3.3 stable.\n\n  It also contains the necessary target-core infrastructure pieces\n  required to run using tcm_qla2xxx.ko WWPNs with the new Qlogic Fibre\n  Channel fabric module currently queued in target-pending/for-next-merge,\n  and coming for round 2.\n\n  The highlights for this series include:\n\n   - Add target_submit_tmr() helper function for fabric task management\n     (andy)\n   - Convert tcm_fc to use target_submit_tmr() (andy)\n   - Replace target core various cmd flags with a transport state (hch)\n   - Convert loopback to use workqueue submission (hch)\n   - Convert target core to use array_zalloc for tpg_lun_list (joern)\n   - Convert target core to use array_zalloc for device_list (joern)\n   - Add target core support for TMR_ABORT_TASK (nab)\n   - Add target core se_sess-\u003esess_kref + get/put helpers (nab)\n   - Add target core se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n     (nab)\n   - Convert iscsi-target to use target_put_session + sess_kref (nab)\n   - Fix tcm_fc fc_exch memory leak in ft_send_resp_status (nab)\n   - Fix ib_srpt srpt_handle_cmd send_ioctx-\u003eioctx_kref leak on\n     exception (nab)\n   - Fix target core up handling of short INQUIRY buffers (roland)\n   - Untangle target-core front-end and back-end meanings of max_sectors\n     attribute (roland)\n   - Set loopback residual field for SCSI commands (roland)\n   - Fix target-core 16-bit target ports for SET TARGET PORT GROUPS\n     emulation (roland)\n\n  Thanks again to Andy, Christoph, Joern, Roland, and everyone who has\n  contributed this round!\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (64 commits)\n  ib_srpt: Fix srpt_handle_cmd send_ioctx-\u003eioctx_kref leak on exception\n  loopback: Fix transport_generic_allocate_tasks error handling\n  iscsi-target: remove improper externs\n  iscsi-target: Remove unused variables in iscsi_target_parameters.c\n  target: remove obvious warnings\n  target: Use array_zalloc for device_list\n  target: Use array_zalloc for tpg_lun_list\n  target: Fix sense code for unsupported SERVICE ACTION IN\n  target: Remove hack to make READ CAPACITY(10) lie if thin provisioning is enabled\n  target: Bump core version to v4.1.0-rc2-ml + fabric versions\n  tcm_fc: Fix fc_exch memory leak in ft_send_resp_status\n  target: Drop unused legacy target_core_fabric_ops API callers\n  iscsi-target: Convert to use target_put_session + sess_kref\n  target: Convert se_node_acl-\u003eacl_group removal to use -\u003eacl_kref\n  target: Add se_node_acl-\u003eacl_kref for -\u003eacl_free_comp usage\n  target: Add se_node_acl-\u003eacl_free_comp for NodeACL release path\n  target: Add se_sess-\u003esess_kref + get/put helpers\n  target: Convert session_lock to irqsave\n  target: Fix typo in drivers/target\n  iscsi-target: Fix dynamic -\u003e explict NodeACL pointer reference\n  ...\n"
    },
    {
      "commit": "267d7b23dd62f6ec55e0fba777e456495c308fc7",
      "tree": "5c9fe0f07d5b87029b9c07eb003596c05d161a8f",
      "parents": [
        "28f23d1f3b6a6078312b6e9585e583cc7326fe22",
        "ecb178bb2b154a40cfae9fa4c42e62ccfa81ac6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 12:29:50 2012 -0700"
      },
      "message": "Merge tag \u0027md-3.4\u0027 of git://neil.brown.name/md\n\nPull md updates for 3.4 from Neil Brown:\n \"Mostly tidying up code in preparation for some bigger changes next\n  time.\n\n  A few bug fixes tagged for -stable.\n\n  Main functionality change is that some RAID10 arrays can now grow to\n  use extra space that may have been made available on the individual\n  devices.\"\n\nFixed up trivial conflicts with the k[un]map_atomic() cleanups in\ndrivers/md/bitmap.c.\n\n* tag \u0027md-3.4\u0027 of git://neil.brown.name/md: (22 commits)\n  md: Add judgement bb-\u003eunacked_exist in function md_ack_all_badblocks().\n  md: fix clearing of the \u0027changed\u0027 flags for the bad blocks list.\n  md/bitmap: discard CHUNK_BLOCK_SHIFT macro\n  md/bitmap: remove unnecessary indirection when allocating.\n  md/bitmap: remove some pointless locking.\n  md/bitmap: change a \u0027goto\u0027 to a normal \u0027if\u0027 construct.\n  md/bitmap: move printing of bitmap status to bitmap.c\n  md/bitmap: remove some unused noise from bitmap.h\n  md/raid10 - support resizing some RAID10 arrays.\n  md/raid1: handle merge_bvec_fn in member devices.\n  md/raid10: handle merge_bvec_fn in member devices.\n  md: add proper merge_bvec handling to RAID0 and Linear.\n  md: tidy up rdev_for_each usage.\n  md/raid1,raid10: avoid deadlock during resync/recovery.\n  md/bitmap: ensure to load bitmap when creating via sysfs.\n  md: don\u0027t set md arrays to readonly on shutdown.\n  md: allow re-add to failed arrays.\n  md/raid5: use atomic_dec_return() instead of atomic_dec() and atomic_read().\n  md: Use existed macros instead of numbers\n  md/raid5: removed unused \u0027added_devices\u0027 variable.\n  ...\n"
    },
    {
      "commit": "7de473066f1512e52ea806e3c9698e5ea325b26c",
      "tree": "b5a52e0846c2f3851349dfc4e6c8ed88e64f3db8",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7",
        "09c32533c064782a7989b6fecce776833bca0e12",
        "ae295142d2d3989e49c6425c90d2593732a068a1"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Mar 22 19:28:39 2012 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joro@8bytes.org",
        "time": "Thu Mar 22 19:28:39 2012 +0100"
      },
      "message": "Merge branches \u0027iommu/fixes\u0027, \u0027arm/tegra\u0027 and \u0027x86/amd\u0027 into next\n"
    },
    {
      "commit": "23904815461ba223a8baf7490051597fa054299b",
      "tree": "2d52ce8ff18c4f731183d0b10048eb74489a3391",
      "parents": [
        "754b9800779402924fffe456b49d557e15260cbf",
        "fa63030e9c79e37b4d4e63b39ffb09cfb7aa0fe4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:43:22 2012 -0700"
      },
      "message": "Merge branch \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 platform changes from Ingo Molnar.\n\nRemoves the Moorestown platform that nobody ever used.\n\n* \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/platform: Move APIC ID validity check into platform APIC code\n  x86/olpc/xo15/sci: Enable lid close wakeup control\n  x86/geode/net5501: Add platform driver for Soekris Engineering net5501\n  x86/geode/alix2: Supplement driver to include GPIO button support\n  x86/mid/powerbtn: Use MSIC read/write instead of ipc_scu\n  x86/mid/thermal: Turn off thermistor\n  x86/mid/thermal: Add msic_thermal alias\n  x86/mid/thermal: Convert to use Intel MSIC API\n  x86/mid/scu_ipc: Remove Moorestown support\n  x86/mid: Kill off Moorestown\n  x86/mrst: Add msic_thermal platform support\n  x86/config: Select MSIC MFD driver on Intel Medfield platform\n  x86/mid: Remove Intel Moorestown\n  x86/mrst: Set ISA bus type for fake MP IRQs\n  x86/ioapic: Use legacy_pic to set correct gsi-irq mapping\n"
    },
    {
      "commit": "754b9800779402924fffe456b49d557e15260cbf",
      "tree": "0e0441eca766616fccd8fc37a3885397efc6063a",
      "parents": [
        "35cb8d9e18c0bb33b90d7e574abadbe23b65427d",
        "ea281a9ebaba3287130dbe15bb0aad6f798bb06b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull MCE changes from Ingo Molnar.\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/mce: Fix return value of mce_chrdev_read() when erst is disabled\n  x86/mce: Convert static array of pointers to per-cpu variables\n  x86/mce: Replace hard coded hex constants with symbolic defines\n  x86/mce: Recognise machine check bank signature for data path error\n  x86/mce: Handle \"action required\" errors\n  x86/mce: Add mechanism to safely save information in MCE handler\n  x86/mce: Create helper function to save addr/misc when needed\n  HWPOISON: Add code to handle \"action required\" errors.\n  HWPOISON: Clean up memory_failure() vs. __memory_failure()\n"
    },
    {
      "commit": "f06fc0c0de0b4f01dbad8ec5552e78192c7abbb8",
      "tree": "d31b0639244cbcaca2957b1c0c6c05686d4aeffa",
      "parents": [
        "4c64616bb51b399886ded8f4f69bad4da2da1817",
        "1adbfa3511ee1c1118e16a9a0246870f12fef4e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:31:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:31:31 2012 -0700"
      },
      "message": "Merge branch \u0027x86-eficross-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/eficross (booting 32/64-bit kernel from 64/32-bit EFI) from Ingo Molnar\n\n* \u0027x86-eficross-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Allow basic init with mixed 32/64-bit efi/kernel\n  x86, efi: Add basic error handling\n  x86, efi: Cleanup config table walking\n  x86, efi: Convert printk to pr_*()\n  x86, efi: Refactor efi_init() a bit\n"
    },
    {
      "commit": "e17fdf5c6778ff77d93dd769910992e4073b9348",
      "tree": "d1a7ca2b1faf4301b39300fbd82f9b91e605a77e",
      "parents": [
        "95211279c5ad00a317c98221d7e4365e02f20836",
        "a240ada241dafe290e7532d1ddeb98fdf1419068"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/asm changes from Ingo Molnar\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Include probe_roms.h in probe_roms.c\n  x86/32: Print control and debug registers for kerenel context\n  x86: Tighten dependencies of CPU_SUP_*_32\n  x86/numa: Improve internode cache alignment\n  x86: Fix the NMI nesting comments\n  x86-64: Improve insn scheduling in SAVE_ARGS_IRQ\n  x86-64: Fix CFI annotations for NMI nesting code\n  bitops: Add missing parentheses to new get_order macro\n  bitops: Optimise get_order()\n  bitops: Adjust the comment on get_order() to describe the size\u003d\u003d0 case\n  x86/spinlocks: Eliminate TICKET_MASK\n  x86-64: Handle byte-wise tail copying in memcpy() without a loop\n  x86-64: Fix memcpy() to support sizes of 4Gb and above\n  x86-64: Fix memset() to support sizes of 4Gb and above\n  x86-64: Slightly shorten copy_page()\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "5375871d432ae9fc581014ac117b96aaee3cd0c7",
      "tree": "be98e8255b0f927fb920fb532a598b93fa140dbe",
      "parents": [
        "b57cb7231b2ce52d3dda14a7b417ae125fb2eb97",
        "dfbc2d75c1bd47c3186fa91f1655ea2f3825b0ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc merge from Benjamin Herrenschmidt:\n \"Here\u0027s the powerpc batch for this merge window.  It is going to be a\n  bit more nasty than usual as in touching things outside of\n  arch/powerpc mostly due to the big iSeriesectomy :-) We finally got\n  rid of the bugger (legacy iSeries support) which was a PITA to\n  maintain and that nobody really used anymore.\n\n  Here are some of the highlights:\n\n   - Legacy iSeries is gone.  Thanks Stephen ! There\u0027s still some bits\n     and pieces remaining if you do a grep -ir series arch/powerpc but\n     they are harmless and will be removed in the next few weeks\n     hopefully.\n\n   - The \u0027fadump\u0027 functionality (Firmware Assisted Dump) replaces the\n     previous (equivalent) \"pHyp assisted dump\"...  it\u0027s a rewrite of a\n     mechanism to get the hypervisor to do crash dumps on pSeries, the\n     new implementation hopefully being much more reliable.  Thanks\n     Mahesh Salgaonkar.\n\n   - The \"EEH\" code (pSeries PCI error handling \u0026 recovery) got a big\n     spring cleaning, motivated by the need to be able to implement a\n     new backend for it on top of some new different type of firwmare.\n\n     The work isn\u0027t complete yet, but a good chunk of the cleanups is\n     there.  Note that this adds a field to struct device_node which is\n     not very nice and which Grant objects to.  I will have a patch soon\n     that moves that to a powerpc private data structure (hopefully\n     before rc1) and we\u0027ll improve things further later on (hopefully\n     getting rid of the need for that pointer completely).  Thanks Gavin\n     Shan.\n\n   - I dug into our exception \u0026 interrupt handling code to improve the\n     way we do lazy interrupt handling (and make it work properly with\n     \"edge\" triggered interrupt sources), and while at it found \u0026 fixed\n     a wagon of issues in those areas, including adding support for page\n     fault retry \u0026 fatal signals on page faults.\n\n   - Your usual random batch of small fixes \u0026 updates, including a bunch\n     of new embedded boards, both Freescale and APM based ones, etc...\"\n\nI fixed up some conflicts with the generalized irq-domain changes from\nGrant Likely, hopefully correctly.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (141 commits)\n  powerpc/ps3: Do not adjust the wrapper load address\n  powerpc: Remove the rest of the legacy iSeries include files\n  powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces\n  init: Remove CONFIG_PPC_ISERIES\n  powerpc: Remove FW_FEATURE ISERIES from arch code\n  tty/hvc_vio: FW_FEATURE_ISERIES is no longer selectable\n  powerpc/spufs: Fix double unlocks\n  powerpc/5200: convert mpc5200 to use of_platform_populate()\n  powerpc/mpc5200: add options to mpc5200_defconfig\n  powerpc/mpc52xx: add a4m072 board support\n  powerpc/mpc5200: update mpc5200_defconfig to fit for charon board\n  Documentation/powerpc/mpc52xx.txt: Checkpatch cleanup\n  powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board\n  powerpc/44x: Add support PCI-E for APM821xx SoC and Bluestone board\n  MAINTAINERS: Update PowerPC 4xx tree\n  powerpc/44x: The bug fixed support for APM821xx SoC and Bluestone board\n  powerpc: document the FSL MPIC message register binding\n  powerpc: add support for MPIC message register API\n  powerpc/fsl: Added aliased MSIIR register address to MSI node in dts\n  powerpc/85xx: mpc8548cds - add 36-bit dts\n  ...\n"
    },
    {
      "commit": "ad12ab259d9131a53aa11c7c4561d97f7cc900df",
      "tree": "457e99e4c4b1facf029a6a094428eaef73f5d261",
      "parents": [
        "30d73f375238441d6dc31de0d90bc39f5bb0bfe5",
        "220cca2a4f5867db595135e0450381032eb54902"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\nPull gfs2 changes from Steven Whitehouse.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: Change truncate page allocation to be GFP_NOFS\n  GFS2: call gfs2_write_alloc_required for each chunk\n  GFS2: Clean up log flush header writing\n  GFS2: Remove a __GFP_NOFAIL allocation\n  GFS2: Flush pending glock work when evicting an inode\n  GFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd\n  GFS2: Eliminate sd_rindex_mutex\n  GFS2: Unlock rindex mutex on glock error\n  GFS2: Make bd_cmp() static\n  GFS2: Sort the ordered write list\n  GFS2: FITRIM ioctl support\n  GFS2: Move two functions from log.c to lops.c\n  GFS2: glock statistics gathering\n"
    },
    {
      "commit": "d8c37c480678ebe09bc570f33e085e28049db035",
      "tree": "c8c53fde803f1a9655f44193c97db76dc4a90fe1",
      "parents": [
        "8d32ff84401f1addb961c7af2c8d9baceb0ab9ba"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:34:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n\nThese macros will be used in a later patch, where all usages are expected\nto be optimized away without #ifdef CONFIG_TRANSPARENT_HUGEPAGE.  But to\ndetect unexpected usages, we convert the existing BUG() to BUILD_BUG().\n\n[akpm@linux-foundation.org: fix build in mm/pgtable-generic.c]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4331f7d339ee0b54603344b9d13662a9c022540c",
      "tree": "ea67ad19a4dff0f8bf7d335bb7ab148ecfb4d329",
      "parents": [
        "2ff76f1193f8481f7e6c29304eea4006e8e51569"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "memcg: fix performance of mem_cgroup_begin_update_page_stat()\n\nmem_cgroup_begin_update_page_stat() should be very fast because it\u0027s\ncalled very frequently.  Now, it needs to look up page_cgroup and its\nmemcg....this is slow.\n\nThis patch adds a global variable to check \"any memcg is moving or not\".\nWith this, the caller doesn\u0027t need to visit page_cgroup and memcg.\n\nHere is a test result.  A test program makes page faults onto a file,\nMAP_SHARED and makes each page\u0027s page_mapcount(page) \u003e 1, and free the\nrange by madvise() and page fault again.  This program causes 26214400\ntimes of page fault onto a file(size was 1G.) and shows shows the cost of\nmem_cgroup_begin_update_page_stat().\n\nBefore this patch for mem_cgroup_begin_update_page_stat()\n\n    [kamezawa@bluextal test]$ time ./mmap 1G\n\n    real    0m21.765s\n    user    0m5.999s\n    sys     0m15.434s\n\n    27.46%     mmap  mmap               [.] reader\n    21.15%     mmap  [kernel.kallsyms]  [k] page_fault\n     9.17%     mmap  [kernel.kallsyms]  [k] filemap_fault\n     2.96%     mmap  [kernel.kallsyms]  [k] __do_fault\n     2.83%     mmap  [kernel.kallsyms]  [k] __mem_cgroup_begin_update_page_stat\n\nAfter this patch\n\n    [root@bluextal test]# time ./mmap 1G\n\n    real    0m21.373s\n    user    0m6.113s\n    sys     0m15.016s\n\nIn usual path, calls to __mem_cgroup_begin_update_page_stat() goes away.\n\nNote: we may be able to remove this optimization in future if\n      we can get pointer to memcg directly from struct page.\n\n[akpm@linux-foundation.org: don\u0027t return a void]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@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": "2ff76f1193f8481f7e6c29304eea4006e8e51569",
      "tree": "a263678dc298e29a0c54bb2e6f98bb1d5ee19751",
      "parents": [
        "89c06bd52fb9ffceddf84f7309d2e8c9f1666216"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_FILE_MAPPED\n\nWith the new lock scheme for updating memcg\u0027s page stat, we don\u0027t need a\nflag PCG_FILE_MAPPED which was duplicated information of page_mapped().\n\n[hughd@google.com: cosmetic fix]\n[hughd@google.com: add comment to MEM_CGROUP_CHARGE_TYPE_MAPPED case in __mem_cgroup_uncharge_common()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@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": "89c06bd52fb9ffceddf84f7309d2e8c9f1666216",
      "tree": "43ec3d97a89988bc143bed5796bcd7bef64212dc",
      "parents": [
        "312734c04e2fecc58429aec98194e4ff12d8f7d6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: use new logic for page stat accounting\n\nNow, page-stat-per-memcg is recorded into per page_cgroup flag by\nduplicating page\u0027s status into the flag.  The reason is that memcg has a\nfeature to move a page from a group to another group and we have race\nbetween \"move\" and \"page stat accounting\",\n\nUnder current logic, assume CPU-A and CPU-B.  CPU-A does \"move\" and CPU-B\ndoes \"page stat accounting\".\n\nWhen CPU-A goes 1st,\n\n            CPU-A                           CPU-B\n                                    update \"struct page\" info.\n    move_lock_mem_cgroup(memcg)\n    see pc-\u003eflags\n    copy page stat to new group\n    overwrite pc-\u003emem_cgroup.\n    move_unlock_mem_cgroup(memcg)\n                                    move_lock_mem_cgroup(mem)\n                                    set pc-\u003eflags\n                                    update page stat accounting\n                                    move_unlock_mem_cgroup(mem)\n\nstat accounting is guarded by move_lock_mem_cgroup() and \"move\" logic\n(CPU-A) doesn\u0027t see changes in \"struct page\" information.\n\nBut it\u0027s costly to have the same information both in \u0027struct page\u0027 and\n\u0027struct page_cgroup\u0027.  And, there is a potential problem.\n\nFor example, assume we have PG_dirty accounting in memcg.\nPG_..is a flag for struct page.\nPCG_ is a flag for struct page_cgroup.\n(This is just an example. The same problem can be found in any\n kind of page stat accounting.)\n\n\t  CPU-A                               CPU-B\n      TestSet PG_dirty\n      (delay)                        TestClear PG_dirty\n                                     if (TestClear(PCG_dirty))\n                                          memcg-\u003enr_dirty--\n      if (TestSet(PCG_dirty))\n          memcg-\u003enr_dirty++\n\nHere, memcg-\u003enr_dirty \u003d +1, this is wrong.  This race was reported by Greg\nThelen \u003cgthelen@google.com\u003e.  Now, only FILE_MAPPED is supported but\nfortunately, it\u0027s serialized by page table lock and this is not real bug,\n_now_,\n\nIf this potential problem is caused by having duplicated information in\nstruct page and struct page_cgroup, we may be able to fix this by using\noriginal \u0027struct page\u0027 information.  But we\u0027ll have a problem in \"move\naccount\"\n\nAssume we use only PG_dirty.\n\n         CPU-A                   CPU-B\n    TestSet PG_dirty\n    (delay)                    move_lock_mem_cgroup()\n                               if (PageDirty(page))\n                                      new_memcg-\u003enr_dirty++\n                               pc-\u003emem_cgroup \u003d new_memcg;\n                               move_unlock_mem_cgroup()\n    move_lock_mem_cgroup()\n    memcg \u003d pc-\u003emem_cgroup\n    new_memcg-\u003enr_dirty++\n\naccounting information may be double-counted.  This was original reason to\nhave PCG_xxx flags but it seems PCG_xxx has another problem.\n\nI think we need a bigger lock as\n\n     move_lock_mem_cgroup(page)\n     TestSetPageDirty(page)\n     update page stats (without any checks)\n     move_unlock_mem_cgroup(page)\n\nThis fixes both of problems and we don\u0027t have to duplicate page flag into\npage_cgroup.  Please note: move_lock_mem_cgroup() is held only when there\nare possibility of \"account move\" under the system.  So, in most path,\nstatus update will go without atomic locks.\n\nThis patch introduces mem_cgroup_begin_update_page_stat() and\nmem_cgroup_end_update_page_stat() both should be called at modifying\n\u0027struct page\u0027 information if memcg takes care of it.  as\n\n     mem_cgroup_begin_update_page_stat()\n     modify page information\n     mem_cgroup_update_page_stat()\n     \u003d\u003e never check any \u0027struct page\u0027 info, just update counters.\n     mem_cgroup_end_update_page_stat().\n\nThis patch is slow because we need to call begin_update_page_stat()/\nend_update_page_stat() regardless of accounted will be changed or not.  A\nfollowing patch adds an easy optimization and reduces the cost.\n\n[akpm@linux-foundation.org: s/lock/locked/]\n[hughd@google.com: fix deadlock by avoiding stat lock when anon]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: 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": "312734c04e2fecc58429aec98194e4ff12d8f7d6",
      "tree": "c1195cd46733b6a3909c11b2b5abcdee4412b99b",
      "parents": [
        "619d094b5872a5af153f1af77a8b7f7326faf0d0"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n\nPCG_MOVE_LOCK is used for bit spinlock to avoid race between overwriting\npc-\u003emem_cgroup and page statistics accounting per memcg.  This lock helps\nto avoid the race but the race is very rare because moving tasks between\ncgroup is not a usual job.  So, it seems using 1bit per page is too\ncostly.\n\nThis patch changes this lock as per-memcg spinlock and removes\nPCG_MOVE_LOCK.\n\nIf smaller lock is required, we\u0027ll be able to add some hashes but I\u0027d like\nto start from this.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@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": "a710920caedfcf56543136bfea300a6c593f9838",
      "tree": "47546c076b45b8b6b82c4f6b47906a480a00b24f",
      "parents": [
        "b24028572fb69e9dd6de8c359eba2b2c66baa889"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:34:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: kill dead prev_priority stubs\n\nThis code was removed in 25edde033291 (\"vmscan: kill prev_priority\ncompletely\")\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b24028572fb69e9dd6de8c359eba2b2c66baa889",
      "tree": "563594eba40e5fd0b61c36c09705f128a8dfbe40",
      "parents": [
        "ca464d69b19120a826aa2534de2511a6f542edf5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_CACHE page_cgroup flag\n\nWe record \u0027the page is cache\u0027 with the PCG_CACHE bit in page_cgroup.\nHere, \"CACHE\" means anonymous user pages (and SwapCache).  This doesn\u0027t\ninclude shmem.\n\nConsidering callers, at charge/uncharge, the caller should know what the\npage is and we don\u0027t need to record it by using one bit per page.\n\nThis patch removes PCG_CACHE bit and make callers of\nmem_cgroup_charge_statistics() to specify what the page is.\n\nAbout page migration: Mapping of the used page is not touched during migra\ntion (see page_remove_rmap) so we can rely on it and push the correct\ncharge type down to __mem_cgroup_uncharge_common from end_migration for\nunused page.  The force flag was misleading was abused for skipping the\nneedless page_mapped() / PageCgroupMigration() check, as we know the\nunused page is no longer mapped and cleared the migration flag just a few\nlines up.  But doing the checks is no biggie and it\u0027s not worth adding\nanother flag just to skip them.\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[hughd@google.com: fix PageAnon uncharging]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42aee6c495e07dba7410b863a360db6bb9ec6d66",
      "tree": "d014b2b5c7aa9d1a1f13686fa06699f9f734ee1c",
      "parents": [
        "9f7de8275b46d9d11b1505adbfe6c2bb48df4741"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 21 16:34:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "cgroup: revert ss_id_lock to spinlock\n\nCommit c1e2ee2dc436 (\"memcg: replace ss-\u003eid_lock with a rwlock\") has now\nbeen seen to cause the unfair behavior we should have expected from\nconverting a spinlock to an rwlock: softlockup in cgroup_mkdir(), whose\nget_new_cssid() is waiting for the wlock, while there are 19 tasks using\nthe rlock in css_get_next() to get on with their memcg workload (in an\nartificial test, admittedly).  Yet lib/idr.c was made suitable for RCU\nway back: revert that commit, restoring ss-\u003eid_lock to a spinlock.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@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": "31a79235fc75b506e282e43723107a40f3bc5c07",
      "tree": "de0d3264015e174f4182e04faed29c98c1f006f5",
      "parents": [
        "052b1987faca3606109d88d96bce124851f7c4c2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 21 16:34:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "memcg: replace MEM_CONT by MEM_RES_CTLR\n\nCorrect an #endif comment in memcontrol.h from MEM_CONT to MEM_RES_CTLR.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d13bddd11c10db40e2c81b4b224c11126691fc0",
      "tree": "bec31e54cbc43bf6b49c391d81893203b903b5ec",
      "parents": [
        "d1d5e05ffdc110021ae7937802e88ae0d223dcdc"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Wed Mar 21 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "page_alloc.c: remove add_from_early_node_map()\n\nadd_from_early_node_map() is unused.\n\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@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": "40716e29243de46720e5773797791466c28904ec",
      "tree": "19616ad05cbead73d0643b002a7ced8baa292ee2",
      "parents": [
        "21a3c273f88c9cbbaf7e14505df0131d95c8f262"
      ],
      "author": {
        "name": "Steven Truelove",
        "email": "steven.truelove@utoronto.ca",
        "time": "Wed Mar 21 16:34:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlbfs: fix alignment of huge page requests\n\nWhen calling shmget() with SHM_HUGETLB, shmget aligns the request size to\nPAGE_SIZE, but this is not sufficient.\n\nModify hugetlb_file_setup() to align requests to the huge page size, and\nto accept an address argument so that all alignment checks can be\nperformed in hugetlb_file_setup(), rather than in its callers.  Change\nnewseg() and mmap_pgoff() to match the new prototype and eliminate a now\nredundant alignment check.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Steven Truelove \u003csteven.truelove@utoronto.ca\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": "05af2e104a0c282dcd9303431e1360750ba76de6",
      "tree": "cdd5876f2d17b26cc3ded7ef85d04d0e853e9b7e",
      "parents": [
        "90481622d75715bfcb68501280a917dbfe516029"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "mm, counters: remove task argument to sync_mm_rss() and __sync_task_rss_stat()\n\nsync_mm_rss() can only be used for current to avoid race conditions in\niterating and clearing its per-task counters.  Remove the task argument\nfor it and its helper function, __sync_task_rss_stat(), to avoid thinking\nit can be used safely for anything other than current.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90481622d75715bfcb68501280a917dbfe516029",
      "tree": "63f7d9e4455366ab326ee74e6b39acf76b618fcf",
      "parents": [
        "a1d776ee3147cec2a54a645e92eb2e3e2f65a137"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Mar 21 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugepages: fix use after free bug in \"quota\" handling\n\nhugetlbfs_{get,put}_quota() are badly named.  They don\u0027t interact with the\ngeneral quota handling code, and they don\u0027t much resemble its behaviour.\nRather than being about maintaining limits on on-disk block usage by\nparticular users, they are instead about maintaining limits on in-memory\npage usage (including anonymous MAP_PRIVATE copied-on-write pages)\nassociated with a particular hugetlbfs filesystem instance.\n\nWorse, they work by having callbacks to the hugetlbfs filesystem code from\nthe low-level page handling code, in particular from free_huge_page().\nThis is a layering violation of itself, but more importantly, if the\nkernel does a get_user_pages() on hugepages (which can happen from KVM\namongst others), then the free_huge_page() can be delayed until after the\nassociated inode has already been freed.  If an unmount occurs at the\nwrong time, even the hugetlbfs superblock where the \"quota\" limits are\nstored may have been freed.\n\nAndrew Barry proposed a patch to fix this by having hugepages, instead of\nstoring a pointer to their address_space and reaching the superblock from\nthere, had the hugepages store pointers directly to the superblock,\nbumping the reference count as appropriate to avoid it being freed.\nAndrew Morton rejected that version, however, on the grounds that it made\nthe existing layering violation worse.\n\nThis is a reworked version of Andrew\u0027s patch, which removes the extra, and\nsome of the existing, layering violation.  It works by introducing the\nconcept of a hugepage \"subpool\" at the lower hugepage mm layer - that is a\nfinite logical pool of hugepages to allocate from.  hugetlbfs now creates\na subpool for each filesystem instance with a page limit set, and a\npointer to the subpool gets added to each allocated hugepage, instead of\nthe address_space pointer used now.  The subpool has its own lifetime and\nis only freed once all pages in it _and_ all other references to it (i.e.\nsuperblocks) are gone.\n\nsubpools are optional - a NULL subpool pointer is taken by the code to\nmean that no subpool limits are in effect.\n\nPrevious discussion of this bug found in:  \"Fix refcounting in hugetlbfs\nquota handling.\". See:  https://lkml.org/lkml/2011/8/11/28 or\nhttp://marc.info/?l\u003dlinux-mm\u0026m\u003d126928970510627\u0026w\u003d1\n\nv2: Fixed a bug spotted by Hillf Danton, and removed the extra parameter to\nalloc_huge_page() - since it already takes the vma, it is not necessary.\n\nSigned-off-by: Andrew Barry \u003cabarry@cray.com\u003e\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1d776ee3147cec2a54a645e92eb2e3e2f65a137",
      "tree": "244e9a44121be417dc9c999bed2a439b8cb01f8d",
      "parents": [
        "ef6942224a185c9e434f6cfe69fe434e732f5b38"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Mar 21 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlb: cleanup hugetlb.h\n\nMake a couple of small cleanups to linux/include/hugetlb.h.  The\nset_file_hugepages() function, which was not used anywhere is removed,\nand the hugetlbfs_config and hugetlbfs_inode_info structures with its\nHUGETLBFS_I helper function are moved into inode.c, the only place they\nwere used.\n\nThese structures are really linked to the hugetlbfs filesystem\nspecifically not to hugepage mm handling in general, so they belong in\nthe filesystem code not in a generally available header.\n\nIt would be nice to move the hugetlbfs_sb_info (superblock) structure in\nthere as well, but it\u0027s currently needed in a number of places via the\nhstate_vma() and hstate_inode().\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Andrew Barry \u003cabarry@cray.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "cc9a6c8776615f9c194ccf0b63a0aa5628235545",
      "tree": "0cbbf118e86541f8eb2fc7b717a0e08eaced986d",
      "parents": [
        "e845e199362cc5712ba0e7eedc14eed70e144258"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Wed Mar 21 16:34:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "cpuset: mm: reduce large amounts of memory barrier related damage v3\n\nCommit c0ff7453bb5c (\"cpuset,mm: fix no node to alloc memory when\nchanging cpuset\u0027s mems\") wins a super prize for the largest number of\nmemory barriers entered into fast paths for one commit.\n\n[get|put]_mems_allowed is incredibly heavy with pairs of full memory\nbarriers inserted into a number of hot paths.  This was detected while\ninvestigating at large page allocator slowdown introduced some time\nafter 2.6.32.  The largest portion of this overhead was shown by\noprofile to be at an mfence introduced by this commit into the page\nallocator hot path.\n\nFor extra style points, the commit introduced the use of yield() in an\nimplementation of what looks like a spinning mutex.\n\nThis patch replaces the full memory barriers on both read and write\nsides with a sequence counter with just read barriers on the fast path\nside.  This is much cheaper on some architectures, including x86.  The\nmain bulk of the patch is the retry logic if the nodemask changes in a\nmanner that can cause a false failure.\n\nWhile updating the nodemask, a check is made to see if a false failure\nis a risk.  If it is, the sequence number gets bumped and parallel\nallocators will briefly stall while the nodemask update takes place.\n\nIn a page fault test microbenchmark, oprofile samples from\n__alloc_pages_nodemask went from 4.53% of all samples to 1.15%.  The\nactual results were\n\n                             3.3.0-rc3          3.3.0-rc3\n                             rc3-vanilla        nobarrier-v2r1\n    Clients   1 UserTime       0.07 (  0.00%)   0.08 (-14.19%)\n    Clients   2 UserTime       0.07 (  0.00%)   0.07 (  2.72%)\n    Clients   4 UserTime       0.08 (  0.00%)   0.07 (  3.29%)\n    Clients   1 SysTime        0.70 (  0.00%)   0.65 (  6.65%)\n    Clients   2 SysTime        0.85 (  0.00%)   0.82 (  3.65%)\n    Clients   4 SysTime        1.41 (  0.00%)   1.41 (  0.32%)\n    Clients   1 WallTime       0.77 (  0.00%)   0.74 (  4.19%)\n    Clients   2 WallTime       0.47 (  0.00%)   0.45 (  3.73%)\n    Clients   4 WallTime       0.38 (  0.00%)   0.37 (  1.58%)\n    Clients   1 Flt/sec/cpu  497620.28 (  0.00%) 520294.53 (  4.56%)\n    Clients   2 Flt/sec/cpu  414639.05 (  0.00%) 429882.01 (  3.68%)\n    Clients   4 Flt/sec/cpu  257959.16 (  0.00%) 258761.48 (  0.31%)\n    Clients   1 Flt/sec      495161.39 (  0.00%) 517292.87 (  4.47%)\n    Clients   2 Flt/sec      820325.95 (  0.00%) 850289.77 (  3.65%)\n    Clients   4 Flt/sec      1020068.93 (  0.00%) 1022674.06 (  0.26%)\n    MMTests Statistics: duration\n    Sys Time Running Test (seconds)             135.68    132.17\n    User+Sys Time Running Test (seconds)         164.2    160.13\n    Total Elapsed Time (seconds)                123.46    120.87\n\nThe overall improvement is small but the System CPU time is much\nimproved and roughly in correlation to what oprofile reported (these\nperformance figures are without profiling so skew is expected).  The\nactual number of page faults is noticeably improved.\n\nFor benchmarks like kernel builds, the overall benefit is marginal but\nthe system CPU time is slightly reduced.\n\nTo test the actual bug the commit fixed I opened two terminals.  The\nfirst ran within a cpuset and continually ran a small program that\nfaulted 100M of anonymous data.  In a second window, the nodemask of the\ncpuset was continually randomised in a loop.\n\nWithout the commit, the program would fail every so often (usually\nwithin 10 seconds) and obviously with the commit everything worked fine.\nWith this patch applied, it also worked fine so the fix should be\nfunctionally equivalent.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e845e199362cc5712ba0e7eedc14eed70e144258",
      "tree": "3968125d82e512c3aee44ed96694fdd58b863506",
      "parents": [
        "c7cfa37b7324a190fc36ff116d79d0f899e8d273"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "mm, memcg: pass charge order to oom killer\n\nThe oom killer typically displays the allocation order at the time of oom\nas a part of its diangostic messages (for global, cpuset, and mempolicy\nooms).\n\nThe memory controller may also pass the charge order to the oom killer so\nit can emit the same information.  This is useful in determining how large\nthe memory allocation is that triggered the oom killer.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0cb3c76ae1ced85f9034480b1b24cd96530ec78",
      "tree": "997ae67621f76b3b6bf588604f85738a8c97cbef",
      "parents": [
        "3268c63eded4612a3d07b56d1e02ce7731e6608e"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:34:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm: drain percpu lru add/rotate page-vectors on cpu hot-unplug\n\nThis cpu hotplug hook was accidentally removed in commit 00a62ce91e55\n(\"mm: fix Committed_AS underflow on large NR_CPUS environment\")\n\nThe visible effect of this accident: some pages are borrowed in per-cpu\npage-vectors.  Truncate can deal with it, but these pages cannot be\nreused while this cpu is offline.  So this is like a temporary memory\nleak.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "385de35722c9a22917e7bc5e63cd83a8cffa5ecd",
      "tree": "41ae2e23e096d189cdf614cf1eaf0c8f9ddeeb3b",
      "parents": [
        "6d9d88d07e132259c35f9493b15429e19198489c"
      ],
      "author": {
        "name": "Dean Nelson",
        "email": "dnelson@redhat.com",
        "time": "Wed Mar 21 16:34:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "thp: allow a hwpoisoned head page to be put back to LRU\n\nAndrea Arcangeli pointed out to me that a check in __memory_failure()\nwhich was intended to prevent THP tail pages from being checked for the\nabsence of the PG_lru flag (something that is always the case), was also\npreventing THP head pages from being checked.\n\nA THP head page could actually benefit from the call to shake_page() by\nending up being put back to a LRU, provided it had been waiting in a\npagevec array.\n\nAndrea suggested that the \"!PageTransCompound(p)\" in the if-statement\nshould be replaced by a \"!PageTransTail(p)\", thus allowing THP head pages\nto be checked and possibly shaken.\n\nSigned-off-by: Dean Nelson \u003cdnelson@redhat.com\u003e\nCc: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08ab9b10d43aca091fdff58b69fc1ec89c5b8a83",
      "tree": "73abfd3a257f3feadc0fa28c3117aaa9d95af596",
      "parents": [
        "b76437579d1344b612cf1851ae610c636cec7db0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm, oom: force oom kill on sysrq+f\n\nThe oom killer chooses not to kill a thread if:\n\n - an eligible thread has already been oom killed and has yet to exit,\n   and\n\n - an eligible thread is exiting but has yet to free all its memory and\n   is not the thread attempting to currently allocate memory.\n\nSysRq+F manually invokes the global oom killer to kill a memory-hogging\ntask.  This is normally done as a last resort to free memory when no\nprogress is being made or to test the oom killer itself.\n\nFor both uses, we always want to kill a thread and never defer.  This\npatch causes SysRq+F to always kill an eligible thread and can be used to\nforce a kill even if another oom killed thread has failed to exit.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b76437579d1344b612cf1851ae610c636cec7db0",
      "tree": "37c31c957f1159635258168e27e49b90347e37aa",
      "parents": [
        "9e81130b7ce23050335b1197bb51743517b5b9d0"
      ],
      "author": {
        "name": "Siddhesh Poyarekar",
        "email": "siddhesh.poyarekar@gmail.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "procfs: mark thread stack correctly in proc/\u003cpid\u003e/maps\n\nStack for a new thread is mapped by userspace code and passed via\nsys_clone.  This memory is currently seen as anonymous in\n/proc/\u003cpid\u003e/maps, which makes it difficult to ascertain which mappings\nare being used for thread stacks.  This patch uses the individual task\nstack pointers to determine which vmas are actually thread stacks.\n\nFor a multithreaded program like the following:\n\n\t#include \u003cpthread.h\u003e\n\n\tvoid *thread_main(void *foo)\n\t{\n\t\twhile(1);\n\t}\n\n\tint main()\n\t{\n\t\tpthread_t t;\n\t\tpthread_create(\u0026t, NULL, thread_main, NULL);\n\t\tpthread_join(t, NULL);\n\t}\n\nproc/PID/maps looks like the following:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nHere, one could guess that 7f8a44492000-7f8a44c92000 is a stack since\nthe earlier vma that has no permissions (7f8a44e3d000-7f8a4503d000) but\nthat is not always a reliable way to find out which vma is a thread\nstack.  Also, /proc/PID/maps and /proc/PID/task/TID/maps has the same\ncontent.\n\nWith this patch in place, /proc/PID/task/TID/maps are treated as \u0027maps\nas the task would see it\u0027 and hence, only the vma that that task uses as\nstack is marked as [stack].  All other \u0027stack\u0027 vmas are marked as\nanonymous memory.  /proc/PID/maps acts as a thread group level view,\nwhere all thread stack vmas are marked as [stack:TID] where TID is the\nprocess ID of the task that uses that vma as stack, while the process\nstack is marked as [stack].\n\nSo /proc/PID/maps will look like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nThus marking all vmas that are used as stacks by the threads in the\nthread group along with the process stack.  The task level maps will\nhowever like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nwhere only the vma that is being used as a stack by *that* task is\nmarked as [stack].\n\nAnalogous changes have been made to /proc/PID/smaps,\n/proc/PID/numa_maps, /proc/PID/task/TID/smaps and\n/proc/PID/task/TID/numa_maps. Relevant snippets from smaps and\nnuma_maps:\n\n    [siddhesh@localhost ~ ]$ pgrep a.out\n    1441\n    [siddhesh@localhost ~ ]$ cat /proc/1441/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/smaps | grep \"\\[stack\"\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/numa_maps | grep \"stack\"\n    7f8a44492000 default stack:1442 anon\u003d2 dirty\u003d2 N0\u003d2\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/numa_maps | grep \"stack\"\n    7f8a44492000 default stack anon\u003d2 dirty\u003d2 N0\u003d2\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/numa_maps | grep \"stack\"\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Siddhesh Poyarekar \u003csiddhesh.poyarekar@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "978ea78b65794ef07eb66b9946064dea66b52554",
      "tree": "f1c2eea5ab72bdca622e764a52e956bfb3ae749f",
      "parents": [
        "6583a84304e5a6cb27ec2aace79ef9c4ba888d12"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "rmap: remove __anon_vma_link() declaration\n\nThis declaration is not used anymore, remove it.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@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": "ce1744f4ed20ca873360e54502f8a71564ef7cc6",
      "tree": "ec26dbc6a5417c75a8fa65ab093374d3e0045032",
      "parents": [
        "092b50bacd1cdbffef2643b7a46f2a215407919c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "mm: replace PAGE_MIGRATION with IS_ENABLED(CONFIG_MIGRATION)\n\nSince commit 2a11c8ea20bf (\"kconfig: Introduce IS_ENABLED(),\nIS_BUILTIN() and IS_MODULE()\") there is a generic grep-friendly method\nfor checking config options in C expressions.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e873c49fbfdd595481976b915850e682441bcbec",
      "tree": "87ad5d125563d1eb6418e1f7b5a094fab6098108",
      "parents": [
        "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: export KPF_THP\n\nThis flag shows that a given page is a subpage of a transparent hugepage.\nIt helps us debug and test the kernel by showing physical address of thp.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5",
      "tree": "423b4ef1a0ce021360304a80f6e0ba902581a3ad",
      "parents": [
        "5aaabe831eb527e0d9284f0745d830a755f70393"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "thp: optimize away unnecessary page table locking\n\nCurrently when we check if we can handle thp as it is or we need to split\nit into regular sized pages, we hold page table lock prior to check\nwhether a given pmd is mapping thp or not.  Because of this, when it\u0027s not\n\"huge pmd\" we suffer from unnecessary lock/unlock overhead.  To remove it,\nthis patch introduces a optimized check function and replace several\nsimilar logics with it.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aff622495c9a0b56148192e53bdec539f5e147f2",
      "tree": "78f6400d8b6bec3279483006a0e9543e47aa833e",
      "parents": [
        "7be62de99adcab4449d416977b4274985c5fe023"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "vmscan: only defer compaction for failed order and higher\n\nCurrently a failed order-9 (transparent hugepage) compaction can lead to\nmemory compaction being temporarily disabled for a memory zone.  Even if\nwe only need compaction for an order 2 allocation, eg.  for jumbo frames\nnetworking.\n\nThe fix is relatively straightforward: keep track of the highest order at\nwhich compaction is succeeding, and only defer compaction for orders at\nwhich compaction is failing.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "7be62de99adcab4449d416977b4274985c5fe023",
      "tree": "20ae021ec9811ad730e6a17a3530d3aa6b5027d0",
      "parents": [
        "fe2c2a106663130a5ab45cb0e3414b52df2fff0c"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "vmscan: kswapd carefully call compaction\n\nWith CONFIG_COMPACTION enabled, kswapd does not try to free contiguous\nfree pages, even when it is woken for a higher order request.\n\nThis could be bad for eg.  jumbo frame network allocations, which are done\nfrom interrupt context and cannot compact memory themselves.  Higher than\nbefore allocation failure rates in the network receive path have been\nobserved in kernels with compaction enabled.\n\nTeach kswapd to defragment the memory zones in a node, but only if\nrequired and compaction is not deferred in a zone.\n\n[akpm@linux-foundation.org: reduce scope of zones_need_compaction]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "67f96aa252e606cdf6c3cf1032952ec207ec0cf0",
      "tree": "a5a4299dd32789831eda558b51c0120272846664",
      "parents": [
        "c38446cc65e1f2b3eb8630c53943b94c4f65f670"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: make swapin readahead skip over holes\n\nEver since abandoning the virtual scan of processes, for scalability\nreasons, swap space has been a little more fragmented than before.  This\ncan lead to the situation where a large memory user is killed, swap space\nends up full of \"holes\" and swapin readahead is totally ineffective.\n\nOn my home system, after killing a leaky firefox it took over an hour to\npage just under 2GB of memory back in, slowing the virtual machines down\nto a crawl.\n\nThis patch makes swapin readahead simply skip over holes, instead of\nstopping at them.  This allows the system to swap things back in at rates\nof several MB/second, instead of a few hundred kB/second.\n\nThe checks done in valid_swaphandles are already done in\nread_swap_cache_async as well, allowing us to remove a fair amount of\ncode.\n\n[akpm@linux-foundation.org: fix it for page_cluster \u003e\u003d 32]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Adrian Drzewiecki \u003cz@drze.net\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": "69c978232aaa99476f9bd002c2a29a84fa3779b5",
      "tree": "7edb0da034b8824040f4f7327dd31ad260532167",
      "parents": [
        "6131728914810a6c02e08750e13e45870101e862"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm: make get_mm_counter static-inline\n\nMake get_mm_counter() always static inline, it is simple enough for that.\nAnd remove unused set_mm_counter()\n\nbloat-o-meter:\n\nadd/remove: 0/1 grow/shrink: 4/12 up/down: 99/-341 (-242)\nfunction                                     old     new   delta\ntry_to_unmap_one                             886     952     +66\nsys_remap_file_pages                        1214    1230     +16\ndup_mm                                      1684    1700     +16\ndo_exit                                     2277    2278      +1\nzap_page_range                               208     205      -3\nunmap_region                                 304     296      -8\nstatic.oom_kill_process                      554     546      -8\ntry_to_unmap_file                           1716    1700     -16\ngetrusage                                    925     909     -16\nflush_old_exec                              1704    1688     -16\nstatic.dump_header                           416     390     -26\nacct_update_integrals                        218     187     -31\ndo_task_stat                                2986    2954     -32\nget_mm_counter                                34       -     -34\nxacct_add_tsk                                371     334     -37\ntask_statm                                   172     118     -54\ntask_mem                                     383     323     -60\n\ntry_to_unmap_one() grows because update_hiwater_rss() now completely inline.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a5a9906d4e8d1976b701f889d8f35d54b928f25",
      "tree": "e51912e725f224663a738045a4d0528d08da4572",
      "parents": [
        "31f6765266417c0d99f0e922fe82848a7c9c2ae9"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 21 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode\n\nIn some cases it may happen that pmd_none_or_clear_bad() is called with\nthe mmap_sem hold in read mode.  In those cases the huge page faults can\nallocate hugepmds under pmd_none_or_clear_bad() and that can trigger a\nfalse positive from pmd_bad() that will not like to see a pmd\nmaterializing as trans huge.\n\nIt\u0027s not khugepaged causing the problem, khugepaged holds the mmap_sem\nin write mode (and all those sites must hold the mmap_sem in read mode\nto prevent pagetables to go away from under them, during code review it\nseems vm86 mode on 32bit kernels requires that too unless it\u0027s\nrestricted to 1 thread per process or UP builds).  The race is only with\nthe huge pagefaults that can convert a pmd_none() into a\npmd_trans_huge().\n\nEffectively all these pmd_none_or_clear_bad() sites running with\nmmap_sem in read mode are somewhat speculative with the page faults, and\nthe result is always undefined when they run simultaneously.  This is\nprobably why it wasn\u0027t common to run into this.  For example if the\nmadvise(MADV_DONTNEED) runs zap_page_range() shortly before the page\nfault, the hugepage will not be zapped, if the page fault runs first it\nwill be zapped.\n\nAltering pmd_bad() not to error out if it finds hugepmds won\u0027t be enough\nto fix this, because zap_pmd_range would then proceed to call\nzap_pte_range (which would be incorrect if the pmd become a\npmd_trans_huge()).\n\nThe simplest way to fix this is to read the pmd in the local stack\n(regardless of what we read, no need of actual CPU barriers, only\ncompiler barrier needed), and be sure it is not changing under the code\nthat computes its value.  Even if the real pmd is changing under the\nvalue we hold on the stack, we don\u0027t care.  If we actually end up in\nzap_pte_range it means the pmd was not none already and it was not huge,\nand it can\u0027t become huge from under us (khugepaged locking explained\nabove).\n\nAll we need is to enforce that there is no way anymore that in a code\npath like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad\ncan run into a hugepmd.  The overhead of a barrier() is just a compiler\ntweak and should not be measurable (I only added it for THP builds).  I\ndon\u0027t exclude different compiler versions may have prevented the race\ntoo by caching the value of *pmd on the stack (that hasn\u0027t been\nverified, but it wouldn\u0027t be impossible considering\npmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines\nand there\u0027s no external function called in between pmd_trans_huge and\npmd_none_or_clear_bad).\n\n\t\tif (pmd_trans_huge(*pmd)) {\n\t\t\tif (next-addr !\u003d HPAGE_PMD_SIZE) {\n\t\t\t\tVM_BUG_ON(!rwsem_is_locked(\u0026tlb-\u003emm-\u003emmap_sem));\n\t\t\t\tsplit_huge_page_pmd(vma-\u003evm_mm, pmd);\n\t\t\t} else if (zap_huge_pmd(tlb, vma, pmd, addr))\n\t\t\t\tcontinue;\n\t\t\t/* fall through */\n\t\t}\n\t\tif (pmd_none_or_clear_bad(pmd))\n\nBecause this race condition could be exercised without special\nprivileges this was reported in CVE-2012-1179.\n\nThe race was identified and fully explained by Ulrich who debugged it.\nI\u0027m quoting his accurate explanation below, for reference.\n\n\u003d\u003d\u003d\u003d\u003d\u003d start quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      mapcount 0 page_mapcount 1\n      kernel BUG at mm/huge_memory.c:1384!\n\n    At some point prior to the panic, a \"bad pmd ...\" message similar to the\n    following is logged on the console:\n\n      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).\n\n    The \"bad pmd ...\" message is logged by pmd_clear_bad() before it clears\n    the page\u0027s PMD table entry.\n\n        143 void pmd_clear_bad(pmd_t *pmd)\n        144 {\n    -\u003e  145         pmd_ERROR(*pmd);\n        146         pmd_clear(pmd);\n        147 }\n\n    After the PMD table entry has been cleared, there is an inconsistency\n    between the actual number of PMD table entries that are mapping the page\n    and the page\u0027s map count (_mapcount field in struct page). When the page\n    is subsequently reclaimed, __split_huge_page() detects this inconsistency.\n\n       1381         if (mapcount !\u003d page_mapcount(page))\n       1382                 printk(KERN_ERR \"mapcount %d page_mapcount %d\\n\",\n       1383                        mapcount, page_mapcount(page));\n    -\u003e 1384         BUG_ON(mapcount !\u003d page_mapcount(page));\n\n    The root cause of the problem is a race of two threads in a multithreaded\n    process. Thread B incurs a page fault on a virtual address that has never\n    been accessed (PMD entry is zero) while Thread A is executing an madvise()\n    system call on a virtual address within the same 2 MB (huge page) range.\n\n               virtual address space\n              .---------------------.\n              |                     |\n              |                     |\n            .-|---------------------|\n            | |                     |\n            | |                     |\u003c-- B(fault)\n            | |                     |\n      2 MB  | |/////////////////////|-.\n      huge \u003c  |/////////////////////|  \u003e A(range)\n      page  | |/////////////////////|-\u0027\n            | |                     |\n            | |                     |\n            \u0027-|---------------------|\n              |                     |\n              |                     |\n              \u0027---------------------\u0027\n\n    - Thread A is executing an madvise(..., MADV_DONTNEED) system call\n      on the virtual address range \"A(range)\" shown in the picture.\n\n    sys_madvise\n      // Acquire the semaphore in shared mode.\n      down_read(\u0026current-\u003emm-\u003emmap_sem)\n      ...\n      madvise_vma\n        switch (behavior)\n        case MADV_DONTNEED:\n             madvise_dontneed\n               zap_page_range\n                 unmap_vmas\n                   unmap_page_range\n                     zap_pud_range\n                       zap_pmd_range\n                         //\n                         // Assume that this huge page has never been accessed.\n                         // I.e. content of the PMD entry is zero (not mapped).\n                         //\n                         if (pmd_trans_huge(*pmd)) {\n                             // We don\u0027t get here due to the above assumption.\n                         }\n                         //\n                         // Assume that Thread B incurred a page fault and\n             .---------\u003e // sneaks in here as shown below.\n             |           //\n             |           if (pmd_none_or_clear_bad(pmd))\n             |               {\n             |                 if (unlikely(pmd_bad(*pmd)))\n             |                     pmd_clear_bad\n             |                     {\n             |                       pmd_ERROR\n             |                         // Log \"bad pmd ...\" message here.\n             |                       pmd_clear\n             |                         // Clear the page\u0027s PMD entry.\n             |                         // Thread B incremented the map count\n             |                         // in page_add_new_anon_rmap(), but\n             |                         // now the page is no longer mapped\n             |                         // by a PMD entry (-\u003e inconsistency).\n             |                     }\n             |               }\n             |\n             v\n    - Thread B is handling a page fault on virtual address \"B(fault)\" shown\n      in the picture.\n\n    ...\n    do_page_fault\n      __do_page_fault\n        // Acquire the semaphore in shared mode.\n        down_read_trylock(\u0026mm-\u003emmap_sem)\n        ...\n        handle_mm_fault\n          if (pmd_none(*pmd) \u0026\u0026 transparent_hugepage_enabled(vma))\n              // We get here due to the above assumption (PMD entry is zero).\n              do_huge_pmd_anonymous_page\n                alloc_hugepage_vma\n                  // Allocate a new transparent huge page here.\n                ...\n                __do_huge_pmd_anonymous_page\n                  ...\n                  spin_lock(\u0026mm-\u003epage_table_lock)\n                  ...\n                  page_add_new_anon_rmap\n                    // Here we increment the page\u0027s map count (starts at -1).\n                    atomic_set(\u0026page-\u003e_mapcount, 0)\n                  set_pmd_at\n                    // Here we set the page\u0027s PMD entry which will be cleared\n                    // when Thread A calls pmd_clear_bad().\n                  ...\n                  spin_unlock(\u0026mm-\u003epage_table_lock)\n\n    The mmap_sem does not prevent the race because both threads are acquiring\n    it in shared mode (down_read).  Thread B holds the page_table_lock while\n    the page\u0027s map count and PMD table entry are updated.  However, Thread A\n    does not synchronize on that lock.\n\n\u003d\u003d\u003d\u003d\u003d\u003d end quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n[akpm@linux-foundation.org: checkpatch fixes]\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.38+]\nCc: Mark Salter \u003cmsalter@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": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "3a990a52f9f25f45469e272017a31e7a3fda60ed",
      "tree": "366f639d9ce1e907b65caa72bc098df6c4b5a240",
      "parents": [
        "3556485f1595e3964ba539e39ea682acbb835cee",
        "f5cc4eef9987d0b517364d01e290d6438e47ee5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:32:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:32:19 2012 -0700"
      },
      "message": "Merge branch \u0027vm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull munmap/truncate race fixes from Al Viro:\n \"Fixes for racy use of unmap_vmas() on truncate-related codepaths\"\n\n* \u0027vm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  VM: make zap_page_range() callers that act on a single VMA use separate helper\n  VM: make unmap_vmas() return void\n  VM: don\u0027t bother with feeding upper limit to tlb_finish_mmu() in exit_mmap()\n  VM: make zap_page_range() return void\n  VM: can\u0027t go through the inner loop in unmap_vmas() more than once...\n  VM: unmap_page_range() can return void\n"
    },
    {
      "commit": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "b8716614a7cc2fc15ea2a518edd04755fb08d922",
      "tree": "2a8a5d04066b2bd589ba2ebbeb228e2a6a178ec9",
      "parents": [
        "31f6765266417c0d99f0e922fe82848a7c9c2ae9",
        "2dc9b5dbdef09840de852a4f0cc6a9c9eece7220"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:20:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:20:43 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nPull crypto update from Herbert Xu:\n \"* sha512 bug fixes (already in your tree).\n  * SHA224/SHA384 AEAD support in caam.\n  * X86-64 optimised version of Camellia.\n  * Tegra AES support.\n  * Bulk algorithm registration interface to make driver registration easier.\n  * padata race fixes.\n  * Misc fixes.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (31 commits)\n  padata: Fix race on sequence number wrap\n  padata: Fix race in the serialization path\n  crypto: camellia - add assembler implementation for x86_64\n  crypto: camellia - rename camellia.c to camellia_generic.c\n  crypto: camellia - fix checkpatch warnings\n  crypto: camellia - rename camellia module to camellia_generic\n  crypto: tcrypt - add more camellia tests\n  crypto: testmgr - add more camellia test vectors\n  crypto: camellia - simplify key setup and CAMELLIA_ROUNDSM macro\n  crypto: twofish-x86_64/i586 - set alignmask to zero\n  crypto: blowfish-x86_64 - set alignmask to zero\n  crypto: serpent-sse2 - combine ablk_*_init functions\n  crypto: blowfish-x86_64 - use crypto_[un]register_algs\n  crypto: twofish-x86_64-3way - use crypto_[un]register_algs\n  crypto: serpent-sse2 - use crypto_[un]register_algs\n  crypto: serpent-sse2 - remove dead code from serpent_sse2_glue.c::serpent_sse2_init()\n  crypto: twofish-x86 - Remove dead code from twofish_glue_3way.c::init()\n  crypto: In crypto_add_alg(), \u0027exact\u0027 wants to be initialized to 0\n  crypto: caam - fix gcc 4.6 warning\n  crypto: Add bulk algorithm registration interface\n  ...\n"
    },
    {
      "commit": "d15d76448bb58c7832e954b6a8f1e301720b7866",
      "tree": "7891c9e0779f5df33840be9cdba1f0331459e97c",
      "parents": [
        "0c2fe82a9b106f1c03719783134360586d718a69",
        "4992fa1fd425f1934f503ffa96b68e235b89db9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:34:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:34:56 2012 -0700"
      },
      "message": "Merge tag \u0027regulator-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator\n\nPull regulator updates for 3.4 from Mark Brown:\n \"This has been a fairly quiet release from a regulator point of view,\n  the only real framework features added were devm support and a\n  convenience helper for setting up fixed voltage regulators.\n\n  We also added a couple of drivers (but will drop the BQ240022 driver\n  via the arm-soc tree as it\u0027s been replaced by the more generic\n  gpio-regulator driver) and Axel Lin continued his relentless and\n  generally awesome stream of fixes and cleanups.\"\n\n* tag \u0027regulator-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (93 commits)\n  regulator: Fix up a confusing dev_warn when DT lookup fails\n  regulator: Convert tps6507x to set_voltage_sel\n  regulator: Refactor tps6507x to use one tps6507x_pmic_ops for all LDOs and DCDCs\n  regulator: Make s5m8767_get_voltage_register always return correct register\n  regulator: s5m8767: Check pdata-\u003ebuck[2|3|4]_gpiodvs earlier\n  regulator: tps65910: Provide settling time for DCDC voltage change\n  regulator: Add Anatop regulator driver\n  regulator: Simplify implementation of tps65912_get_voltage_dcdc\n  regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx\n  regulator: tps65910: Provide settling time for enabling rails\n  regulator: max8925: Use DIV_ROUND_UP macro\n  regulator: tps65912: Use simple equations to get register address\n  regulator: Fix the logic of tps65910_get_mode\n  regulator: Merge tps65217_pmic_ldo234_ops and tps65217_pmic_dcdc_ops to tps65217_pmic_ops\n  regulator: Use DIV_ROUND_CLOSEST in wm8350_isink_get_current\n  regulator: Use array to store dcdc_range settings for tps65912\n  regulator: Rename s5m8767_convert_voltage to s5m8767_convert_voltage_to_sel\n  regulator: tps6524x: Remove unneeded comment for N_REGULATORS\n  regulator: Rename set_voltage_sel callback function name to *_sel\n  regulator: Fix s5m8767_set_voltage_time_sel calculation value\n  ...\n"
    },
    {
      "commit": "0c2fe82a9b106f1c03719783134360586d718a69",
      "tree": "ec1a18ca49f1e6724ef3a93727f5f73b7df61931",
      "parents": [
        "5f0e685f316a1de6d3af8b23eaf46651faca32ab",
        "f0e88aeb19dac00ed2e09fd4d39ee65f32d5e968"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:33:42 2012 -0700"
      },
      "message": "Merge tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\nPull InfiniBand/RDMA changes for the 3.4 merge window from Roland Dreier:\n \"Nothing big really stands out; by patch count lots of fixes to the\n  mlx4 driver plus some cleanups and fixes to the core and other\n  drivers.\"\n\n* tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (28 commits)\n  mlx4_core: Scale size of MTT table with system RAM\n  mlx4_core: Allow dynamic MTU configuration for IB ports\n  IB/mlx4: Fix info returned when querying IBoE ports\n  IB/mlx4: Fix possible missed completion event\n  mlx4_core: Report thermal error events\n  mlx4_core: Fix one more static exported function\n  IB: Change CQE \"csum_ok\" field to a bit flag\n  RDMA/iwcm: Reject connect requests if cmid is not in LISTEN state\n  RDMA/cxgb3: Don\u0027t pass irq flags to flush_qp()\n  mlx4_core: Get rid of redundant ext_port_cap flags\n  RDMA/ucma: Fix AB-BA deadlock\n  IB/ehca: Fix ilog2() compile failure\n  IB: Use central enum for speed instead of hard-coded values\n  IB/iser: Post initial receive buffers before sending the final login request\n  IB/iser: Free IB connection resources in the proper place\n  IB/srp: Consolidate repetitive sysfs code\n  IB/srp: Use pr_fmt() and pr_err()/pr_warn()\n  IB/core: Fix SDR rates in sysfs\n  mlx4: Enforce device max FMR maps in FMR alloc\n  IB/mlx4: Set bad_wr for invalid send opcode\n  ...\n"
    },
    {
      "commit": "5f0e685f316a1de6d3af8b23eaf46651faca32ab",
      "tree": "af1ed231b7fcfc65b146be59a0aee699aa9f6353",
      "parents": [
        "f8974cb71310a05632aada76be6a27576d61e609",
        "87bf5ab82884c829366914aaa813cc8b07b9fe58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:32:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:32:00 2012 -0700"
      },
      "message": "Merge tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull SPI changes for v3.4 from Grant Likely:\n \"Mostly a bunch of new drivers and driver bug fixes; but this also\n  includes a few patches that create a core message queue infrastructure\n  for the spi subsystem instead of making each driver open code it.\"\n\n* tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (34 commits)\n  spi/fsl-espi: Make sure pm is within 2..32\n  spi/fsl-espi: make the clock computation easier to read\n  spi: sh-hspi: modify write/read method\n  spi: sh-hspi: control spi clock more correctly\n  spi: sh-hspi: convert to using core message queue\n  spi: s3c64xx: Fix build\n  spi: s3c64xx: remove unnecessary callback msg-\u003ecomplete\n  spi: remove redundant variable assignment\n  spi: release lock on error path in spi_pump_messages()\n  spi: Compatibility with direction which is used in samsung DMA operation\n  spi-topcliff-pch: add recovery processing in case wait-event timeout\n  spi-topcliff-pch: supports a spi mode setup and bit order setup by IO control\n  spi-topcliff-pch: Fix issue for transmitting over 4KByte\n  spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device info\n  spi/imx: simplify error handling to free gpios\n  spi: Convert to DEFINE_PCI_DEVICE_TABLE\n  spi: add Broadcom BCM63xx SPI controller driver\n  SPI: add CSR SiRFprimaII SPI controller driver\n  spi-topcliff-pch: fix -Wuninitialized warning\n  spi: Mark spi_register_board_info() __devinit\n  ...\n"
    },
    {
      "commit": "f8974cb71310a05632aada76be6a27576d61e609",
      "tree": "c0b6f59333796c95aa2de9a2eb755e9b68599b71",
      "parents": [
        "c207f3a43194e108dda43dc9a1ce507335cff6b9",
        "0f22dd395fc473cee252b9af50249b8e0f32fde7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:30:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:30:03 2012 -0700"
      },
      "message": "Merge tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull core device tree changes for Linux v3.4 from Grant Likely:\n \"This branch contains a minor documentation addition, a utility\n  function for parsing string properties needed by some of the new ARM\n  platforms, disables dynamic DT code that isn\u0027t used anywhere but on a\n  few PPC machines, and exports DT node compatible data to userspace via\n  UEVENT properties.  Nothing earth shattering here.\"\n\n* tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of: Only compile OF_DYNAMIC on PowerPC pseries and iseries\n  arm/dts: OMAP3: Add omap3evm and am335xevm support\n  drivercore: Output common devicetree information in uevent\n  of: Add of_property_match_string() to find index into a string list\n"
    }
  ],
  "next": "c207f3a43194e108dda43dc9a1ce507335cff6b9"
}
