)]}'
{
  "log": [
    {
      "commit": "efc96737bd82b508794d2b28061a12af4a3f7766",
      "tree": "e9fe4982967b74c0d25a35a2d7f7c62d8be98a47",
      "parents": [
        "1ec454baf1245df4fdb5dae728da3363630ce6de",
        "7e9a49ef542610609144d1afcd516dc3fafac4d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n"
    },
    {
      "commit": "3b7546211d53f600e15ca7867adbf3c085b8ecc9",
      "tree": "9bd7f0eb414bad882d3e7f59e742ac1a21e804c5",
      "parents": [
        "c8f17084fe0fa7fdb5ff21eab9ccce49439ebdb1",
        "156acb166ea9a43d7fcdf9b8051694ce4e91dbfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 08 14:24:18 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 08 14:24:18 2011 -0800"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  PM / OPP: Use ERR_CAST instead of ERR_PTR(PTR_ERR())\n  PM / devfreq: fix private_data\n  Documentation: Fix typo in freezer-subsystem.txt\n  PM / QoS: Set cpu_dma_pm_qos-\u003ename\n"
    },
    {
      "commit": "816af3bb5022c1468b3d826c645ddc2cac45bc97",
      "tree": "1b2a6abc75c00366f71c820ae946f4bdce4d90d9",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Thu Nov 03 14:45:48 2011 +0800"
      },
      "committer": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@wizery.com",
        "time": "Tue Nov 08 09:28:27 2011 +0200"
      },
      "message": "hwspinlock: Don\u0027t return a value in __hwspin_unlock\n\nFix below build warning:\n\n  CC      arch/arm/mach-omap2/hwspinlock.o\nIn file included from arch/arm/mach-omap2/hwspinlock.c:22:\ninclude/linux/hwspinlock.h: In function \u0027__hwspin_unlock\u0027:\ninclude/linux/hwspinlock.h:121: warning: \u0027return\u0027 with a value, in function returning void\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\n"
    },
    {
      "commit": "1a51cfdc4516a6e1f2c1f8a579630a027c30331a",
      "tree": "e5bd9e80887009225f264a1ba84588f733caa8f0",
      "parents": [
        "5f11161675be1351cadb96c83850e20bf5bcdc48"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Nov 07 23:54:53 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Nov 07 23:54:53 2011 +0100"
      },
      "message": "PM / devfreq: fix private_data\n\nThe \"private_date\" field in struct devfreq_dev_status almost certainly\nwants to be \"private_data\"; since there are no in-tree users of this\nfunctionality, now seems like an easy time to make the fix.\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "94956eed14b4b16d401c8ad36d68df0608f968cb",
      "tree": "60e4e1a3c2c44e8f6616db78cd6b22737b2a1f37",
      "parents": [
        "50e696308c3fb18a4a0dae7b3a4d47469149c919",
        "e45a618753d5a8bc9086382f73bbc2d6a3399250"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:55:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:55:33 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)\n  forcedeth: fix a few sparse warnings (variable shadowing)\n  forcedeth: Improve stats counters\n  forcedeth: remove unneeded stats updates\n  forcedeth: Acknowledge only interrupts that are being processed\n  forcedeth: fix race when unloading module\n  MAINTAINERS/rds: update maintainer\n  wanrouter: Remove kernel_lock annotations\n  usbnet: fix oops in usbnet_start_xmit\n  ixgbe: Fix compile for kernel without CONFIG_PCI_IOV defined\n  etherh: Add MAINTAINERS entry for etherh\n  bonding: comparing a u8 with -1 is always false\n  sky2: fix regression on Yukon Optima\n  netlink: clarify attribute length check documentation\n  netlink: validate NLA_MSECS length\n  i825xx:xscale:8390:freescale: Fix Kconfig dependancies\n  macvlan: receive multicast with local address\n  tg3: Update version to 3.121\n  tg3: Eliminate timer race with reset_task\n  tg3: Schedule at most one tg3_reset_task run\n  tg3: Obtain PCI function number from device\n  ...\n"
    },
    {
      "commit": "3c00303206c3a1ccd86579efdc90bc35f140962e",
      "tree": "66170c84b5ddaeb102aea3530517a26657b6ea29",
      "parents": [
        "83dbb15e9cd78a3619e3db36777e2f81d09b2914",
        "efb90582c575084723cc14302c1300cb26c7e01f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:\n  cpuidle: Single/Global registration of idle states\n  cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n  cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n  cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n  ACPI: Fix CONFIG_ACPI_DOCK\u003dn compiler warning\n  ACPI: Export FADT pm_profile integer value to userspace\n  thermal: Prevent polling from happening during system suspend\n  ACPI: Drop ACPI_NO_HARDWARE_INIT\n  ACPI atomicio: Convert width in bits to bytes in __acpi_ioremap_fast()\n  PNPACPI: Simplify disabled resource registration\n  ACPI: Fix possible recursive locking in hwregs.c\n  ACPI: use kstrdup()\n  mrst pmu: update comment\n  tools/power turbostat: less verbose debugging\n"
    },
    {
      "commit": "e0d65113a70f1dc514e625cc4e7a7485a4bf72df",
      "tree": "7320a130dc304623f5cf4b5dd8f67fb1776225ca",
      "parents": [
        "cf5e15fbd72c13977720aa15b7b7e00e1d8fd8f2",
        "48e546b7f281f251893baa40769581fd15f085fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:11:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 09:11:16 2011 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (226 commits)\n  mtd: tests: annotate as DANGEROUS in Kconfig\n  mtd: tests: don\u0027t use mtd0 as a default\n  mtd: clean up usage of MTD_DOCPROBE_ADDRESS\n  jffs2: add compr\u003dlzo and compr\u003dzlib options\n  jffs2: implement mount option parsing and compression overriding\n  mtd: nand: initialize ops.mode\n  mtd: provide an alias for the redboot module name\n  mtd: m25p80: don\u0027t probe device which has status of \u0027disabled\u0027\n  mtd: nand_h1900 never worked\n  mtd: Add DiskOnChip G3 support\n  mtd: m25p80: add EON flash EN25Q32B into spi flash id table\n  mtd: mark block device queue as non-rotational\n  mtd: r852: make r852_pm_ops static\n  mtd: m25p80: add support for at25df321a spi data flash\n  mtd: mxc_nand: preset_v1_v2: unlock all NAND flash blocks\n  mtd: nand: switch `check_pattern()\u0027 to standard `memcmp()\u0027\n  mtd: nand: invalidate cache on unaligned reads\n  mtd: nand: do not scan bad blocks with NAND_BBT_NO_OOB set\n  mtd: nand: wait to set BBT version\n  mtd: nand: scrub BBT on ECC errors\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-at91/board-usb-a9260.c\n\tMerged into board-usb-a926x.c\n - drivers/mtd/maps/lantiq-flash.c\n\tadd_mtd_partitions -\u003e mtd_device_register vs changed to use\n\tmtd_device_parse_register.\n"
    },
    {
      "commit": "b32fc0a0629bf5894b35f33554c118aacfd0d1e2",
      "tree": "5d6aaa9a35b7fa63681adab91da3b3dec5276f84",
      "parents": [
        "403299a8515c56db58454c57712f4dc96d6c1fde",
        "97ce2c88f9ad42e3c60a9beb9fca87abf3639faa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 20:20:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 20:20:46 2011 -0800"
      },
      "message": "Merge branch \u0027upstream/jump-label-noearly\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen\n\n* \u0027upstream/jump-label-noearly\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:\n  jump-label: initialize jump-label subsystem much earlier\n  x86/jump_label: add arch_jump_label_transform_static()\n  s390/jump-label: add arch_jump_label_transform_static()\n  jump_label: add arch_jump_label_transform_static() to optimise non-live code updates\n  sparc/jump_label: drop arch_jump_label_text_poke_early()\n  x86/jump_label: drop arch_jump_label_text_poke_early()\n  jump_label: if a key has already been initialized, don\u0027t nop it out\n  stop_machine: make stop_machine safe and efficient to call early\n  jump_label: use proper atomic_t initializer\n\nConflicts:\n - arch/x86/kernel/jump_label.c\n\tAdded __init_or_module to arch_jump_label_text_poke_early vs\n\tremoval of that function entirely\n - kernel/stop_machine.c\n\tsame patch (\"stop_machine: make stop_machine safe and efficient\n\tto call early\") merged twice, with whitespace fix in one version\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "46bcfad7a819bd17ac4e831b04405152d59784ab",
      "tree": "20041e788154d103edff2699f88d4a30320e3ee2",
      "parents": [
        "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:42 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:58 2011 -0500"
      },
      "message": "cpuidle: Single/Global registration of idle states\n\nThis patch makes the cpuidle_states structure global (single copy)\ninstead of per-cpu. The statistics needed on per-cpu basis\nby the governor are kept per-cpu. This simplifies the cpuidle\nsubsystem as state registration is done by single cpu only.\nHaving single copy of cpuidle_states saves memory. Rare case\nof asymmetric C-states can be handled within the cpuidle driver\nand architectures such as POWER do not have asymmetric C-states.\n\nHaving single/global registration of all the idle states,\ndynamic C-state transitions on x86 are handled by\nthe boot cpu. Here, the boot cpu  would disable all the devices,\nre-populate the states and later enable all the devices,\nirrespective of the cpu that would receive the notification first.\n\nReference:\nhttps://lkml.org/lkml/2011/4/25/83\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2",
      "tree": "189e5aab466995128c5a9d5a2a4075a5db530674",
      "parents": [
        "b25edc42bfb9602f0503474b2c94701d5536ce60"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:33 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:49 2011 -0500"
      },
      "message": "cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n\nThis is the first step towards global registration of cpuidle\nstates. The statistics used primarily by the governor are per-cpu\nand have to be split from rest of the fields inside cpuidle_state,\nwhich would be made global i.e. single copy. The driver_data field\nis also per-cpu and moved.\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b25edc42bfb9602f0503474b2c94701d5536ce60",
      "tree": "5d3b8634606daa99fe5dc86ade108400ecf3a5fd",
      "parents": [
        "e978aa7d7d57d04eb5f88a7507c4fb98577def77"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:24 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:43 2011 -0500"
      },
      "message": "cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n\nThe cpuidle_device-\u003eprepare() mechanism causes updates to the\ncpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE\nto tell the governor not to chose a state on a per-cpu basis at\nrun-time. State demotion is now handled by the driver and it returns\nthe actual state entered. Hence, this mechanism is not required.\nAlso this removes per-cpu flags from cpuidle_state enabling\nit to be made global.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e978aa7d7d57d04eb5f88a7507c4fb98577def77",
      "tree": "d6d6dfe1dba4d4749c7eafe348351aa499c3c5eb",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:09 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:30 2011 -0500"
      },
      "message": "cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n\nCpuidle governor only suggests the state to enter using the\ngovernor-\u003eselect() interface, but allows the low level driver to\noverride the recommended state. The actual entered state\nmay be different because of software or hardware demotion. Software\ndemotion is done by the back-end cpuidle driver and can be accounted\ncorrectly. Current cpuidle code uses last_state field to capture the\nactual state entered and based on that updates the statistics for the\nstate entered.\n\nIdeally the driver enter routine should update the counters,\nand it should return the state actually entered rather than the time\nspent there. The generic cpuidle code should simply handle where\nthe counters live in the sysfs namespace, not updating the counters.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d4a2e61f0b7a7b5b9e321e776a1e874c02e847e4",
      "tree": "d90b71a99cb82809d56f9798f59d175b57562803",
      "parents": [
        "0e4c9dc2f2e0fb6d3838eba34382fc6d2d1c381c",
        "2449b8ba0745327c5fa49a8d9acffe03b2eded69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 17:28:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 17:28:32 2011 -0800"
      },
      "message": "Merge git://github.com/rustyrussell/linux\n\n* git://github.com/rustyrussell/linux:\n  module,bug: Add TAINT_OOT_MODULE flag for modules not built in-tree\n  module: Enable dynamic debugging regardless of taint\n"
    },
    {
      "commit": "1197ab2942f920f261952de0c392ac749a35796b",
      "tree": "4922ccc8a6061e5ece6ac7420001f3bf4524ea92",
      "parents": [
        "ec773e99ab4abce07b1ae23117179c2861831964",
        "96cc017c5b7ec095ef047d3c1952b6b6bbf98943"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 17:12:03 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 17:12:03 2011 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (106 commits)\n  powerpc/p3060qds: Add support for P3060QDS board\n  powerpc/83xx: Add shutdown request support to MCU handling on MPC8349 MITX\n  powerpc/85xx: Make kexec to interate over online cpus\n  powerpc/fsl_booke: Fix comment in head_fsl_booke.S\n  powerpc/85xx: issue 15 EOI after core reset for FSL CoreNet devices\n  powerpc/8xxx: Fix interrupt handling in MPC8xxx GPIO driver\n  powerpc/85xx: Add \u0027fsl,pq3-gpio\u0027 compatiable for GPIO driver\n  powerpc/86xx: Correct Gianfar support for GE boards\n  powerpc/cpm: Clear muram before it is in use.\n  drivers/virt: add ioctl for 32-bit compat on 64-bit to fsl-hv-manager\n  powerpc/fsl_msi: add support for \"msi-address-64\" property\n  powerpc/85xx: Setup secondary cores PIR with hard SMP id\n  powerpc/fsl-booke: Fix settlbcam for 64-bit\n  powerpc/85xx: Adding DCSR node to dtsi device trees\n  powerpc/85xx: clean up FPGA device tree nodes for Freecsale QorIQ boards\n  powerpc/85xx: fix PHYS_64BIT selection for P1022DS\n  powerpc/fsl-booke: Fix setup_initial_memory_limit to not blindly map\n  powerpc: respect mem\u003d setting for early memory limit setup\n  powerpc: Update corenet64_smp_defconfig\n  powerpc: Update mpc85xx/corenet 32-bit defconfigs\n  ...\n\nFix up trivial conflicts in:\n - arch/powerpc/configs/40x/hcu4_defconfig\n\tremoved stale file, edited elsewhere\n - arch/powerpc/include/asm/udbg.h, arch/powerpc/kernel/udbg.c:\n\tadded opal and gelic drivers vs added ePAPR driver\n - drivers/tty/serial/8250.c\n\tmoved UPIO_TSI to powerpc vs removed UPIO_DWAPB support\n"
    },
    {
      "commit": "2449b8ba0745327c5fa49a8d9acffe03b2eded69",
      "tree": "48e11288635dcfc8cdb342f3ba00fa2a2a650aa8",
      "parents": [
        "1cd0d6c3021c8d76641b37203f504634b87fbabc"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Mon Oct 24 15:12:28 2011 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 07 07:54:42 2011 +1030"
      },
      "message": "module,bug: Add TAINT_OOT_MODULE flag for modules not built in-tree\n\nUse of the GPL or a compatible licence doesn\u0027t necessarily make the code\nany good.  We already consider staging modules to be suspect, and this\nshould also be true for out-of-tree modules which may receive very\nlittle review.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nReviewed-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (patched oops-tracing.txt)\n"
    },
    {
      "commit": "8110efc64c4790cd1bf7e30f080e5ba3faa7cb85",
      "tree": "708c2a1ef6bebce8eda9676c554bea366547678e",
      "parents": [
        "06d8eb1b7d1eb34c76538dab791bc14136ebbc8f",
        "d6cc76856d353a3a9c43bead33210b9216dce332"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 05 17:54:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 05 17:54:18 2011 -0700"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  PM / Freezer: Revert 27920651fe \"PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too\"\n  PM / Freezer: Reimplement wait_event_freezekillable using freezer_do_not_count/freezer_count\n  USB: Update last_busy time after autosuspend fails\n  PM / Runtime: Automatically retry failed autosuspends\n  PM / QoS: Remove redundant check\n  PM / OPP: Fix build when CONFIG_PM_OPP is not set\n  PM / Runtime: Fix runtime accounting calculation error\n  PM / Sleep: Update freezer documentation\n  PM / Sleep: Remove unused symbol \u0027suspend_cpu_hotplug\u0027\n  PM / Sleep: Fix race between CPU hotplug and freezer\n  ACPI / PM: Add Sony VPCEB17FX to nonvs blacklist\n"
    },
    {
      "commit": "cd3f07d1e6e59fade92a8edaff9315cc534199cf",
      "tree": "a2f30bccdfad1826a81c098c6766c2a4345fc171",
      "parents": [
        "dc822e57ee05856291a8c9324d2309076ee5f5e2",
        "f7c9c6bb14f3104608a3a83cadea10a6943d2804"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 05 15:32:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 05 15:32:53 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (45 commits)\n  [SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev\n  [SCSI] scsi_dh_alua: Fix the time inteval for alua rtpg commands\n  [SCSI] scsi_transport_iscsi: Fix documentation os parameter\n  [SCSI] mv_sas: OCZ RevoDrive3 \u0026 zDrive R4 support\n  [SCSI] libfc: improve flogi retries to avoid lport stuck\n  [SCSI] libfc: avoid exchanges collision during lport reset\n  [SCSI] libfc: fix checking FC_TYPE_BLS\n  [SCSI] edd: Treat \"XPRS\" host bus type the same as \"PCI\"\n  [SCSI] isci: overriding max_concurr_spinup oem parameter by max(oem, user)\n  [SCSI] isci: revert bcn filtering\n  [SCSI] isci: Fix hard reset timeout conditions.\n  [SCSI] isci: No need to manage the pending reset bit on pending requests.\n  [SCSI] isci: Remove redundant isci_request.ttype field.\n  [SCSI] isci: Fix task management for SMP, SATA and on dev remove.\n  [SCSI] isci: No task_done callbacks in error handler paths.\n  [SCSI] isci: Handle task request timeouts correctly.\n  [SCSI] isci: Fix tag leak in tasks and terminated requests.\n  [SCSI] isci: Immediately fail I/O to removed devices.\n  [SCSI] isci: Lookup device references through requests in completions.\n  [SCSI] ipr: add definitions for additional adapter\n  ...\n"
    },
    {
      "commit": "fba9569924e06da076cb2ad12474bbd82d69f54d",
      "tree": "f0b7d9c82f8dd90f0dc757a4c00afc0872fc1484",
      "parents": [
        "3d0a8d10cfb4cc3d1877c29a866ee7d8a46aa2fa",
        "4598fc2c94b68740e0269db03c98a1e7ad5af773"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 18:02:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 18:02:25 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma\n\n* \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma: (63 commits)\n  dmaengine: mid_dma: mask_peripheral_interrupt only when dmac is idle\n  dmaengine/ep93xx_dma: add module.h include\n  pch_dma: Reduce wasting memory\n  pch_dma: Fix suspend issue\n  dma/timberdale: free_irq() on an error path\n  dma: shdma: transfer based runtime PM\n  dmaengine: shdma: protect against the IRQ handler\n  dmaengine i.MX DMA/SDMA: add missing include of linux/module.h\n  dmaengine: delete redundant chan_id and chancnt initialization in dma drivers\n  dmaengine/amba-pl08x: Check txd-\u003ellis_va before freeing dma_pool\n  dmaengine/amba-pl08x: Add support for sg len greater than one for slave transfers\n  serial: sh-sci: don\u0027t filter on DMA device, use only channel ID\n  ARM: SAMSUNG: Remove Samsung specific enum type for dma direction\n  ASoC: Samsung: Update DMA interface\n  spi/s3c64xx: Merge dma control code\n  spi/s3c64xx: Add support DMA engine API\n  ARM: SAMSUNG: Remove S3C-PL330-DMA driver\n  ARM: S5P64X0: Use generic DMA PL330 driver\n  ARM: S5PC100: Use generic DMA PL330 driver\n  ARM: S5PV210: Use generic DMA PL330 driver\n  ...\n\nFix up fairly trivial conflicts in\n - arch/arm/mach-exynos4/{Kconfig,clock.c}\n - arch/arm/mach-s5p64x0/dma.c\n"
    },
    {
      "commit": "3d0a8d10cfb4cc3d1877c29a866ee7d8a46aa2fa",
      "tree": "11a85044d1472f5972ae47ce10a2f446ad981e9f",
      "parents": [
        "b4fdcb02f1e39c27058a885905bd0277370ba441",
        "a0eda62552eba4e1f92d5354bb65c68fb6b45f87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:22:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:22:14 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/drivers\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/drivers\u0027 of git://git.kernel.dk/linux-block: (30 commits)\n  virtio-blk: use ida to allocate disk index\n  hpsa: add small delay when using PCI Power Management to reset for kump\n  cciss: add small delay when using PCI Power Management to reset for kump\n  xen/blkback: Fix two races in the handling of barrier requests.\n  xen/blkback: Check for proper operation.\n  xen/blkback: Fix the inhibition to map pages when discarding sector ranges.\n  xen/blkback: Report VBD_WSECT (wr_sect) properly.\n  xen/blkback: Support \u0027feature-barrier\u0027 aka old-style BARRIER requests.\n  xen-blkfront: plug device number leak in xlblk_init() error path\n  xen-blkfront: If no barrier or flush is supported, use invalid operation.\n  xen-blkback: use kzalloc() in favor of kmalloc()+memset()\n  xen-blkback: fixed indentation and comments\n  xen-blkfront: fix a deadlock while handling discard response\n  xen-blkfront: Handle discard requests.\n  xen-blkback: Implement discard requests (\u0027feature-discard\u0027)\n  xen-blkfront: add BLKIF_OP_DISCARD and discard request struct\n  drivers/block/loop.c: remove unnecessary bdev argument from loop_clr_fd()\n  drivers/block/loop.c: emit uevent on auto release\n  drivers/block/cpqarray.c: use pci_dev-\u003erevision\n  loop: always allow userspace partitions and optionally support automatic scanning\n  ...\n\nFic up trivial header file includsion conflict in drivers/block/loop.c\n"
    },
    {
      "commit": "b4fdcb02f1e39c27058a885905bd0277370ba441",
      "tree": "fd4cfd1994f21f44afe5e7904681fb5ac09f81b8",
      "parents": [
        "044595d4e448305fbaec472eb7d22636d24e7d8c",
        "6dd9ad7df2019b1e33a372a501907db293ebcd0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block: (29 commits)\n  block: don\u0027t call blk_drain_queue() if elevator is not up\n  blk-throttle: use queue_is_locked() instead of lockdep_is_held()\n  blk-throttle: Take blkcg-\u003elock while traversing blkcg-\u003epolicy_list\n  blk-throttle: Free up policy node associated with deleted rule\n  block: warn if tag is greater than real_max_depth.\n  block: make gendisk hold a reference to its queue\n  blk-flush: move the queue kick into\n  blk-flush: fix invalid BUG_ON in blk_insert_flush\n  block: Remove the control of complete cpu from bio.\n  block: fix a typo in the blk-cgroup.h file\n  block: initialize the bounce pool if high memory may be added later\n  block: fix request_queue lifetime handling by making blk_queue_cleanup() properly shutdown\n  block: drop @tsk from attempt_plug_merge() and explain sync rules\n  block: make get_request[_wait]() fail if queue is dead\n  block: reorganize throtl_get_tg() and blk_throtl_bio()\n  block: reorganize queue draining\n  block: drop unnecessary blk_get/put_queue() in scsi_cmd_ioctl() and blk_get_tg()\n  block: pass around REQ_* flags instead of broken down booleans during request alloc/free\n  block: move blk_throtl prototypes to block/blk.h\n  block: fix genhd refcounting in blkio_policy_parse_and_set()\n  ...\n\nFix up trivial conflicts due to \"mddev_t\" -\u003e \"struct mddev\" conversion\nand making the request functions be of type \"void\" instead of \"int\" in\n - drivers/md/{faulty.c,linear.c,md.c,md.h,multipath.c,raid0.c,raid1.c,raid10.c,raid5.c}\n - drivers/staging/zram/zram_drv.c\n"
    },
    {
      "commit": "589665f5a6008dbce1d0af2cb93e94a80bf78151",
      "tree": "4f4ec1949dd233a8474c2cb477da3637166b6e75",
      "parents": [
        "27d240fdae2808d727ad9ce48ec029731a457524"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Nov 04 08:21:38 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 04 18:37:23 2011 -0400"
      },
      "message": "bonding: comparing a u8 with -1 is always false\n\nslave-\u003eduplex is a u8 type so the in bond_info_show_slave() when we\ncheck \"if (slave-\u003eduplex \u003d\u003d -1)\", it\u0027s always false.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f35c4abd7f0294166a5e0ab0401fe7949b33034",
      "tree": "e8af20e67b4d08b1b819b7917104468df85210f8",
      "parents": [
        "b2c0a863e14676fa5760c6d828fd373288e2f64a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Nov 03 16:07:49 2011 -0700"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:15 2011 +0100"
      },
      "message": "PM / Freezer: Reimplement wait_event_freezekillable using freezer_do_not_count/freezer_count\n\nCommit 27920651fe \"PM / Freezer: Make fake_signal_wake_up() wake\nTASK_KILLABLE tasks too\" updated fake_signal_wake_up() used by freezer\nto wake up KILLABLE tasks.  Sending unsolicited wakeups to tasks in\nkillable sleep is dangerous as there are code paths which depend on\ntasks not waking up spuriously from KILLABLE sleep.\n\nFor example. sys_read() or page can sleep in TASK_KILLABLE assuming\nthat wait/down/whatever _killable can only fail if we can not return\nto the usermode.  TASK_TRACED is another obvious example.\n\nThe offending commit was to resolve freezer hang during system PM\noperations caused by KILLABLE sleeps in network filesystems.\nwait_event_freezekillable(), which depends on the spurious KILLABLE\nwakeup, was added by f06ac72e92 \"cifs, freezer: add\nwait_event_freezekillable and have cifs use it\" to be used to\nimplement killable \u0026 freezable sleeps in network filesystems.\n\nTo prepare for reverting of 27920651fe, this patch reimplements\nwait_event_freezekillable() using freezer_do_not_count/freezer_count()\nso that it doesn\u0027t depend on the spurious KILLABLE wakeup.  This isn\u0027t\nvery nice but should do for now.\n\n[tj: Refreshed patch to apply to linus/master and updated commit\n    description on Rafael\u0027s request.]\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a96d69d1b02c4a526bd8c07e0cb10c129025c88c",
      "tree": "bc4a0258ae5d48b541fd25d40c3594e050dd5ac9",
      "parents": [
        "def0c0a37d02820497fcd5a74b6cc93dbce5dc06"
      ],
      "author": {
        "name": "Tony Lindgren",
        "email": "tony@atomide.com",
        "time": "Thu Nov 03 10:12:27 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:13 2011 +0100"
      },
      "message": "PM / OPP: Fix build when CONFIG_PM_OPP is not set\n\nCommit 03ca370fbf7b76d6d002380dbdc2cdc2319f9c80 (PM / OPP: Add\nOPP availability change notifier) does not compile if CONFIG_PM_OPP\nis not set:\n\narch/arm/plat-omap/omap-pm-noop.o: In function `opp_get_notifier\u0027:\ninclude/linux/opp.h:103: multiple definition of `opp_get_notifier\u0027\ninclude/linux/opp.h:103: first defined here\n\nAlso fix incorrect comment.\n\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4e71c9545b9afaa47f178b7ffda0bc630c8ad2c7",
      "tree": "bec7b57b17d9de21829d5d041cf6cf2389f9e544",
      "parents": [
        "79cfbdfa87e84992d509e6c1648a18e1d7e68c20"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu Nov 03 00:59:40 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:09 2011 +0100"
      },
      "message": "PM / Sleep: Remove unused symbol \u0027suspend_cpu_hotplug\u0027\n\nRemove the suspend_cpu_hotplug declaration, which doesn\u0027t correspond\nto an existing variable.\n\n[rjw: Added the changelog.]\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6736c047995c560b73f3860095c631456b0bbea8",
      "tree": "1ef4d2ab9d7d2f2cd3fe26a3e9135fb312e81b85",
      "parents": [
        "16dfd1faed8c5235d9a7c190b91b6d97d6cd3272",
        "6070295efc90d1093b2031c43380bd7d9673c802"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 12:27:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 12:27:43 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (25 commits)\n  nfs: set vs_hidden on nfs4_callback_version4 (try #2)\n  pnfs-obj: Support for RAID5 read-4-write interface.\n  pnfs-obj: move to ore 03: Remove old raid engine\n  pnfs-obj: move to ore 02: move to ORE\n  pnfs-obj: move to ore 01: ore_layout \u0026 ore_components\n  pnfs-obj: Rename objlayout_io_state \u003d\u003e objlayout_io_res\n  pnfs-obj: Get rid of objlayout_{alloc,free}_io_state\n  pnfs-obj: Return PNFS_NOT_ATTEMPTED in case of read/write_pagelist\n  pnfs-obj: Remove redundant EOF from objlayout_io_state\n  nfs: Remove unused variable from write.c\n  nfs: Fix unused variable warning from file.c\n  NFS: Remove no-op less-than-zero checks on unsigned variables.\n  NFS: Clean up nfs4_xdr_dec_secinfo()\n  NFS: Fix documenting comment for nfs_create_request()\n  NFS4: fix cb_recallany decode error\n  nfs4: serialize layoutcommit\n  SUNRPC: remove rpcbind clients destruction on module cleanup\n  SUNRPC: remove rpcbind clients creation during service registering\n  NFSd: call svc rpcbind cleanup explicitly\n  SUNRPC: cleanup service destruction\n  ...\n"
    },
    {
      "commit": "1046a2c428bedd64c960dcfd0c57cc69a82fea2f",
      "tree": "d34b83e0ac61b51305cece031f7ff49579e3fe76",
      "parents": [
        "46e85f5f1c2a1d106c1ec0fa2a06280276b8e052",
        "b3f4e1eba45eda5d1213810ef3bc53e5247df2df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 07:58:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 07:58:25 2011 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (144 commits)\n  [media] saa7134.h: Suppress compiler warnings when CONFIG_VIDEO_SAA7134_RC is not set\n  [media] it913x [VER 1.07] Support for single ITE 9135 devices\n  [media] Support for Terratec G1\n  [media] cx25821: off by one in cx25821_vidioc_s_input()\n  [media] media: tea5764: reconcile Kconfig symbol and macro\n  [media] omap_vout: Add poll() support\n  [media] omap3isp: preview: Add crop support on the sink pad\n  [media] omap3isp: preview: Rename min/max input/output sizes defines\n  [media] omap3isp: preview: Remove horizontal averager support\n  [media] omap3isp: Report the ISP revision through the media controller API\n  [media] omap3isp: ccdc: remove redundant operation\n  [media] omap3isp: Fix memory leaks in initialization error paths\n  [media] omap3isp: Add missing mutex_destroy() calls\n  [media] omap3isp: Move *_init_entities() functions to the init/cleanup section\n  [media] omap3isp: Move media_entity_cleanup() from unregister() to cleanup()\n  [media] MFC: Change MFC firmware binary name\n  [media] vb2: add vb2_get_unmapped_area in vb2 core\n  [media] v4l: Add v4l2 subdev driver for S5K6AAFX sensor\n  [media] v4l: Add AUTO option for the V4L2_CID_POWER_LINE_FREQUENCY control\n  [media] media: ov6650: stylistic improvements\n  ...\n"
    },
    {
      "commit": "6b1506c66809ddf6afd17e330db2999c878b5d90",
      "tree": "eb93535fcc3e568ffabd5400b019463633ea2c22",
      "parents": [
        "1a67a573b8d9f02211f36fbab50f6265dc49384a",
        "50e07f888cb24b55e0d8283f631907794dd757c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 07:49:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 07:49:29 2011 -0700"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  dt: add empty of_machine_is_compatible\n  ahci: add DT binding for Calxeda AHCI controller\n  dt/platform: minor cleanup\n  dt: add empty of_alias_get_id() for non-dt builds\n"
    },
    {
      "commit": "50e07f888cb24b55e0d8283f631907794dd757c2",
      "tree": "a57533a86c62ae90ffc600c4443fcbd8f7908c1e",
      "parents": [
        "3983138c017b6aeab6ce3dbb1e9afbe80bdac496"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Tue Oct 25 14:01:26 2011 +0200"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Nov 04 00:12:51 2011 -0400"
      },
      "message": "dt: add empty of_machine_is_compatible\n\nThe patch adds an empty function for non-dt build, so that\ndrivers migrating to dt can save some \u0027#ifdef CONFIG_OF\u0027.\n\nv3: New patch\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "6dbbd92522a13bcd5003829cbed30bc38a3d0362",
      "tree": "b486642d7392b81d89f159d65fd556a432e78d16",
      "parents": [
        "d6748066ad0e8b2514545998f8367ebb3906f299",
        "e1cfb67acd5e890bbad695000d2c997bfb7f1756"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 21:05:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 21:05:43 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (45 commits)\n  be2net: Add detect UE feature for Lancer\n  be2net: Prevent CQ full condition for Lancer\n  be2net: Fix disabling multicast promiscous mode\n  be2net: Fix endian issue in RX filter command\n  af_packet: de-inline some helper functions\n  MAINTAINERS: Add can-gw include to maintained files\n  net: Add back alignment for size for __alloc_skb\n  net: add missing bh_unlock_sock() calls\n  l2tp: fix race in l2tp_recv_dequeue()\n  ixgbevf: Update release version\n  ixgbe: DCB, return max for IEEE traffic classes\n  ixgbe: fix reading of the buffer returned by the firmware\n  ixgbe: Fix compiler warnings\n  ixgbe: fix smatch splat due to missing NULL check\n  ixgbe: fix disabling of Tx laser at probe\n  ixgbe: Fix link issues caused by a reset while interface is down\n  igb: Fix for I347AT4 PHY cable length unit detection\n  e100: make sure vlan support isn\u0027t advertised on old adapters\n  e1000e: demote a debugging WARN to a debug log message\n  net: fix typo in drivers/net/ethernet/xilinx/ll_temac_main.c\n  ...\n"
    },
    {
      "commit": "3983138c017b6aeab6ce3dbb1e9afbe80bdac496",
      "tree": "9fdcddfdb8ada91504c90e2551ba6a565ade7325",
      "parents": [
        "ed5f886d16369fed5a69d96b8e85777c47206de1",
        "02aac316abf436a7529d46a71f7083f9f9ef4b49"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Nov 03 23:32:20 2011 -0400"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Nov 03 23:32:20 2011 -0400"
      },
      "message": "Merge branch \u0027for-grant\u0027 of git://sources.calxeda.com/kernel/linux into devicetree/merge\n"
    },
    {
      "commit": "d26a6635b24210791cf4b71fd861738270c8cc3c",
      "tree": "2f5a40c24c58a456bf6882b372f8d7620cb9d9b0",
      "parents": [
        "2e56d933fd967a72d5ee4250e1cb6f9de29d936f"
      ],
      "author": {
        "name": "Sylwester Nawrocki",
        "email": "s.nawrocki@samsung.com",
        "time": "Sun Sep 04 19:08:54 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Nov 03 18:29:09 2011 -0200"
      },
      "message": "[media] v4l: Add AUTO option for the V4L2_CID_POWER_LINE_FREQUENCY control\n\nV4L2_CID_POWER_LINE_FREQUENCY control allows applications to instruct\na driver what is the power line frequency so an appropriate filter\ncan be used by the device to cancel flicker by compensating the light\nintensity ripple. Currently in the menu we have entries for 50 Hz and\n60 Hz and for entirely disabling the anti-flicker filter.\nHowever some devices are capable of automatically detecting the\nfrequency, so add V4L2_CID_POWER_LINE_FREQUENCY_AUTO entry for them.\n\nSigned-off-by: Sylwester Nawrocki \u003cs.nawrocki@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "09362ec25c3f42d00a4008d0622bfbca68e540f5",
      "tree": "8f9f27d2edad2647df00db89a70d180398b45bc9",
      "parents": [
        "0934d94a52423fac35922c2e29d72a43db7ddd48"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed Sep 07 18:07:23 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Nov 03 18:28:57 2011 -0200"
      },
      "message": "[media] V4L: docbook documentation for struct v4l2_create_buffers\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "2150158b31a3290cc883cf6dea4f5d6803b6b811",
      "tree": "1c06a0fa4688a14df0ed9a630656d7188fb4420a",
      "parents": [
        "ebc087d0905c41d7fe450866eb1afd1f661cba76"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed Sep 28 11:34:06 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Nov 03 18:28:24 2011 -0200"
      },
      "message": "[media] V4L: add two new ioctl()s for multi-size videobuffer management\n\nA possibility to preallocate and initialise buffers of different sizes\nin V4L2 is required for an efficient implementation of a snapshot\nmode. This patch adds two new ioctl()s: VIDIOC_CREATE_BUFS and\nVIDIOC_PREPARE_BUF and defines respective data structures.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a0a4194c943bc64dd7b6e26cccb036cb26b81363",
      "tree": "4282f0dd573344d10f69616eb05868b5cd563cc1",
      "parents": [
        "cf0223503e6198292cdcc864e01eeb5fe7490752",
        "b958f7a7cbdfbf59ba61de7ebb9c59b0ee3a7967"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 09:40:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 09:40:51 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.infradead.org/users/sameo/mfd-2.6\n\n* \u0027for-next\u0027 of git://git.infradead.org/users/sameo/mfd-2.6: (80 commits)\n  mfd: Fix missing abx500 header file updates\n  mfd: Add missing \u003clinux/io.h\u003e include to intel_msic\n  x86, mrst: add platform support for MSIC MFD driver\n  mfd: Expose TurnOnStatus in ab8500 sysfs\n  mfd: Remove support for early drop ab8500 chip\n  mfd: Add support for ab8500 v3.3\n  mfd: Add ab8500 interrupt disable hook\n  mfd: Convert db8500-prcmu panic() into pr_crit()\n  mfd: Refactor db8500-prcmu request_clock() function\n  mfd: Rename db8500-prcmu init function\n  mfd: Fix db5500-prcmu defines\n  mfd: db8500-prcmu voltage domain consumers additions\n  mfd: db8500-prcmu reset code retrieval\n  mfd: db8500-prcmu tweak for modem wakeup\n  mfd: Add db8500-pcmu watchdog accessor functions for watchdog\n  mfd: hwacc power state db8500-prcmu accessor\n  mfd: Add db8500-prcmu accessors for PLL and SGA clock\n  mfd: Move to the new db500 PRCMU API\n  mfd: Create a common interface for dbx500 PRCMU drivers\n  mfd: Initialize DB8500 PRCMU regs\n  ...\n\nFix up trivial conflicts in\n\tarch/arm/mach-imx/mach-mx31moboard.c\n\tarch/arm/mach-omap2/board-omap3beagle.c\n\tarch/arm/mach-u300/include/mach/irqs.h\n\tdrivers/mfd/wm831x-spi.c\n"
    },
    {
      "commit": "cf0223503e6198292cdcc864e01eeb5fe7490752",
      "tree": "5ed99ae5fc7a67ec19df19f4b46b0c04d97db174",
      "parents": [
        "3f8ddb032afa729d4bad1bf2965d3ec068de6b72",
        "e857bfd4604a3a4edaf9c7038db880d9f78aecbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 08:22:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 08:22:06 2011 -0700"
      },
      "message": "Merge branch \u0027sh-latest\u0027 of git://github.com/pmundt/linux-sh\n\n* \u0027sh-latest\u0027 of git://github.com/pmundt/linux-sh:\n  sh: Add default uImage rule for sh7757lcr\n  sh: modify the asm/sh_eth.h to linux/sh_eth.h in sh7757lcr\n  sh: userimask.c needs linux/stat.h\n  sh: pfc: Add GPIO IRQ support\n  sh: modify the asm/sh_eth.h to linux/sh_eth.h in some boards\n  sh: pfc: Remove unused gpio_in_use member\n  sh: add parameters for EHCI and RIIC in clock-sh7757.c\n  sh: kexec: Add PHYSICAL_START\n  SH: irq: Remove IRQF_DISABLED\n  sh: pfc: get_config_reg() shift clean up\n  sh: intc: Add IRQ trigger bit field check\n  sh: drop unused Kconfig symbol\n  sh: Fix implicit declaration of function numa_node_id\n  sh: kexec: Register crashk_res\n  sh: ecovec: add renesas_usbhs DMAEngine support\n"
    },
    {
      "commit": "3f8ddb032afa729d4bad1bf2965d3ec068de6b72",
      "tree": "f2467d1160ee8cd4016fb77c09d0f1f4c768e5fe",
      "parents": [
        "30307c69d59b14723fbf8a524847b302388c702d",
        "8b37fcfc9b3400b647748783a2cafff67793e0ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 08:05:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 03 08:05:35 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock:\n  hwspinlock: add MAINTAINERS entries\n  hwspinlock/omap: omap_hwspinlock_remove should be __devexit\n  hwspinlock/u8500: add hwspinlock driver\n  hwspinlock/core: register a bank of hwspinlocks in a single API call\n  hwspinlock/core: remove stubs for register/unregister\n  hwspinlock/core: use a mutex to protect the radix tree\n  hwspinlock/core/omap: fix id issues on multiple hwspinlock devices\n  hwspinlock/omap: simplify allocation scheme\n  hwspinlock/core: simplify \u0027owner\u0027 handling\n  hwspinlock/core: simplify Kconfig\n\nFix up trivial conflicts (addition of omap_hwspinlock_pdata, removal of\nomap_spinlock_latency) in arch/arm/mach-omap2/hwspinlock.c\n\nAlso, do an \"evil merge\" to fix a compile error in omap_hsmmc.c which\nfor some reason was reported in the same email thread as the \"please\npull hwspinlock changes\".\n"
    },
    {
      "commit": "31cbecb4ab538f433145bc5a46f3bea9b9627031",
      "tree": "d6206d42dea7298f7ef05fd1f7bf474245f0d43a",
      "parents": [
        "2b72c9ccd22c4a3299e5a358dcd639fb253730f4",
        "278c023a99b0d6b471d0f4a79835c703482e29ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Nov 02 23:56:40 2011 -0400"
      },
      "message": "Merge branch \u0027osd-devel\u0027 into nfs-for-next\n"
    },
    {
      "commit": "43672a0784707d795556b1f93925da8b8e797d03",
      "tree": "5c92aabd211281300f89fc2e69e9ee7e58bcc449",
      "parents": [
        "2380078cdb7e6d520e33dcf834e0be979d542e48",
        "2e727c3ca1beff05f27b6207a795790f222bf8d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 17:02:37 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm:\n  dm: raid fix device status indicator when array initializing\n  dm log userspace: add log device dependency\n  dm log userspace: fix comment hyphens\n  dm: add thin provisioning target\n  dm: add persistent data library\n  dm: add bufio\n  dm: export dm get md\n  dm table: add immutable feature\n  dm table: add always writeable feature\n  dm table: add singleton feature\n  dm kcopyd: add dm_kcopyd_zero to zero an area\n  dm: remove superfluous smp_mb\n  dm: use local printk ratelimit\n  dm table: propagate non rotational flag\n"
    },
    {
      "commit": "6681ba7ec480bc839584fd0817991d248b4b9e44",
      "tree": "994fb1de40d58ce8dac821cf1fec727e2f902f47",
      "parents": [
        "06ef93e1b8405acac6ec900564e3ad1a8e3a72b2",
        "4d096ca7e65584dd5845e64c6400f920e694f672"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:55:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:55:15 2011 -0700"
      },
      "message": "Merge branch \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac\n\n* \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: (21 commits)\n  MAINTAINERS: add an entry for Edac Sandy Bridge driver\n  edac: tag sb_edac as EXPERIMENTAL, as it requires more testing\n  EDAC: Fix incorrect edac mode reporting in sb_edac\n  edac: sb_edac: Add it to the building system\n  edac: Add an experimental new driver to support Sandy Bridge CPU\u0027s\n  i7300_edac: Fix error cleanup logic\n  i7core_edac: Initialize memory name with cpu, channel, bank\n  i7core_edac: Fix compilation on 32 bits arch\n  i7core_edac: scrubbing fixups\n  EDAC: Correct Kconfig dependencies\n  i7core_edac: return -ENODEV if no MC is found\n  i7core_edac: use edac\u0027s own way to print errors\n  MAINTAINERS: remove dropped edac_mce.* from the file\n  i7core_edac: Drop the edac_mce facility\n  x86, MCE: Use notifier chain only for MCE decoding\n  EDAC i7core: Use mce socketid for better compatibility\n  i7core_edac: Don\u0027t enable memory scrubbing for Xeon 35xx\n  i7core_edac: Add scrubbing support\n  edac: Move edac main structs to include/linux/edac.h\n  i7core_edac: Fix oops when trying to inject errors\n  ...\n"
    },
    {
      "commit": "092f4c56c1927e4b61a41ee8055005f1cb437009",
      "tree": "616ceb54b7671ccc13922ae9e002b8b972f6e09e",
      "parents": [
        "80c2861672bbf000f6af838656959ee937e4ee4d",
        "c1e2ee2dc436574880758b3836fc96935b774c32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:27 2011 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s incoming - part two)\n\nSays Andrew:\n\n \"60 patches.  That\u0027s good enough for -rc1 I guess.  I have quite a lot\n  of detritus to be rechecked, work through maintainers, etc.\n\n - most of the remains of MM\n - rtc\n - various misc\n - cgroups\n - memcg\n - cpusets\n - procfs\n - ipc\n - rapidio\n - sysctl\n - pps\n - w1\n - drivers/misc\n - aio\"\n\n* akpm: (60 commits)\n  memcg: replace ss-\u003eid_lock with a rwlock\n  aio: allocate kiocbs in batches\n  drivers/misc/vmw_balloon.c: fix typo in code comment\n  drivers/misc/vmw_balloon.c: determine page allocation flag can_sleep outside loop\n  w1: disable irqs in critical section\n  drivers/w1/w1_int.c: multiple masters used same init_name\n  drivers/power/ds2780_battery.c: fix deadlock upon insertion and removal\n  drivers/power/ds2780_battery.c: add a nolock function to w1 interface\n  drivers/power/ds2780_battery.c: create central point for calling w1 interface\n  w1: ds2760 and ds2780, use ida for id and ida_simple_get() to get it\n  pps gpio client: add missing dependency\n  pps: new client driver using GPIO\n  pps: default echo function\n  include/linux/dma-mapping.h: add dma_zalloc_coherent()\n  sysctl: make CONFIG_SYSCTL_SYSCALL default to n\n  sysctl: add support for poll()\n  RapidIO: documentation update\n  drivers/net/rionet.c: fix ethernet address macros for LE platforms\n  RapidIO: fix potential null deref in rio_setup_device()\n  RapidIO: add mport driver for Tsi721 bridge\n  ...\n"
    },
    {
      "commit": "c1e2ee2dc436574880758b3836fc96935b774c32",
      "tree": "aa496a9ba20e06749194faa4dbb14b6046e6b06b",
      "parents": [
        "080d676de095a14ecba14c0b9a91acb5bbb634df"
      ],
      "author": {
        "name": "Andrew Bresticker",
        "email": "abrestic@google.com",
        "time": "Wed Nov 02 13:40:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:03 2011 -0700"
      },
      "message": "memcg: replace ss-\u003eid_lock with a rwlock\n\nWhile back-porting Johannes Weiner\u0027s patch \"mm: memcg-aware global\nreclaim\" for an internal effort, we noticed a significant performance\nregression during page-reclaim heavy workloads due to high contention of\nthe ss-\u003eid_lock.  This lock protects idr map, and serializes calls to\nidr_get_next() in css_get_next() (which is used during the memcg hierarchy\nwalk).\n\nSince idr_get_next() is just doing a look up, we need only serialize it\nwith respect to idr_remove()/idr_get_new().  By making the ss-\u003eid_lock a\nrwlock, contention is greatly reduced and performance improves.\n\nTested: cat a 256m file from a ramdisk in a 128m container 50 times on\neach core (one file + container per core) in parallel on a NUMA machine.\nResult is the time for the test to complete in 1 of the containers.\nBoth kernels included Johannes\u0027 memcg-aware global reclaim patches.\n\nBefore rwlock patch: 1710.778s\nAfter rwlock patch: 152.227s\n\nSigned-off-by: Andrew Bresticker \u003cabrestic@google.com\u003e\nCc: Paul Menage \u003cmenage@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "080d676de095a14ecba14c0b9a91acb5bbb634df",
      "tree": "4a4c56bc86a8edf4a42f8ec7c65ba795997e50ab",
      "parents": [
        "2ca02df6b098be2d33a99a65531dcd84a10b6e21"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Nov 02 13:40:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:03 2011 -0700"
      },
      "message": "aio: allocate kiocbs in batches\n\nIn testing aio on a fast storage device, I found that the context lock\ntakes up a fair amount of cpu time in the I/O submission path.  The reason\nis that we take it for every I/O submitted (see __aio_get_req).  Since we\nknow how many I/Os are passed to io_submit, we can preallocate the kiocbs\nin batches, reducing the number of times we take and release the lock.\n\nIn my testing, I was able to reduce the amount of time spent in\n_raw_spin_lock_irq by .56% (average of 3 runs).  The command I used to\ntest this was:\n\n   aio-stress -O -o 2 -o 3 -r 8 -d 128 -b 32 -i 32 -s 16384 \u003cdev\u003e\n\nI also tested the patch with various numbers of events passed to\nio_submit, and I ran the xfstests aio group of tests to ensure I didn\u0027t\nbreak anything.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Daniel Ehrenberg \u003cdehrenberg@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": "161520451dfacd0eb79d501933f47d3fb7464938",
      "tree": "6a3f613d005d32cdf7aeb725bac00ed55c45b929",
      "parents": [
        "437c53418616973071fd2d7c87497780944d8fdb"
      ],
      "author": {
        "name": "James Nuss",
        "email": "jamesnuss@nanometrics.ca",
        "time": "Wed Nov 02 13:39:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:02 2011 -0700"
      },
      "message": "pps: new client driver using GPIO\n\nThis client driver allows you to use a GPIO pin as a source for PPS\nsignals.  Platform data [1] are used to specify the GPIO pin number,\nlabel, assert event edge type, and whether clear events are captured.\n\nThis driver is based on the work by Ricardo Martins who submitted an\ninitial implementation [2] of a PPS IRQ client driver to the linuxpps\nmailing-list on Dec 3 2010.\n\n[1] include/linux/pps-gpio.h\n[2] http://ml.enneenne.com/pipermail/linuxpps/2010-December/004155.html\n\n[akpm@linux-foundation.org: remove unneeded cast of void*]\nSigned-off-by: James Nuss \u003cjamesnuss@nanometrics.ca\u003e\nCc: Ricardo Martins \u003crasm@fe.up.pt\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Ricardo Martins \u003crasm@fe.up.pt\u003e\nCc: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nCc: Igor Plyatov \u003cplyatov@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": "842fa69f3e0c9a178b294e7af7c07f4c9d9e7af2",
      "tree": "5c7b18074454b5ffa8e11175cfe7de08e6549ca7",
      "parents": [
        "c736de60aed869df8a9aba512cdaf89e32545b00"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 02 13:39:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:02 2011 -0700"
      },
      "message": "include/linux/dma-mapping.h: add dma_zalloc_coherent()\n\nLots of driver code does a dma_alloc_coherent() and then zeroes out the\nmemory with a memset.  Make it easy for them.\n\nCc: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1ecf06854a66ee663f4d4cf029c78cd62a15e04",
      "tree": "cbe863057fa14b9390746db6d2b1812a2f874b48",
      "parents": [
        "088024b1deee206cd37eff980138e918837aabdb"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 02 13:39:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:02 2011 -0700"
      },
      "message": "sysctl: add support for poll()\n\nAdding support for poll() in sysctl fs allows userspace to receive\nnotifications of changes in sysctl entries.  This adds a infrastructure to\nallow files in sysctl fs to be pollable and implements it for hostname and\ndomainname.\n\n[akpm@linux-foundation.org: s/declare/define/ for definitions]\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "48618fb4e522d9d02e217ac05f52749545c1af20",
      "tree": "4699179c3eacc0ec63d03ac631fae6822fa10969",
      "parents": [
        "e80dd9a7bca4057d5a09d1ba94a7ba0791e7426a"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Nov 02 13:39:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "RapidIO: add mport driver for Tsi721 bridge\n\nAdd RapidIO mport driver for IDT TSI721 PCI Express-to-SRIO bridge device.\n The driver provides full set of callback functions defined for mport\ndevices in RapidIO subsystem.  It also is compatible with current version\nof RIONET driver (Ethernet over RapidIO messaging services).\n\nThis patch is applicable to kernel versions starting from 2.6.39.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nSigned-off-by: Chul Kim \u003cchul.kim@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f567a18590742b811287b7512fb0908deac4eef7",
      "tree": "5ed76fc1727cbce2b64776afd5c682414f0c1726",
      "parents": [
        "e57940d719e9fc5223d133b631f8cb5232d6064e"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Nov 02 13:38:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "include/linux/sem.h: make sysv_sem empty if SYSVIPC is disabled\n\nFor the sysvsem undo, each task struct contains a sysv_sem structure with\na pointer to the undo information.\n\nThis pointer is only necessary if sysvipc is enabled - thus the pointer\ncan be made conditional on CONFIG_SYSVIPC.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@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": "e57940d719e9fc5223d133b631f8cb5232d6064e",
      "tree": "f4dfe100c571e245c7db90c446c548b9bf33b9e7",
      "parents": [
        "0b0577f6080c0645b079dcc03fdbaf40d928beb8"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Nov 02 13:38:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:01 2011 -0700"
      },
      "message": "ipc/sem.c: remove private structures from public header file\n\ninclude/linux/sem.h contains several structures that are only used within\nipc/sem.c.\n\nThe patch moves them into ipc/sem.c - there is no need to expose the\nstructures to the whole kernel.\n\nNo functional changes, only whitespace cleanups and 80-char per line\nfixes.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@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": "9b272977e3b99a8699361d214b51f98c8a9e0e7b",
      "tree": "2113cee95a42ea893aa6eddb01b14e563153fabb",
      "parents": [
        "0a619e58703b86d53d07e938eade9a91a4a863c6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Wed Nov 02 13:38:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:00 2011 -0700"
      },
      "message": "memcg: skip scanning active lists based on individual size\n\nReclaim decides to skip scanning an active list when the corresponding\ninactive list is above a certain size in comparison to leave the assumed\nworking set alone while there are still enough reclaim candidates around.\n\nThe memcg implementation of comparing those lists instead reports whether\nthe whole memcg is low on the requested type of inactive pages,\nconsidering all nodes and zones.\n\nThis can lead to an oversized active list not being scanned because of the\nstate of the other lists in the memcg, as well as an active list being\nscanned while its corresponding inactive list has enough pages.\n\nNot only is this wrong, it\u0027s also a scalability hazard, because the global\nmemory state over all nodes and zones has to be gathered for each memcg\nand zone scanned.\n\nMake these calculations purely based on the size of the two LRU lists\nthat are actually affected by the outcome of the decision.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: 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": "c0ff4b8540a5c158b8e5bafb7d767298b67b0b92",
      "tree": "a47a2bcd0b7b80056cde7ba6b1263aae78f77212",
      "parents": [
        "ff7ee93f47151e23601856e7eb5510babf956571"
      ],
      "author": {
        "name": "Raghavendra K T",
        "email": "raghavendra.kt@linux.vnet.ibm.com",
        "time": "Wed Nov 02 13:38:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:59 2011 -0700"
      },
      "message": "memcg: rename mem variable to memcg\n\nThe memcg code sometimes uses \"struct mem_cgroup *mem\" and sometimes uses\n\"struct mem_cgroup *memcg\".  Rename all mem variables to memcg in source\nfile.\n\nSigned-off-by: Raghavendra K T \u003craghavendra.kt@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@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": "b6eb48d02dc73d19bebc396a9e92dd64a65d3199",
      "tree": "69f397ed75788d24a10a828d466f85dd897a82ed",
      "parents": [
        "db5cf8d1ac4ac3fa06d89345154ce20068aeb097"
      ],
      "author": {
        "name": "Sami Kerola",
        "email": "kerolasa@iki.fi",
        "time": "Wed Nov 02 13:37:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:59 2011 -0700"
      },
      "message": "minix: describe usage of different magic numbers\n\nOne can get this information from minix/inode.c, but adding the\nexplanations at the definition sites is more appropriate.\n\nSigned-off-by: Sami Kerola \u003ckerolasa@iki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b35a35b556f5e6b7993ad0baf20173e75c09ce8c",
      "tree": "85ea46dde6e97d4c73b724698fd65a403529953e",
      "parents": [
        "e0d85a366c2300efd230ef82a9b22110b0658331"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:37:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:58 2011 -0700"
      },
      "message": "thp: share get_huge_page_tail()\n\nThis avoids duplicating the function in every arch gup_fast.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.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": "70b50f94f1644e2aa7cb374819cfd93f3c28d725",
      "tree": "79198cd9a92600140827a670d1ed5eefdcd23d79",
      "parents": [
        "994c0e992522c123298b4a91b72f5e67ba2d1123"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:36:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:57 2011 -0700"
      },
      "message": "mm: thp: tail page refcounting fix\n\nMichel while working on the working set estimation code, noticed that\ncalling get_page_unless_zero() on a random pfn_to_page(random_pfn)\nwasn\u0027t safe, if the pfn ended up being a tail page of a transparent\nhugepage under splitting by __split_huge_page_refcount().\n\nHe then found the problem could also theoretically materialize with\npage_cache_get_speculative() during the speculative radix tree lookups\nthat uses get_page_unless_zero() in SMP if the radix tree page is freed\nand reallocated and get_user_pages is called on it before\npage_cache_get_speculative has a chance to call get_page_unless_zero().\n\nSo the best way to fix the problem is to keep page_tail-\u003e_count zero at\nall times.  This will guarantee that get_page_unless_zero() can never\nsucceed on any tail page.  page_tail-\u003e_mapcount is guaranteed zero and\nis unused for all tail pages of a compound page, so we can simply\naccount the tail page references there and transfer them to\ntail_page-\u003e_count in __split_huge_page_refcount() (in addition to the\nhead_page-\u003e_mapcount).\n\nWhile debugging this s/_count/_mapcount/ change I also noticed get_page is\ncalled by direct-io.c on pages returned by get_user_pages.  That wasn\u0027t\nentirely safe because the two atomic_inc in get_page weren\u0027t atomic.  As\nopposed to other get_user_page users like secondary-MMU page fault to\nestablish the shadow pagetables would never call any superflous get_page\nafter get_user_page returns.  It\u0027s safer to make get_page universally safe\nfor tail pages and to use get_page_foll() within follow_page (inside\nget_user_pages()).  get_page_foll() is safe to do the refcounting for tail\npages without taking any locks because it is run within PT lock protected\ncritical sections (PT lock for pte and page_table_lock for\npmd_trans_huge).\n\nThe standard get_page() as invoked by direct-io instead will now take\nthe compound_lock but still only for tail pages.  The direct-io paths\nare usually I/O bound and the compound_lock is per THP so very\nfinegrined, so there\u0027s no risk of scalability issues with it.  A simple\ndirect-io benchmarks with all lockdep prove locking and spinlock\ndebugging infrastructure enabled shows identical performance and no\noverhead.  So it\u0027s worth it.  Ideally direct-io should stop calling\nget_page() on pages returned by get_user_pages().  The spinlock in\nget_page() is already optimized away for no-THP builds but doing\nget_page() on tail pages returned by GUP is generally a rare operation\nand usually only run in I/O paths.\n\nThis new refcounting on page_tail-\u003e_mapcount in addition to avoiding new\nRCU critical sections will also allow the working set estimation code to\nwork without any further complexity associated to the tail page\nrefcounting with THP.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80c2861672bbf000f6af838656959ee937e4ee4d",
      "tree": "78b361fd7278d461b1e664272f3b27660b64c642",
      "parents": [
        "d211858837ff8d8e31942ca7d27e6e08b3b46f5e",
        "5087a50e66bd51b6e72c60bce4757a42b93f6b2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 15:00:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 15:00:56 2011 -0700"
      },
      "message": "Merge git://github.com/rustyrussell/linux\n\n* git://github.com/rustyrussell/linux:\n  virtio-blk: use ida to allocate disk index\n  virtio: Add platform bus driver for memory mapped virtio device\n  virtio: Dont add \"config\" to list for !per_vq_vector\n  virtio: console: wait for first console port for early console output\n  virtio: console: add port stats for bytes received, sent and discarded\n  virtio: console: make discard_port_data() use get_inbuf()\n  virtio: console: rename variable\n  virtio: console: make get_inbuf() return port-\u003einbuf if present\n  virtio: console: Fix return type for get_inbuf()\n  virtio: console: Use wait_event_freezable instead of _interruptible\n  virtio: console: Ignore port name update request if name already set\n  virtio: console: Fix indentation\n  virtio: modify vring_init and vring_size to take account of the layout containing *_event_idx\n  virtio.h: correct comment for struct virtio_driver\n  virtio-net: Use virtio_config_val() for retrieving config\n  virtio_config: Add virtio_config_val_len()\n  virtio-console: Use virtio_config_val() for retrieving config\n"
    },
    {
      "commit": "d211858837ff8d8e31942ca7d27e6e08b3b46f5e",
      "tree": "a8ec83a791066e64ad02052498dbe39ebefacab9",
      "parents": [
        "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
        "f0023bc617ba600956b9226f1806033d7486c8ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue:\n  vfs: add d_prune dentry operation\n  vfs: protect i_nlink\n  filesystems: add set_nlink()\n  filesystems: add missing nlink wrappers\n  logfs: remove unnecessary nlink setting\n  ocfs2: remove unnecessary nlink setting\n  jfs: remove unnecessary nlink setting\n  hypfs: remove unnecessary nlink setting\n  vfs: ignore error on forced remount\n  readlinkat: ensure we return ENOENT for the empty pathname for normal lookups\n  vfs: fix dentry leak in simple_fill_super()\n"
    },
    {
      "commit": "ed0449af5373abd766c79fbf83254bebc996bd23",
      "tree": "e72b0cde1827e4558c8748e7a410086ba124ef7f",
      "parents": [
        "d631097577f6fe027f4903f62eabced6445d19bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 01 09:09:35 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 02 13:56:25 2011 -0400"
      },
      "message": "tracing: Restore system filter behavior\n\nThough not all events have field \u0027prev_pid\u0027, it was allowed to do this:\n\n  # echo \u0027prev_pid \u003d\u003d 100\u0027 \u003e events/sched/filter\n\nbut commit 75b8e98263fdb0bfbdeba60d4db463259f1fe8a2 (tracing/filter: Swap\nentire filter of events) broke it without any reason.\n\nLink: http://lkml.kernel.org/r/4EAF46CF.8040408@cn.fujitsu.com\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
      "tree": "694950045f2f5d89507d7206cf6595e09cdfbd2c",
      "parents": [
        "34116645d912f65d7eb4508a1db3c9d0e45facb1",
        "f2a44523b20f323e4aef7c16261d34d6f0a4bf06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (97 commits)\n  jbd2: Unify log messages in jbd2 code\n  jbd/jbd2: validate sb-\u003es_first in journal_get_superblock()\n  ext4: let ext4_ext_rm_leaf work with EXT_DEBUG defined\n  ext4: fix a syntax error in ext4_ext_insert_extent when debugging enabled\n  ext4: fix a typo in struct ext4_allocation_context\n  ext4: Don\u0027t normalize an falloc request if it can fit in 1 extent.\n  ext4: remove comments about extent mount option in ext4_new_inode()\n  ext4: let ext4_discard_partial_buffers handle unaligned range correctly\n  ext4: return ENOMEM if find_or_create_pages fails\n  ext4: move vars to local scope in ext4_discard_partial_page_buffers_no_lock()\n  ext4: Create helper function for EXT4_IO_END_UNWRITTEN and i_aiodio_unwritten\n  ext4: optimize locking for end_io extent conversion\n  ext4: remove unnecessary call to waitqueue_active()\n  ext4: Use correct locking for ext4_end_io_nolock()\n  ext4: fix race in xattr block allocation path\n  ext4: trace punch_hole correctly in ext4_ext_map_blocks\n  ext4: clean up AGGRESSIVE_TEST code\n  ext4: move variables to their scope\n  ext4: fix quota accounting during migration\n  ext4: migrate cleanup\n  ...\n"
    },
    {
      "commit": "34116645d912f65d7eb4508a1db3c9d0e45facb1",
      "tree": "27283af2d429df5884637d1baa7306116ab26fcb",
      "parents": [
        "de0a5345a55b8dd5a4695181275df0e691176830",
        "ed47a7d00c22b326fc4c97342a73ecd15929732e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:05:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:05:22 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  udf: Cleanup metadata flags handling\n  udf: Skip mirror metadata FE loading when metadata FE is ok\n  ext3: Allow quota file use root reservation\n  udf: Remove web reference from UDF MAINTAINERS entry\n  quota: Drop path reference on error exit from quotactl\n  udf: Neaten udf_debug uses\n  udf: Neaten logging output, use vsprintf extension %pV\n  udf: Convert printks to pr_\u003clevel\u003e\n  udf: Rename udf_warning to udf_warn\n  udf: Rename udf_error to udf_err\n  udf: Promote some debugging messages to udf_error\n  ext3: Remove the obsolete broken EXT3_IOC32_WAIT_FOR_READONLY.\n  udf: Add readpages support for udf.\n  ext3/balloc.c: local functions should be static\n  ext2: fix the outdated comment in ext2_nfs_get_inode()\n  ext3: remove deprecated oldalloc\n  fs/ext3/balloc.c: delete useless initialization\n  fs/ext2/balloc.c: delete useless initialization\n  ext3: fix message in ext3_remount for rw-remount case\n  ext3: Remove i_mutex from ext3_sync_file()\n\nFix up trivial (printf format cleanup) conflicts in fs/udf/udfdecl.h\n"
    },
    {
      "commit": "b958f7a7cbdfbf59ba61de7ebb9c59b0ee3a7967",
      "tree": "71199638d2ebac5c0317167e3d54cef48507a583",
      "parents": [
        "5f6cb769f479314c74e44a84e0180dd520333223"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Sun Oct 30 23:50:36 2011 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Wed Nov 02 17:24:06 2011 +0100"
      },
      "message": "mfd: Fix missing abx500 header file updates\n\nI missed to include a patch adding the new silicon revision define\nCUT3P3 and remove the retired CUT0 versions of AB8500. Also delete\nthe reference to the retired AB3550 from the header.\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "f0023bc617ba600956b9226f1806033d7486c8ba",
      "tree": "7a5ad7481b160e1d40cdc95626bfdb5e8577c88e",
      "parents": [
        "a78ef704a8dd430225955f0709b22d4a6ba21deb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 28 10:02:42 2011 -0700"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "vfs: add d_prune dentry operation\n\nThis adds a d_prune dentry operation that is called by the VFS prior to\npruning (i.e. unhashing and killing) a hashed dentry from the dcache.\nWrap dentry_lru_del() and use the new _prune() helper in the cases where we\nare about to unhash and kill the dentry.\n\nThis will be used by Ceph to maintain a flag indicating whether the\ncomplete contents of a directory are contained in the dcache, allowing it\nto satisfy lookups and readdir without addition server communication.\n\nRenumber a few DCACHE_* #defines to group DCACHE_OP_PRUNE with the other\nDCACHE_OP_ bits.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a78ef704a8dd430225955f0709b22d4a6ba21deb",
      "tree": "ebd8f8a5a257077912b7cc38ecfdab43e1d7d73d",
      "parents": [
        "bfe8684869601dacfcb2cd69ef8cfd9045f62170"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:30 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "vfs: protect i_nlink\n\nPrevent direct modification of i_nlink by making it const and adding a\nnon-const __i_nlink alias.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1fa1e7f615f4d3ae436fa319af6e4eebdd4026a8",
      "tree": "aa3521aaa762424cc7fb38dbf924a34dac1b03c2",
      "parents": [
        "32096ea1aac14e6f29d4744924092eca52b937b0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Wed Nov 02 09:44:39 2011 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:42 2011 +0100"
      },
      "message": "readlinkat: ensure we return ENOENT for the empty pathname for normal lookups\n\nSince the commit below which added O_PATH support to the *at() calls, the\nerror return for readlink/readlinkat for the empty pathname has switched\nfrom ENOENT to EINVAL:\n\n  commit 65cfc6722361570bfe255698d9cd4dccaf47570d\n  Author: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n  Date:   Sun Mar 13 15:56:26 2011 -0400\n\n    readlinkat(), fchownat() and fstatat() with empty relative pathnames\n\nThis is both unexpected for userspace and makes readlink/readlinkat\ninconsistant with all other interfaces; and inconsistant with our stated\nreturn for these pathnames.\n\nAs the readlinkat call does not have a flags parameter we cannot use the\nAT_EMPTY_PATH approach used in the other calls.  Therefore expose whether\nthe original path is infact entry via a new user_path_at_empty() path\nlookup function.  Use this to determine whether to default to EINVAL or\nENOENT for failures.\n\nAddresses http://bugs.launchpad.net/bugs/817187\n\n[akpm@linux-foundation.org: remove unused getname_flags()]\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "367069f16e32e188d4687fe2c3e30f2ca583836f",
      "tree": "977f87038b75e53af9d132cba2f7a2aecb2fa005",
      "parents": [
        "81a3c10ce8a7fd5bf9a06bfc38bd417512911831",
        "c72dbae971400e466ad9ff16c920cd6d9d8c55a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 21:02:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 21:02:35 2011 -0700"
      },
      "message": "Merge branch \u0027next/dt\u0027 of git://git.linaro.org/people/arnd/arm-soc\n\n* \u0027next/dt\u0027 of git://git.linaro.org/people/arnd/arm-soc:\n  ARM: gic: use module.h instead of export.h\n  ARM: gic: fix irq_alloc_descs handling for sparse irq\n  ARM: gic: add OF based initialization\n  ARM: gic: add irq_domain support\n  irq: support domains with non-zero hwirq base\n  of/irq: introduce of_irq_init\n  ARM: at91: add at91sam9g20 and Calao USB A9G20 DT support\n  ARM: at91: dt: at91sam9g45 family and board device tree files\n  arm/mx5: add device tree support for imx51 babbage\n  arm/mx5: add device tree support for imx53 boards\n  ARM: msm: Add devicetree support for msm8660-surf\n  msm_serial: Add devicetree support\n  msm_serial: Use relative resources for iomem\n\nFix up conflicts in arch/arm/mach-at91/{at91sam9260.c,at91sam9g45.c}\n"
    },
    {
      "commit": "81a3c10ce8a7fd5bf9a06bfc38bd417512911831",
      "tree": "12ceac10fae8c4b2dc17b362672a5db305a8d960",
      "parents": [
        "6585dea1f99cc2265582ff2e4cc1727062136e92",
        "df80442d1ee2902c2e39f90f18160f2e08d14c06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:58:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:58:25 2011 -0700"
      },
      "message": "Merge branch \u0027next/cleanup2\u0027 of git://git.linaro.org/people/arnd/arm-soc\n\n* \u0027next/cleanup2\u0027 of git://git.linaro.org/people/arnd/arm-soc: (31 commits)\n  ARM: OMAP: Warn if omap_ioremap is called before SoC detection\n  ARM: OMAP: Move set_globals initialization to happen in init_early\n  ARM: OMAP: Map SRAM later on with ioremap_exec()\n  ARM: OMAP: Remove calls to SRAM allocations for framebuffer\n  ARM: OMAP: Avoid cpu_is_omapxxxx usage until map_io is done\n  ARM: OMAP1: Use generic map_io, init_early and init_irq\n  arm/dts: OMAP3+: Add mpu, dsp and iva nodes\n  arm/dts: OMAP4: Add a main ocp entry bound to l3-noc driver\n  ARM: OMAP2+: l3-noc: Add support for device-tree\n  ARM: OMAP2+: board-generic: Add i2c static init\n  ARM: OMAP2+: board-generic: Add DT support to generic board\n  arm/dts: Add support for OMAP3 Beagle board\n  arm/dts: Add initial device tree support for OMAP3 SoC\n  arm/dts: Add support for OMAP4 SDP board\n  arm/dts: Add support for OMAP4 PandaBoard\n  arm/dts: Add initial device tree support for OMAP4 SoC\n  ARM: OMAP: omap_device: Add a method to build an omap_device from a DT node\n  ARM: OMAP: omap_device: Add omap_device_[alloc|delete] for DT integration\n  of: Add helpers to get one string in multiple strings property\n  ARM: OMAP2+: devices: Remove all omap_device_pm_latency structures\n  ...\n\nFix up trivial header file conflicts in arch/arm/mach-omap2/board-generic.c\n"
    },
    {
      "commit": "cd9a0b6bd67ec372b0ef3cb2abe26974f888b956",
      "tree": "ffec66aa48f95b2b764f9e84fbafc519cce5000e",
      "parents": [
        "ac5761a650d22dd7dfad4d417463a0981d2da0a4",
        "090ad104c5c59c7952d4b8d4cfb60559b38eb3e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:22:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:22:01 2011 -0700"
      },
      "message": "Merge branch \u0027next/pm\u0027 of git://git.linaro.org/people/arnd/arm-soc\n\n* \u0027next/pm\u0027 of git://git.linaro.org/people/arnd/arm-soc: (66 commits)\n  ARM: CSR: PM: use outer_resume to resume L2 cache\n  ARM: CSR: call l2x0_of_init to init L2 cache of SiRFprimaII\n  ARM: OMAP: voltage: voltage layer present, even when CONFIG_PM\u003dn\n  ARM: CSR: PM: add sleep entry for SiRFprimaII\n  ARM: CSR: PM: save/restore irq status in suspend cycle\n  ARM: CSR: PM: save/restore timer status in suspend cycle\n  OMAP4: PM: TWL6030: add cmd register\n  OMAP4: PM: TWL6030: fix ON/RET/OFF voltages\n  OMAP4: PM: TWL6030: address 0V conversions\n  OMAP4: PM: TWL6030: fix uv to voltage for \u003e0x39\n  OMAP4: PM: TWL6030: fix voltage conversion formula\n  omap: voltage: add a stub header file for external/regulator use\n  OMAP2+: VC: more registers are per-channel starting with OMAP5\n  OMAP3+: voltage: update nominal voltage in voltdm_scale() not VC post-scale\n  OMAP3+: voltage: rename omap_voltage_get_nom_volt -\u003e voltdm_get_voltage\n  OMAP3+: voltdm: final removal of omap_vdd_info\n  OMAP3+: voltage: move/rename curr_volt from vdd_info into struct voltagedomain\n  OMAP3+: voltage: rename scale and reset functions using voltdm_ prefix\n  OMAP3+: VP: combine setting init voltage into common function\n  OMAP3+: VP: remove unused omap_vp_get_curr_volt()\n  ...\n\nFix up trivial conflict in arch/arm/mach-prima2/l2x0.c (code removal vs\nedit)\n"
    },
    {
      "commit": "ac5761a650d22dd7dfad4d417463a0981d2da0a4",
      "tree": "c01a46a889dde74fbbb05d3b2da22387bb4875c6",
      "parents": [
        "25498e5b3df931a3d52a6e0642ae242e4ee19488",
        "eed1e576507b52e03e549e0c9e0c747978122403"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:18:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 20:18:05 2011 -0700"
      },
      "message": "Merge branch \u0027next/timer\u0027 of git://git.linaro.org/people/arnd/arm-soc\n\n* \u0027next/timer\u0027 of git://git.linaro.org/people/arnd/arm-soc:\n  clocksource: fixup ux500 build problems\n  ARM: omap: use __devexit_p in dmtimer driver\n  ARM: ux500: Reprogram timers upon resume\n  ARM: plat-nomadik: timer: Export reset functions\n  ARM: plat-nomadik: timer: Add support for periodic timers\n  ARM: ux500: Move timer code to separate file\n  ARM: ux500: add support for clocksource DBX500 PRCMU\n  clocksource: add DBX500 PRCMU Timer support\n  ARM: plat-nomadik: MTU sched_clock as an option\n  ARM: OMAP: dmtimer: add error handling to export APIs\n  ARM: OMAP: dmtimer: low-power mode support\n  ARM: OMAP: dmtimer: skip reserved timers\n  ARM: OMAP: dmtimer: pm_runtime support\n  ARM: OMAP: dmtimer: switch-over to platform device driver\n  ARM: OMAP: dmtimer: platform driver\n  ARM: OMAP2+: dmtimer: convert to platform devices\n  ARM: OMAP1: dmtimer: conversion to platform devices\n  ARM: OMAP2+: dmtimer: add device names to flck nodes\n  ARM: OMAP: Add support for dmtimer v2 ip\n"
    },
    {
      "commit": "edfd52e6367270c90f3fd7cc302b375ffa89f91e",
      "tree": "1a847022a6ee87524461ecd2427e7f23acab48ce",
      "parents": [
        "005b20a8e0f587a46a00910ba4507bb9f6da70ea"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "pawel.moll@arm.com",
        "time": "Mon Oct 24 14:07:03 2011 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:41:01 2011 +1030"
      },
      "message": "virtio: Add platform bus driver for memory mapped virtio device\n\nThis patch, based on virtio PCI driver, adds support for memory\nmapped (platform) virtio device. This should allow environments\nlike qemu to use virtio-based block \u0026 network devices even on\nplatforms without PCI support.\n\nOne can define and register a platform device which resources\nwill describe memory mapped control registers and \"mailbox\"\ninterrupt. Such device can be also instantiated using the Device\nTree node with compatible property equal \"virtio,mmio\".\n\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Michael S.Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "00b894e874581f6b388c5817d4d5546c22cf9640",
      "tree": "18cf5e1b2067986b36996dc75321cea7c9935ac2",
      "parents": [
        "5f41f8bfc95e84536207b2af8918f2e674164a42"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "shhuiw@gmail.com",
        "time": "Mon Aug 29 15:55:59 2011 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:40:59 2011 +1030"
      },
      "message": "virtio: modify vring_init and vring_size to take account of the layout containing *_event_idx\n\nBased on the layout description in the comments, take account of\nthe *_event_idx in functions vring_init and vring_size.\n\nSigned-off-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5f41f8bfc95e84536207b2af8918f2e674164a42",
      "tree": "8494d4762a7ab221e6fd49e32ec25edd063abb1c",
      "parents": [
        "77dd7693c52d002d24be6842fb0b766116a6079f"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "shhuiw@gmail.com",
        "time": "Thu Aug 25 21:04:05 2011 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:40:59 2011 +1030"
      },
      "message": "virtio.h: correct comment for struct virtio_driver\n\nThe patch is against 3.0.\n\nSigned-off-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3ead6f4d42e2866a48d7abf9bc98553f1110b6df",
      "tree": "db9bcecd8d232b0f3b9fb14589c58a872c400539",
      "parents": [
        "51c6d61ac58844b5e3e0d28271084c06f6a15371"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Sun Aug 14 17:52:32 2011 +0300"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 02 11:40:58 2011 +1030"
      },
      "message": "virtio_config: Add virtio_config_val_len()\n\nThis patch adds virtio_config_val_len() which allows retrieving variable\nlength data from the virtio config space only if a specific feature is on.\n\nCc: Amit Shah \u003camit.shah@redhat.com\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: virtualization@lists.linux-foundation.org\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b4beb4bf9934d151bf4581a54ae028927374cb2a",
      "tree": "28475f62b18784e1d10b05e901799d02c054587f",
      "parents": [
        "f3c3f0670501fee130f22193369249deea8cc630",
        "3945fe9314af718946f71185901c28dd349469c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 15:07:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 15:07:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus/i2c-3.2\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027for-linus/i2c-3.2\u0027 of git://git.fluff.org/bjdooks/linux: (47 commits)\n  i2c-s3c2410: Add device tree support\n  i2c-s3c2410: Keep a copy of platform data and use it\n  i2c-nomadik: cosmetic coding style corrections\n  i2c-au1550: dev_pm_ops conversion\n  i2c-au1550: increase timeout waiting for master done\n  i2c-au1550: remove unused ack_timeout\n  i2c-au1550: remove usage of volatile keyword\n  i2c-tegra: __iomem annotation fix\n  i2c-eg20t: Add initialize processing in case i2c-error occurs\n  i2c-eg20t: Fix flag setting issue\n  i2c-eg20t: add stop sequence in case wait-event timeout occurs\n  i2c-eg20t: Separate error processing\n  i2c-eg20t: Fix 10bit access issue\n  i2c-eg20t: Modify returned value s32 to long\n  i2c-eg20t: Fix bus-idle waiting issue\n  i2c-designware: Fix PCI core warning on suspend/resume\n  i2c-designware: Add runtime power management support\n  i2c-designware: Add support for Designware core behind PCI devices.\n  i2c-designware: Push all register reads/writes into the core code.\n  i2c-designware: Support multiple cores using same ISR\n  ...\n"
    },
    {
      "commit": "f3c3f0670501fee130f22193369249deea8cc630",
      "tree": "27ae58e4f338d571be93a7557ae7de48de10a947",
      "parents": [
        "c18ae42aa5b3473c00f51b6937d0c00bdb6ce2d2",
        "0151546fb34e92494acd65ed84a603c2a4a90168"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 15:06:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 15:06:20 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regulator\n\n* \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regulator: (22 commits)\n  regulator: Constify constraints name\n  regulator: Fix possible nullpointer dereference in regulator_enable()\n  regulator: gpio-regulator add dependency on GENERIC_GPIO\n  regulator: Add module.h include to gpio-regulator\n  regulator: Add driver for gpio-controlled regulators\n  regulator: remove duplicate REG_CTRL2 defines in tps65023\n  regulator: Clarify documentation for regulator-regulator supplies\n  regulator: Fix some bitrot in the machine driver documentation\n  regulator: tps65023: Added support for the similiar TPS65020 chip\n  regulator: tps65023: Setting correct core regulator for tps65021\n  regulator: tps65023: Set missing bit for update core-voltage\n  regulator: tps65023: Fixes i2c configuration issues\n  regulator: Add debugfs file showing the supply map table\n  regulator: tps6586x: add SMx slew rate setting\n  regulator: tps65023: Fixes i2c configuration issues\n  regulator: tps6507x: Remove num_voltages array\n  regulator: max8952: removed unused mutex.\n  regulator: fix regulator/consumer.h kernel-doc warning\n  regulator: Ensure enough enable time for max8649\n  regulator: 88pm8607: Fix off-by-one value range checking in the case of no id is matched\n  ...\n"
    },
    {
      "commit": "1c398651518c7e25a9fb3f08b456c73d5ca22469",
      "tree": "116ad4df5c8faa5f8e0d7982c479bf08ea01f2ec",
      "parents": [
        "f470f8d4e702593ee1d0852871ad80373bce707b",
        "b238b8fa93353ab50c9a2b1e2fa47a0ab01c37cd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:52:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:52:29 2011 -0700"
      },
      "message": "Merge branch \u0027pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\n* \u0027pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  pstore: make pstore write function return normal success/fail value\n  pstore: change mutex locking to spin_locks\n  pstore: defer inserting OOPS entries into pstore\n"
    },
    {
      "commit": "f470f8d4e702593ee1d0852871ad80373bce707b",
      "tree": "85a67e65c5e5b9777639bd8f4c763a4cf8787e0e",
      "parents": [
        "dc47d3810cdcb4f32bfa31d50f26af97aced0638",
        "504255f8d0480cf293962adf4bc3aecac645ae71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:51:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 10:51:38 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (62 commits)\n  mlx4_core: Deprecate log_num_vlan module param\n  IB/mlx4: Don\u0027t set VLAN in IBoE WQEs\u0027 control segment\n  IB/mlx4: Enable 4K mtu for IBoE\n  RDMA/cxgb4: Mark QP in error before disabling the queue in firmware\n  RDMA/cxgb4: Serialize calls to CQ\u0027s comp_handler\n  RDMA/cxgb3: Serialize calls to CQ\u0027s comp_handler\n  IB/qib: Fix issue with link states and QSFP cables\n  IB/mlx4: Configure extended active speeds\n  mlx4_core: Add extended port capabilities support\n  IB/qib: Hold links until tuning data is available\n  IB/qib: Clean up checkpatch issue\n  IB/qib: Remove s_lock around header validation\n  IB/qib: Precompute timeout jiffies to optimize latency\n  IB/qib: Use RCU for qpn lookup\n  IB/qib: Eliminate divide/mod in converting idx to egr buf pointer\n  IB/qib: Decode path MTU optimization\n  IB/qib: Optimize RC/UC code by IB operation\n  IPoIB: Use the right function to do DMA unmap pages\n  RDMA/cxgb4: Use correct QID in insert_recv_cqe()\n  RDMA/cxgb4: Make sure flush CQ entries are collected on connection close\n  ...\n"
    },
    {
      "commit": "504255f8d0480cf293962adf4bc3aecac645ae71",
      "tree": "5ae8663d2bc2eb9e796bfb689f3e462a14742e06",
      "parents": [
        "2be6053318aa4f2787b7bc5cf5160017d7d1586b",
        "615eb715ae10cbaa8079ab8cacf8f4596be4087a",
        "f7cc25d018f1e9af6767ee7774bbe83452e9fdf4",
        "d32ae393dbf0daf778f9e33b0bc6591cd102391e",
        "a5e12dff757b562bbecd6a2359fdc4c43d4d97de",
        "3e60a77ea218d1915bdc9127f88ab866fd2ac643",
        "787adb9d6ad9afb498a1580a7d8ad05f779c488a",
        "caf6e3f221ddc12ccabd1cd0ba149561db0090d4",
        "cb29688aaa4caa4d54df2976118fe99a839bb433",
        "0f0bee8bbc2b3e49baa703118041f99db9ef41a1",
        "16d99812d58b8af2df29cd337a74cd965b53da04",
        "42849b2697c36abdafa6aef64186b15055392046"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Nov 01 09:37:08 2011 -0700"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Tue Nov 01 09:37:08 2011 -0700"
      },
      "message": "Merge branches \u0027amso1100\u0027, \u0027cma\u0027, \u0027cxgb3\u0027, \u0027cxgb4\u0027, \u0027fdr\u0027, \u0027ipath\u0027, \u0027ipoib\u0027, \u0027misc\u0027, \u0027mlx4\u0027, \u0027misc\u0027, \u0027nes\u0027, \u0027qib\u0027 and \u0027xrc\u0027 into for-next\n"
    },
    {
      "commit": "dc47d3810cdcb4f32bfa31d50f26af97aced0638",
      "tree": "f1574adeaae857d935ad9c2e08a19727e54ef14a",
      "parents": [
        "f6d90b4f9ce018bff429d6e01ee672de712b8641",
        "5db017aa2809c49ca0a43b0f3ed1267e6be60883"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 09:24:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 09:24:41 2011 -0700"
      },
      "message": "Merge git://github.com/herbertx/crypto\n\n* git://github.com/herbertx/crypto: (48 commits)\n  crypto: user - Depend on NET instead of selecting it\n  crypto: user - Add dependency on NET\n  crypto: talitos - handle descriptor not found in error path\n  crypto: user - Initialise match in crypto_alg_match\n  crypto: testmgr - add twofish tests\n  crypto: testmgr - add blowfish test-vectors\n  crypto: Make hifn_795x build depend on !ARCH_DMA_ADDR_T_64BIT\n  crypto: twofish-x86_64-3way - fix ctr blocksize to 1\n  crypto: blowfish-x86_64 - fix ctr blocksize to 1\n  crypto: whirlpool - count rounds from 0\n  crypto: Add userspace report for compress type algorithms\n  crypto: Add userspace report for cipher type algorithms\n  crypto: Add userspace report for rng type algorithms\n  crypto: Add userspace report for pcompress type algorithms\n  crypto: Add userspace report for nivaead type algorithms\n  crypto: Add userspace report for aead type algorithms\n  crypto: Add userspace report for givcipher type algorithms\n  crypto: Add userspace report for ablkcipher type algorithms\n  crypto: Add userspace report for blkcipher type algorithms\n  crypto: Add userspace report for ahash type algorithms\n  ...\n"
    },
    {
      "commit": "4140c54266365e4267a2dbc5765101bba3b42896",
      "tree": "b2ea1bcc230ca6597dc0da7a07788a4463e16858",
      "parents": [
        "f0cb54524366654e72c87e0a1f87c0b3ff36deb3"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Mon Jul 18 11:24:46 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Nov 01 10:01:24 2011 -0200"
      },
      "message": "i7core_edac: Drop the edac_mce facility\n\nRemove edac_mce pieces and use the normal MCE decoder notifier chain by\nretaining the same functionality with considerably less code.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "8d83f63b19d45ba0898b97824afcc8e0b5c954cb",
      "tree": "af5a9d67a06321c324d2c7a043c49cc487091b9b",
      "parents": [
        "0a9ee81349d90c6c85831f38118bf569c60a4d51"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Oct 01 13:51:29 2011 -0400"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Nov 01 09:19:52 2011 +0100"
      },
      "message": "netfilter: export NAT definitions through linux/netfilter_ipv4/nf_nat.h\n\nThis patch exports several definitions that used to live under\ninclude/net/netfilter/nf_nat.h. These definitions, although not\nexported, have been used by iptables and other userspace\napplications like miniupnpd since long time. Basically, these\nuserspace tools included some internal definition of the required\nstructures and they assume no changes in the binary representation\n(which is OK indeed).\n\nTo resolve this situation, this patch makes public the required\nstructure and install them in INSTALL_HDR_PATH.\n\nSee: https://bugs.gentoo.org/376873, for more information.\n\nThis patch is heavily based on the initial patch sent by:\n\nAnthony G. Basile \u003cblueness@gentoo.org\u003e\n\nWhich was entitled:\n\nnetfilter: export sanitized nf_nat.h to INSTALL_HDR_PATH\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "f83347df57113e54e999aa2491be3f685c0c262d",
      "tree": "999374e037cfbdcd2838cced24377c2933514d29",
      "parents": [
        "23e049442b7b4f87f802470b4fd46a0e50b2fbdd"
      ],
      "author": {
        "name": "Marcos Paulo de Souza",
        "email": "marcos.mage@gmail.com",
        "time": "Mon Oct 31 15:11:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 01 00:55:48 2011 -0400"
      },
      "message": "include: linux: skbuf.h: Fix parameter documentation\n\nFixes parameter name of skb_frag_dmamap function to silence warning on\nmake htmldocs.\n\nSigned-off-by: Marcos Paulo de Souza \u003cmarcos.mage@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "094803e0aab3fe75bbf8202a8f4b5280eaade375",
      "tree": "278528ca9245a767fcfcfa97d977bd5714c082fd",
      "parents": [
        "32087d4eeca14b82660dab288b1d659963b954bd",
        "d8805e633e054c816c47cb6e727c81f156d9253d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:46:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:46:07 2011 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s incoming)\n\nQuoth Andrew:\n\n - Most of MM.  Still waiting for the poweroc guys to get off their\n   butts and review some threaded hugepages patches.\n\n - alpha\n\n - vfs bits\n\n - drivers/misc\n\n - a few core kerenl tweaks\n\n - printk() features\n\n - MAINTAINERS updates\n\n - backlight merge\n\n - leds merge\n\n - various lib/ updates\n\n - checkpatch updates\n\n* akpm: (127 commits)\n  epoll: fix spurious lockdep warnings\n  checkpatch: add a --strict check for utf-8 in commit logs\n  kernel.h/checkpatch: mark strict_strto\u003cfoo\u003e and simple_strto\u003cfoo\u003e as obsolete\n  llist-return-whether-list-is-empty-before-adding-in-llist_add-fix\n  wireless: at76c50x: follow rename pack_hex_byte to hex_byte_pack\n  fat: follow rename pack_hex_byte() to hex_byte_pack()\n  security: follow rename pack_hex_byte() to hex_byte_pack()\n  kgdb: follow rename pack_hex_byte() to hex_byte_pack()\n  lib: rename pack_hex_byte() to hex_byte_pack()\n  lib/string.c: fix strim() semantics for strings that have only blanks\n  lib/idr.c: fix comment for ida_get_new_above()\n  lib/percpu_counter.c: enclose hotplug only variables in hotplug ifdef\n  lib/bitmap.c: quiet sparse noise about address space\n  lib/spinlock_debug.c: print owner on spinlock lockup\n  lib/kstrtox: common code between kstrto*() and simple_strto*() functions\n  drivers/leds/leds-lp5521.c: check if reset is successful\n  leds: turn the blink_timer off before starting to blink\n  leds: save the delay values after a successful call to blink_set()\n  drivers/leds/leds-gpio.c: use gpio_get_value_cansleep() when initializing\n  drivers/leds/leds-lm3530.c: add __devexit_p where needed\n  ...\n"
    },
    {
      "commit": "67d0a0754455f89ef3946946159d8ec9e45ce33a",
      "tree": "297c25551f6523bc8284c40642491113e72b350e",
      "parents": [
        "fc23af34b00ef444eec088f744983b9ca6c7f5d1"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:13:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:57 2011 -0700"
      },
      "message": "kernel.h/checkpatch: mark strict_strto\u003cfoo\u003e and simple_strto\u003cfoo\u003e as obsolete\n\nMark obsolete/deprecated strict_strto\u003cfoo\u003e and simple_strto\u003cfoo\u003e functions\nand macros as obsolete.\n\nUpdate checkpatch to warn about their use.\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": "fc23af34b00ef444eec088f744983b9ca6c7f5d1",
      "tree": "23af07725c5cb9a185a39efe640d92a968b1708f",
      "parents": [
        "67220a9ea3eb9cf61de7e384b6bcaaa78f680c9d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Oct 31 17:13:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:57 2011 -0700"
      },
      "message": "llist-return-whether-list-is-empty-before-adding-in-llist_add-fix\n\nclarify comment\n\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55036ba76b2d2fd53b5c00993fcec5ed56e83922",
      "tree": "b6f82d9b9d91bab4424bc04f8f7e664a639dc8dd",
      "parents": [
        "66f6958e69d8055277356d3cc2e7a1d734db1755"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Oct 31 17:12:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:56 2011 -0700"
      },
      "message": "lib: rename pack_hex_byte() to hex_byte_pack()\n\nAs suggested by Andrew Morton in [1] there is better to have most\nsignificant part first in the function name.\n\n[1] https://lkml.org/lkml/2011/9/20/22\n\nThere is no functional change.\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Mimi Zohar \u003czohar@us.ibm.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b67c95b74f17c13c7b3a990540c9dd9b4a8480d",
      "tree": "59ff1e40de9d9540104b57b6e54cbf19f0357a62",
      "parents": [
        "02c3294174e170a47cfd58956a739901160381a8"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Mon Oct 31 17:12:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:55 2011 -0700"
      },
      "message": "drivers/leds/leds-renesas-tpu.c: move Renesas TPU LED driver platform data\n\nUse the platform_data include directory for the TPU LED driver, as\nsuggested by Paul Mundt.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f59b6f9f323ff1b4567a69f9063cdd8bb57805e6",
      "tree": "5f881aa4e699dbed67455422611038a3d86477d3",
      "parents": [
        "1bff3a2093161d1b982a0958e4eb194bf3c8ce47"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Mon Oct 31 17:11:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "leds: Renesas TPU LED driver\n\nAdd V2 of the LED driver for a single timer channel for the TPU hardware\nblock commonly found in Renesas SoCs.\n\nThe driver has been written with optimal Power Management in mind, so to\nsave power the LED is driven as a regular GPIO pin in case of maximum\nbrightness and power off which allows the TPU hardware to be idle and\nwhich in turn allows the clocks to be stopped and the power domain to be\nturned off transparently.\n\nAny other brightness level requires use of the TPU hardware in PWM mode.\nTPU hardware device clocks and power are managed through Runtime PM.\nSystem suspend and resume is known to be working - during suspend the LED\nis set to off by the generic LED code.\n\nThe TPU hardware timer is equipeed with a 16-bit counter together with an\nup-to-divide-by-64 prescaler which makes the hardware suitable for\nbrightness control.  Hardware blink is unsupported.\n\nThe LED PWM waveform has been verified with a Fluke 123 Scope meter on a\nsh7372 Mackerel board.  Tested with experimental sh7372 A3SP power domain\npatches.  Platform device bind/unbind tested ok.\n\nV2 has been tested on the DS2 LED of the sh73a0-based AG5EVM.\n\n[axel.lin@gmail.com: include linux/module.h]\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Axel Lin \u003caxel.lin@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": "0556dc340e5159cdff925a5ab7f3a72f49745661",
      "tree": "cad2c9b013734b7968ce1a82667e34c294013495",
      "parents": [
        "2967b0ad3302d8627c0d99bfed4b8f167e21fdee"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 31 17:11:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "backlight: fix broken regulator API usage in l4f00242t03\n\nThe regulator support in the l4f00242t03 is very non-idiomatic.  Rather\nthan requesting the regulators based on the device name and the supply\nnames used by the device the driver requires boards to pass system\nspecific supply names around through platform data.  The driver also\nconditionally requests the regulators based on this platform data, adding\nunneeded conditional code to the driver.\n\nFix this by removing the platform data and converting to the standard\nidiom, also updating all in tree users of the driver.  As no datasheet\nappears to be available for the LCD I\u0027m guessing the names for the\nsupplies based on the existing users and I\u0027ve no ability to do anything\nmore than compile test.\n\nThe use of regulator_set_voltage() in the driver is also problematic,\nsince fixed voltages are required the expectation would be that the\nvoltages would be fixed in the constraints set by the machines rather than\nmanually configured by the driver, but is less problematic.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nTested-by: Fabio Estevam \u003cfabio.estevam@freescale.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": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"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": "ec400c9fab99d16a491cea17d27d0c6a5780b97c",
      "tree": "38516e6244d3ec0b68e52a5679f0b4b9517d71db",
      "parents": [
        "895c156c044a736d8dc2239020f4530bb6245675"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 31 17:11:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:52 2011 -0700"
      },
      "message": "lis3lv02d: make regulator API usage unconditional\n\nThe regulator API contains a range of features for stubbing itself out\nwhen not in use and for transparently restricting the actual effect of\nregulator API calls where they can\u0027t be supported on a particular system\nso that drivers don\u0027t need to individually implement this.  Simplify the\ndriver slightly by making use of this idiom.\n\nThe only in tree user is ecovec24 which does not use the regulator API.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Éric Piel \u003ceric.piel@tremplin-utc.net\u003e\nCc: Ilkka Koskinen \u003cilkka.koskinen@nokia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d43a87e68e9e71d2987a29cc239acec4e8f410c9",
      "tree": "75b2950b286dcad4c4e7785f991ab0a35146b8d1",
      "parents": [
        "dd73e85f6d8f721d66bcbd2734a5f4bc3d3cd768"
      ],
      "author": {
        "name": "Kyungmin Park",
        "email": "kyungmin.park@samsung.com",
        "time": "Mon Oct 31 17:09:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:49 2011 -0700"
      },
      "message": "mm: compaction: make compact_zone_order() static\n\nThere\u0027s no compact_zone_order() user outside file scope, so make it static.\n\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "09f363c7363eb10cfb4b82094bd7064e5608258b",
      "tree": "4b1890150cf7f7a2339694ea97efa6c45b8705a1",
      "parents": [
        "20c8c62891a346e09c8d26de41ce78bd7a76c5b0"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Mon Oct 31 17:08:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:49 2011 -0700"
      },
      "message": "vmscan: fix shrinker callback bug in fs/super.c\n\nThe callback must not return -1 when nr_to_scan is zero. Fix the bug in\nfs/super.c and add this requirement to the callback specification.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ee9a4f086716d792219c021e8509f91165a4128",
      "tree": "f85162b8e024624f07909eaba4e85b89df924ebb",
      "parents": [
        "06d5e032adcbc7d50c606a1396f00e2474e4213e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:08:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm: neaten warn_alloc_failed\n\nAdd __attribute__((format (printf...) to the function to validate format\nand arguments.  Use vsprintf extension %pV to avoid any possible message\ninterleaving.  Coalesce format string.  Convert printks/pr_warning to\npr_warn.\n\n[akpm@linux-foundation.org: use the __printf() macro]\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": "37a1c49a91ad55f917a399ef2174b5ebda4283f9",
      "tree": "d272ab0f51016181493c6792f0cf229a87da9ae3",
      "parents": [
        "7b6efc2bc4f19952b25ebf9b236e5ac43cd386c2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Oct 31 17:08:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "thp: mremap support and TLB optimization\n\nThis adds THP support to mremap (decreases the number of split_huge_page()\ncalls).\n\nHere are also some benchmarks with a proggy like this:\n\n\u003d\u003d\u003d\n#define _GNU_SOURCE\n#include \u003csys/mman.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/time.h\u003e\n\n#define SIZE (5UL*1024*1024*1024)\n\nint main()\n{\n        static struct timeval oldstamp, newstamp;\n\tlong diffsec;\n\tchar *p, *p2, *p3, *p4;\n\tif (posix_memalign((void **)\u0026p, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p2, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p3, 2*1024*1024, 4096))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tgettimeofday(\u0026oldstamp, NULL);\n\tp4 \u003d mremap(p, SIZE, SIZE, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tgettimeofday(\u0026newstamp, NULL);\n\tdiffsec \u003d newstamp.tv_sec - oldstamp.tv_sec;\n\tdiffsec \u003d newstamp.tv_usec - oldstamp.tv_usec + 1000000 * diffsec;\n\tprintf(\"usec %ld\\n\", diffsec);\n\tif (p \u003d\u003d MAP_FAILED || p4 !\u003d p3)\n\t//if (p \u003d\u003d MAP_FAILED)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p4, p2, SIZE))\n\t\tprintf(\"mremap bug\\n\"), exit(1);\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\nTHP on\n\n Performance counter stats for \u0027./largepage13\u0027 (3 runs):\n\n          69195836 dTLB-loads                 ( +-   3.546% )  (scaled from 50.30%)\n             60708 dTLB-load-misses           ( +-  11.776% )  (scaled from 52.62%)\n         676266476 dTLB-stores                ( +-   5.654% )  (scaled from 69.54%)\n             29856 dTLB-store-misses          ( +-   4.081% )  (scaled from 89.22%)\n        1055848782 iTLB-loads                 ( +-   4.526% )  (scaled from 80.18%)\n              8689 iTLB-load-misses           ( +-   2.987% )  (scaled from 58.20%)\n\n        7.314454164  seconds time elapsed   ( +-   0.023% )\n\nTHP off\n\n Performance counter stats for \u0027./largepage13\u0027 (3 runs):\n\n        1967379311 dTLB-loads                 ( +-   0.506% )  (scaled from 60.59%)\n           9238687 dTLB-load-misses           ( +-  22.547% )  (scaled from 61.87%)\n        2014239444 dTLB-stores                ( +-   0.692% )  (scaled from 60.40%)\n           3312335 dTLB-store-misses          ( +-   7.304% )  (scaled from 67.60%)\n        6764372065 iTLB-loads                 ( +-   0.925% )  (scaled from 79.00%)\n              8202 iTLB-load-misses           ( +-   0.475% )  (scaled from 70.55%)\n\n        9.693655243  seconds time elapsed   ( +-   0.069% )\n\ngrep thp /proc/vmstat\nthp_fault_alloc 35849\nthp_fault_fallback 0\nthp_collapse_alloc 3\nthp_collapse_alloc_failed 0\nthp_split 0\n\nthp_split 0 confirms no thp split despite plenty of hugepages allocated.\n\nThe measurement of only the mremap time (so excluding the 3 long\nmemset and final long 10GB memory accessing memcmp):\n\nTHP on\n\nusec 14824\nusec 14862\nusec 14859\n\nTHP off\n\nusec 256416\nusec 255981\nusec 255847\n\nWith an older kernel without the mremap optimizations (the below patch\noptimizes the non THP version too).\n\nTHP on\n\nusec 392107\nusec 390237\nusec 404124\n\nTHP off\n\nusec 444294\nusec 445237\nusec 445820\n\nI guess with a threaded program that sends more IPI on large SMP it\u0027d\ncreate an even larger difference.\n\nAll debug options are off except DEBUG_VM to avoid skewing the\nresults.\n\nThe only problem for native 2M mremap like it happens above both the\nsource and destination address must be 2M aligned or the hugepmd can\u0027t be\nmoved without a split but that is an hardware limitation.\n\n[akpm@linux-foundation.org: coding-style nitpicking]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a93ebef698b08ed04af0d7d913bab8aedfdc253",
      "tree": "dcdb4bba9355647dd060d9150422537ad126442a",
      "parents": [
        "f5252e009d5b87071a919221e4f6624184005368"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Oct 31 17:08:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "memblock: add memblock_start_of_DRAM()\n\nSPARC32 require access to the start address.  Add a new helper\nmemblock_start_of_DRAM() to give access to the address of the first\nmemblock - which contains the lowest address.\n\nThe awkward name was chosen to match the already present\nmemblock_end_of_DRAM().\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\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": "f5252e009d5b87071a919221e4f6624184005368",
      "tree": "4be380e99c468dcb10597c445eb6b801897eafea",
      "parents": [
        "8c5fb8eadde41f67c61a7ac2d3246dab87bf7020"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Oct 31 17:08:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm: avoid null pointer access in vm_struct via /proc/vmallocinfo\n\nThe /proc/vmallocinfo shows information about vmalloc allocations in\nvmlist that is a linklist of vm_struct.  It, however, may access pages\nfield of vm_struct where a page was not allocated.  This results in a null\npointer access and leads to a kernel panic.\n\nWhy this happens: In __vmalloc_node_range() called from vmalloc(), newly\nallocated vm_struct is added to vmlist at __get_vm_area_node() and then,\nsome fields of vm_struct such as nr_pages and pages are set at\n__vmalloc_area_node().  In other words, it is added to vmlist before it is\nfully initialized.  At the same time, when the /proc/vmallocinfo is read,\nit accesses the pages field of vm_struct according to the nr_pages field\nat show_numa_info().  Thus, a null pointer access happens.\n\nThe patch adds the newly allocated vm_struct to the vmlist *after* it is\nfully initialized.  So, it can avoid accessing the pages field with\nunallocated page when show_numa_info() is called.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "798248206b59acc6e1238c778281419c041891a7",
      "tree": "ff8564431367b442b18bca4a0a9732e5799e2391",
      "parents": [
        "77311139f364d7f71fc9ba88f59fd90e60205007"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:08:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "lib/string.c: introduce memchr_inv()\n\nmemchr_inv() is mainly used to check whether the whole buffer is filled\nwith just a specified byte.\n\nThe function name and prototype are stolen from logfs and the\nimplementation is from SLUB.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\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": "49ea7eb65e7c5060807fb9312b1ad4c3eab82e2c",
      "tree": "88eaa206cdcac1190817820a0eb56bca2585f9ea",
      "parents": [
        "92df3a723f84cdf8133560bbff950a7a99e92bc9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm: vmscan: immediately reclaim end-of-LRU dirty pages when writeback completes\n\nWhen direct reclaim encounters a dirty page, it gets recycled around the\nLRU for another cycle.  This patch marks the page PageReclaim similar to\ndeactivate_page() so that the page gets reclaimed almost immediately after\nthe page gets cleaned.  This is to avoid reclaiming clean pages that are\nyounger than a dirty page encountered at the end of the LRU that might\nhave been something like a use-once page.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee72886d8ed5d9de3fa0ed3b99a7ca7702576a96",
      "tree": "d9596005d3ea38541c5dfe1c2a0b7d5a4d73488f",
      "parents": [
        "e10d59f2c3decaf22cc5d3de7040eba202bc2df3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Oct 31 17:07:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: do not writeback filesystem pages in direct reclaim\n\nTesting from the XFS folk revealed that there is still too much I/O from\nthe end of the LRU in kswapd.  Previously it was considered acceptable by\nVM people for a small number of pages to be written back from reclaim with\ntesting generally showing about 0.3% of pages reclaimed were written back\n(higher if memory was low).  That writing back a small number of pages is\nok has been heavily disputed for quite some time and Dave Chinner\nexplained it well;\n\n\tIt doesn\u0027t have to be a very high number to be a problem. IO\n\tis orders of magnitude slower than the CPU time it takes to\n\tflush a page, so the cost of making a bad flush decision is\n\tvery high. And single page writeback from the LRU is almost\n\talways a bad flush decision.\n\nTo complicate matters, filesystems respond very differently to requests\nfrom reclaim according to Christoph Hellwig;\n\n\txfs tries to write it back if the requester is kswapd\n\text4 ignores the request if it\u0027s a delayed allocation\n\tbtrfs ignores the request\n\nAs a result, each filesystem has different performance characteristics\nwhen under memory pressure and there are many pages being dirtied.  In\nsome cases, the request is ignored entirely so the VM cannot depend on the\nIO being dispatched.\n\nThe objective of this series is to reduce writing of filesystem-backed\npages from reclaim, play nicely with writeback that is already in progress\nand throttle reclaim appropriately when writeback pages are encountered.\nThe assumption is that the flushers will always write pages faster than if\nreclaim issues the IO.\n\nA secondary goal is to avoid the problem whereby direct reclaim splices\ntwo potentially deep call stacks together.\n\nThere is a potential new problem as reclaim has less control over how long\nbefore a page in a particularly zone or container is cleaned and direct\nreclaimers depend on kswapd or flusher threads to do the necessary work.\nHowever, as filesystems sometimes ignore direct reclaim requests already,\nit is not expected to be a serious issue.\n\nPatch 1 disables writeback of filesystem pages from direct reclaim\n\tentirely. Anonymous pages are still written.\n\nPatch 2 removes dead code in lumpy reclaim as it is no longer able\n\tto synchronously write pages. This hurts lumpy reclaim but\n\tthere is an expectation that compaction is used for hugepage\n\tallocations these days and lumpy reclaim\u0027s days are numbered.\n\nPatches 3-4 add warnings to XFS and ext4 if called from\n\tdirect reclaim. With patch 1, this \"never happens\" and is\n\tintended to catch regressions in this logic in the future.\n\nPatch 5 disables writeback of filesystem pages from kswapd unless\n\tthe priority is raised to the point where kswapd is considered\n\tto be in trouble.\n\nPatch 6 throttles reclaimers if too many dirty pages are being\n\tencountered and the zones or backing devices are congested.\n\nPatch 7 invalidates dirty pages found at the end of the LRU so they\n\tare reclaimed quickly after being written back rather than\n\twaiting for a reclaimer to find them\n\nI consider this series to be orthogonal to the writeback work but it is\nworth noting that the writeback work affects the viability of patch 8 in\nparticular.\n\nI tested this on ext4 and xfs using fs_mark, a simple writeback test based\non dd and a micro benchmark that does a streaming write to a large mapping\n(exercises use-once LRU logic) followed by streaming writes to a mix of\nanonymous and file-backed mappings.  The command line for fs_mark when\nbotted with 512M looked something like\n\n./fs_mark -d  /tmp/fsmark-2676  -D  100  -N  150  -n  150  -L  25  -t  1  -S0  -s  10485760\n\nThe number of files was adjusted depending on the amount of available\nmemory so that the files created was about 3xRAM.  For multiple threads,\nthe -d switch is specified multiple times.\n\nThe test machine is x86-64 with an older generation of AMD processor with\n4 cores.  The underlying storage was 4 disks configured as RAID-0 as this\nwas the best configuration of storage I had available.  Swap is on a\nseparate disk.  Dirty ratio was tuned to 40% instead of the default of\n20%.\n\nTesting was run with and without monitors to both verify that the patches\nwere operating as expected and that any performance gain was real and not\ndue to interference from monitors.\n\nHere is a summary of results based on testing XFS.\n\n512M1P-xfs           Files/s  mean                 32.69 ( 0.00%)     34.44 ( 5.08%)\n512M1P-xfs           Elapsed Time fsmark                    51.41     48.29\n512M1P-xfs           Elapsed Time simple-wb                114.09    108.61\n512M1P-xfs           Elapsed Time mmap-strm                113.46    109.34\n512M1P-xfs           Kswapd efficiency fsmark                 62%       63%\n512M1P-xfs           Kswapd efficiency simple-wb              56%       61%\n512M1P-xfs           Kswapd efficiency mmap-strm              44%       42%\n512M-xfs             Files/s  mean                 30.78 ( 0.00%)     35.94 (14.36%)\n512M-xfs             Elapsed Time fsmark                    56.08     48.90\n512M-xfs             Elapsed Time simple-wb                112.22     98.13\n512M-xfs             Elapsed Time mmap-strm                219.15    196.67\n512M-xfs             Kswapd efficiency fsmark                 54%       56%\n512M-xfs             Kswapd efficiency simple-wb              54%       55%\n512M-xfs             Kswapd efficiency mmap-strm              45%       44%\n512M-4X-xfs          Files/s  mean                 30.31 ( 0.00%)     33.33 ( 9.06%)\n512M-4X-xfs          Elapsed Time fsmark                    63.26     55.88\n512M-4X-xfs          Elapsed Time simple-wb                100.90     90.25\n512M-4X-xfs          Elapsed Time mmap-strm                261.73    255.38\n512M-4X-xfs          Kswapd efficiency fsmark                 49%       50%\n512M-4X-xfs          Kswapd efficiency simple-wb              54%       56%\n512M-4X-xfs          Kswapd efficiency mmap-strm              37%       36%\n512M-16X-xfs         Files/s  mean                 60.89 ( 0.00%)     65.22 ( 6.64%)\n512M-16X-xfs         Elapsed Time fsmark                    67.47     58.25\n512M-16X-xfs         Elapsed Time simple-wb                103.22     90.89\n512M-16X-xfs         Elapsed Time mmap-strm                237.09    198.82\n512M-16X-xfs         Kswapd efficiency fsmark                 45%       46%\n512M-16X-xfs         Kswapd efficiency simple-wb              53%       55%\n512M-16X-xfs         Kswapd efficiency mmap-strm              33%       33%\n\nUp until 512-4X, the FSmark improvements were statistically significant.\nFor the 4X and 16X tests the results were within standard deviations but\njust barely.  The time to completion for all tests is improved which is an\nimportant result.  In general, kswapd efficiency is not affected by\nskipping dirty pages.\n\n1024M1P-xfs          Files/s  mean                 39.09 ( 0.00%)     41.15 ( 5.01%)\n1024M1P-xfs          Elapsed Time fsmark                    84.14     80.41\n1024M1P-xfs          Elapsed Time simple-wb                210.77    184.78\n1024M1P-xfs          Elapsed Time mmap-strm                162.00    160.34\n1024M1P-xfs          Kswapd efficiency fsmark                 69%       75%\n1024M1P-xfs          Kswapd efficiency simple-wb              71%       77%\n1024M1P-xfs          Kswapd efficiency mmap-strm              43%       44%\n1024M-xfs            Files/s  mean                 35.45 ( 0.00%)     37.00 ( 4.19%)\n1024M-xfs            Elapsed Time fsmark                    94.59     91.00\n1024M-xfs            Elapsed Time simple-wb                229.84    195.08\n1024M-xfs            Elapsed Time mmap-strm                405.38    440.29\n1024M-xfs            Kswapd efficiency fsmark                 79%       71%\n1024M-xfs            Kswapd efficiency simple-wb              74%       74%\n1024M-xfs            Kswapd efficiency mmap-strm              39%       42%\n1024M-4X-xfs         Files/s  mean                 32.63 ( 0.00%)     35.05 ( 6.90%)\n1024M-4X-xfs         Elapsed Time fsmark                   103.33     97.74\n1024M-4X-xfs         Elapsed Time simple-wb                204.48    178.57\n1024M-4X-xfs         Elapsed Time mmap-strm                528.38    511.88\n1024M-4X-xfs         Kswapd efficiency fsmark                 81%       70%\n1024M-4X-xfs         Kswapd efficiency simple-wb              73%       72%\n1024M-4X-xfs         Kswapd efficiency mmap-strm              39%       38%\n1024M-16X-xfs        Files/s  mean                 42.65 ( 0.00%)     42.97 ( 0.74%)\n1024M-16X-xfs        Elapsed Time fsmark                   103.11     99.11\n1024M-16X-xfs        Elapsed Time simple-wb                200.83    178.24\n1024M-16X-xfs        Elapsed Time mmap-strm                397.35    459.82\n1024M-16X-xfs        Kswapd efficiency fsmark                 84%       69%\n1024M-16X-xfs        Kswapd efficiency simple-wb              74%       73%\n1024M-16X-xfs        Kswapd efficiency mmap-strm              39%       40%\n\nAll FSMark tests up to 16X had statistically significant improvements.\nFor the most part, tests are completing faster with the exception of the\nstreaming writes to a mixture of anonymous and file-backed mappings which\nwere slower in two cases\n\nIn the cases where the mmap-strm tests were slower, there was more\nswapping due to dirty pages being skipped.  The number of additional pages\nswapped is almost identical to the fewer number of pages written from\nreclaim.  In other words, roughly the same number of pages were reclaimed\nbut swapping was slower.  As the test is a bit unrealistic and stresses\nmemory heavily, the small shift is acceptable.\n\n4608M1P-xfs          Files/s  mean                 29.75 ( 0.00%)     30.96 ( 3.91%)\n4608M1P-xfs          Elapsed Time fsmark                   512.01    492.15\n4608M1P-xfs          Elapsed Time simple-wb                618.18    566.24\n4608M1P-xfs          Elapsed Time mmap-strm                488.05    465.07\n4608M1P-xfs          Kswapd efficiency fsmark                 93%       86%\n4608M1P-xfs          Kswapd efficiency simple-wb              88%       84%\n4608M1P-xfs          Kswapd efficiency mmap-strm              46%       45%\n4608M-xfs            Files/s  mean                 27.60 ( 0.00%)     28.85 ( 4.33%)\n4608M-xfs            Elapsed Time fsmark                   555.96    532.34\n4608M-xfs            Elapsed Time simple-wb                659.72    571.85\n4608M-xfs            Elapsed Time mmap-strm               1082.57   1146.38\n4608M-xfs            Kswapd efficiency fsmark                 89%       91%\n4608M-xfs            Kswapd efficiency simple-wb              88%       82%\n4608M-xfs            Kswapd efficiency mmap-strm              48%       46%\n4608M-4X-xfs         Files/s  mean                 26.00 ( 0.00%)     27.47 ( 5.35%)\n4608M-4X-xfs         Elapsed Time fsmark                   592.91    564.00\n4608M-4X-xfs         Elapsed Time simple-wb                616.65    575.07\n4608M-4X-xfs         Elapsed Time mmap-strm               1773.02   1631.53\n4608M-4X-xfs         Kswapd efficiency fsmark                 90%       94%\n4608M-4X-xfs         Kswapd efficiency simple-wb              87%       82%\n4608M-4X-xfs         Kswapd efficiency mmap-strm              43%       43%\n4608M-16X-xfs        Files/s  mean                 26.07 ( 0.00%)     26.42 ( 1.32%)\n4608M-16X-xfs        Elapsed Time fsmark                   602.69    585.78\n4608M-16X-xfs        Elapsed Time simple-wb                606.60    573.81\n4608M-16X-xfs        Elapsed Time mmap-strm               1549.75   1441.86\n4608M-16X-xfs        Kswapd efficiency fsmark                 98%       98%\n4608M-16X-xfs        Kswapd efficiency simple-wb              88%       82%\n4608M-16X-xfs        Kswapd efficiency mmap-strm              44%       42%\n\nUnlike the other tests, the fsmark results are not statistically\nsignificant but the min and max times are both improved and for the most\npart, tests completed faster.\n\nThere are other indications that this is an improvement as well.  For\nexample, in the vast majority of cases, there were fewer pages scanned by\ndirect reclaim implying in many cases that stalls due to direct reclaim\nare reduced.  KSwapd is scanning more due to skipping dirty pages which is\nunfortunate but the CPU usage is still acceptable\n\nIn an earlier set of tests, I used blktrace and in almost all cases\nthroughput throughout the entire test was higher.  However, I ended up\ndiscarding those results as recording blktrace data was too heavy for my\nliking.\n\nOn a laptop, I plugged in a USB stick and ran a similar tests of tests\nusing it as backing storage.  A desktop environment was running and for\nthe entire duration of the tests, firefox and gnome terminal were\nlaunching and exiting to vaguely simulate a user.\n\n1024M-xfs            Files/s  mean               0.41 ( 0.00%)        0.44 ( 6.82%)\n1024M-xfs            Elapsed Time fsmark               2053.52   1641.03\n1024M-xfs            Elapsed Time simple-wb            1229.53    768.05\n1024M-xfs            Elapsed Time mmap-strm            4126.44   4597.03\n1024M-xfs            Kswapd efficiency fsmark              84%       85%\n1024M-xfs            Kswapd efficiency simple-wb           92%       81%\n1024M-xfs            Kswapd efficiency mmap-strm           60%       51%\n1024M-xfs            Avg wait ms fsmark                5404.53     4473.87\n1024M-xfs            Avg wait ms simple-wb             2541.35     1453.54\n1024M-xfs            Avg wait ms mmap-strm             3400.25     3852.53\n\nThe mmap-strm results were hurt because firefox launching had a tendency\nto push the test out of memory.  On the postive side, firefox launched\nmarginally faster with the patches applied.  Time to completion for many\ntests was faster but more importantly - the \"Avg wait\" time as measured by\niostat was far lower implying the system would be more responsive.  It was\nalso the case that \"Avg wait ms\" on the root filesystem was lower.  I\ntested it manually and while the system felt slightly more responsive\nwhile copying data to a USB stick, it was marginal enough that it could be\nmy imagination.\n\nThis patch: do not writeback filesystem pages in direct reclaim.\n\nWhen kswapd is failing to keep zones above the min watermark, a process\nwill enter direct reclaim in the same manner kswapd does.  If a dirty page\nis encountered during the scan, this page is written to backing storage\nusing mapping-\u003ewritepage.\n\nThis causes two problems.  First, it can result in very deep call stacks,\nparticularly if the target storage or filesystem are complex.  Some\nfilesystems ignore write requests from direct reclaim as a result.  The\nsecond is that a single-page flush is inefficient in terms of IO.  While\nthere is an expectation that the elevator will merge requests, this does\nnot always happen.  Quoting Christoph Hellwig;\n\n\tThe elevator has a relatively small window it can operate on,\n\tand can never fix up a bad large scale writeback pattern.\n\nThis patch prevents direct reclaim writing back filesystem pages by\nchecking if current is kswapd.  Anonymous pages are still written to swap\nas there is not the equivalent of a flusher thread for anonymous pages.\nIf the dirty pages cannot be written back, they are placed back on the LRU\nlists.  There is now a direct dependency on dirty page balancing to\nprevent too many pages in the system being dirtied which would prevent\nreclaim making forward progress.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "e10d59f2c3decaf22cc5d3de7040eba202bc2df3"
}
