)]}'
{
  "log": [
    {
      "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": "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": "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": "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"
    },
    {
      "commit": "e10d59f2c3decaf22cc5d3de7040eba202bc2df3",
      "tree": "68a25b573ddd1701d6a50f22b26287eca8e5c1ea",
      "parents": [
        "bc3e53f682d93df677dbd5006a404722b3adfe18"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Oct 31 17:07:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: add comments to explain mm_struct fields\n\nAdd comments to explain the page statistics field in the mm_struct.\n\n[akpm@linux-foundation.org: add missing ;]\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc3e53f682d93df677dbd5006a404722b3adfe18",
      "tree": "f386c29f13626e2b7d98d5a52525a78a9b59e447",
      "parents": [
        "f11c0ca501af89fc07b0d9f17531ba3b68a4ef39"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Oct 31 17:07:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: distinguish between mlocked and pinned pages\n\nSome kernel components pin user space memory (infiniband and perf) (by\nincreasing the page count) and account that memory as \"mlocked\".\n\nThe difference between mlocking and pinning is:\n\nA. mlocked pages are marked with PG_mlocked and are exempt from\n   swapping. Page migration may move them around though.\n   They are kept on a special LRU list.\n\nB. Pinned pages cannot be moved because something needs to\n   directly access physical memory. They may not be on any\n   LRU list.\n\nI recently saw an mlockalled process where mm-\u003elocked_vm became\nbigger than the virtual size of the process (!) because some\nmemory was accounted for twice:\n\nOnce when the page was mlocked and once when the Infiniband\nlayer increased the refcount because it needt to pin the RDMA\nmemory.\n\nThis patch introduces a separate counter for pinned pages and\naccounts them seperately.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Mike Marciniszyn \u003cinfinipath@qlogic.com\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: Sean Hefty \u003csean.hefty@intel.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": "43362a4977e37db46f86f7e6ab935f0006956632",
      "tree": "5ab7070237ebd3f40d7fcfc0066586422da8310a",
      "parents": [
        "c9f01245b6a7d77d17deaa71af10f6aca14fa24e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: fix race while temporarily setting current\u0027s oom_score_adj\n\ntest_set_oom_score_adj() was introduced in 72788c385604 (\"oom: replace\nPF_OOM_ORIGIN with toggling oom_score_adj\") to temporarily elevate\ncurrent\u0027s oom_score_adj for ksm and swapoff without requiring an\nadditional per-process flag.\n\nUsing that function to both set oom_score_adj to OOM_SCORE_ADJ_MAX and\nthen reinstate the previous value is racy since it\u0027s possible that\nuserspace can set the value to something else itself before the old value\nis reinstated.  That results in userspace setting current\u0027s oom_score_adj\nto a different value and then the kernel immediately setting it back to\nits previous value without notification.\n\nTo fix this, a new compare_swap_oom_score_adj() function is introduced\nwith the same semantics as the compare and swap CAS instruction, or\nCMPXCHG on x86.  It is used to reinstate the previous value of\noom_score_adj if and only if the present value is the same as the old\nvalue.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9f01245b6a7d77d17deaa71af10f6aca14fa24e",
      "tree": "13ffde591a5bcefba39cb6393f09b27f1ebc1a30",
      "parents": [
        "7b0d44fa49b1dcfdcf4897f12ddd12ddeab1a9d7"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: remove oom_disable_count\n\nThis removes mm-\u003eoom_disable_count entirely since it\u0027s unnecessary and\ncurrently buggy.  The counter was intended to be per-process but it\u0027s\ncurrently decremented in the exit path for each thread that exits, causing\nit to underflow.\n\nThe count was originally intended to prevent oom killing threads that\nshare memory with threads that cannot be killed since it doesn\u0027t lead to\nfuture memory freeing.  The counter could be fixed to represent all\nthreads sharing the same mm, but it\u0027s better to remove the count since:\n\n - it is possible that the OOM_DISABLE thread sharing memory with the\n   victim is waiting on that thread to exit and will actually cause\n   future memory freeing, and\n\n - there is no guarantee that a thread is disabled from oom killing just\n   because another thread sharing its mm is oom disabled.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f80c0673610e36ae29d63e3297175e22f70dde5f",
      "tree": "0a6aab3b637fa75961224e9261eb544156672c34",
      "parents": [
        "39deaf8585152f1a35c1676d3d7dc6ae0fb65967"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: zone_reclaim: make isolate_lru_page() filter-aware\n\nIn __zone_reclaim case, we don\u0027t want to shrink mapped page.  Nonetheless,\nwe have isolated mapped page and re-add it into LRU\u0027s head.  It\u0027s\nunnecessary CPU overhead and makes LRU churning.\n\nOf course, when we isolate the page, the page might be mapped but when we\ntry to migrate the page, the page would be not mapped.  So it could be\nmigrated.  But race is rare and although it happens, it\u0027s no big deal.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39deaf8585152f1a35c1676d3d7dc6ae0fb65967",
      "tree": "a7509ea61c2f1028ed7ef961aa1abd16d50905f9",
      "parents": [
        "4356f21d09283dc6d39a6f7287a65ddab61e2808"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: compaction: make isolate_lru_page() filter-aware\n\nIn async mode, compaction doesn\u0027t migrate dirty or writeback pages.  So,\nit\u0027s meaningless to pick the page and re-add it to lru list.\n\nOf course, when we isolate the page in compaction, the page might be dirty\nor writeback but when we try to migrate the page, the page would be not\ndirty, writeback.  So it could be migrated.  But it\u0027s very unlikely as\nisolate and migration cycle is much faster than writeout.\n\nSo, this patch helps cpu overhead and prevent unnecessary LRU churning.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4356f21d09283dc6d39a6f7287a65ddab61e2808",
      "tree": "34822a1662ea83291455834556a4fb5bf98ecd72",
      "parents": [
        "b9e84ac1536d35aee03b2601f19694949f0bd506"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: change isolate mode from #define to bitwise type\n\nChange ISOLATE_XXX macro with bitwise isolate_mode_t type.  Normally,\nmacro isn\u0027t recommended as it\u0027s type-unsafe and making debugging harder as\nsymbol cannot be passed throught to the debugger.\n\nQuote from Johannes\n\" Hmm, it would probably be cleaner to fully convert the isolation mode\ninto independent flags.  INACTIVE, ACTIVE, BOTH is currently a\ntri-state among flags, which is a bit ugly.\"\n\nThis patch moves isolate mode from swap.h to mmzone.h by memcontrol.h\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcf634098c00dd9cd247447368495f0b79be12d1",
      "tree": "77fc98cd461bd52ba3b14e833d54a115ffbbd7bc",
      "parents": [
        "32ea845d5bafc37b7406bea1aee3005407cb0900"
      ],
      "author": {
        "name": "Christopher Yeoh",
        "email": "cyeoh@au1.ibm.com",
        "time": "Mon Oct 31 17:06:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "Cross Memory Attach\n\nThe basic idea behind cross memory attach is to allow MPI programs doing\nintra-node communication to do a single copy of the message rather than a\ndouble copy of the message via shared memory.\n\nThe following patch attempts to achieve this by allowing a destination\nprocess, given an address and size from a source process, to copy memory\ndirectly from the source process into its own address space via a system\ncall.  There is also a symmetrical ability to copy from the current\nprocess\u0027s address space into a destination process\u0027s address space.\n\n- Use of /proc/pid/mem has been considered, but there are issues with\n  using it:\n  - Does not allow for specifying iovecs for both src and dest, assuming\n    preadv or pwritev was implemented either the area read from or\n  written to would need to be contiguous.\n  - Currently mem_read allows only processes who are currently\n  ptrace\u0027ing the target and are still able to ptrace the target to read\n  from the target. This check could possibly be moved to the open call,\n  but its not clear exactly what race this restriction is stopping\n  (reason  appears to have been lost)\n  - Having to send the fd of /proc/self/mem via SCM_RIGHTS on unix\n  domain socket is a bit ugly from a userspace point of view,\n  especially when you may have hundreds if not (eventually) thousands\n  of processes  that all need to do this with each other\n  - Doesn\u0027t allow for some future use of the interface we would like to\n  consider adding in the future (see below)\n  - Interestingly reading from /proc/pid/mem currently actually\n  involves two copies! (But this could be fixed pretty easily)\n\nAs mentioned previously use of vmsplice instead was considered, but has\nproblems.  Since you need the reader and writer working co-operatively if\nthe pipe is not drained then you block.  Which requires some wrapping to\ndo non blocking on the send side or polling on the receive.  In all to all\ncommunication it requires ordering otherwise you can deadlock.  And in the\nexample of many MPI tasks writing to one MPI task vmsplice serialises the\ncopying.\n\nThere are some cases of MPI collectives where even a single copy interface\ndoes not get us the performance gain we could.  For example in an\nMPI_Reduce rather than copy the data from the source we would like to\ninstead use it directly in a mathops (say the reduce is doing a sum) as\nthis would save us doing a copy.  We don\u0027t need to keep a copy of the data\nfrom the source.  I haven\u0027t implemented this, but I think this interface\ncould in the future do all this through the use of the flags - eg could\nspecify the math operation and type and the kernel rather than just\ncopying the data would apply the specified operation between the source\nand destination and store it in the destination.\n\nAlthough we don\u0027t have a \"second user\" of the interface (though I\u0027ve had\nsome nibbles from people who may be interested in using it for intra\nprocess messaging which is not MPI).  This interface is something which\nhardware vendors are already doing for their custom drivers to implement\nfast local communication.  And so in addition to this being useful for\nOpenMPI it would mean the driver maintainers don\u0027t have to fix things up\nwhen the mm changes.\n\nThere was some discussion about how much faster a true zero copy would\ngo. Here\u0027s a link back to the email with some testing I did on that:\n\nhttp://marc.info/?l\u003dlinux-mm\u0026m\u003d130105930902915\u0026w\u003d2\n\nThere is a basic man page for the proposed interface here:\n\nhttp://ozlabs.org/~cyeoh/cma/process_vm_readv.txt\n\nThis has been implemented for x86 and powerpc, other architecture should\nmainly (I think) just need to add syscall numbers for the process_vm_readv\nand process_vm_writev. There are 32 bit compatibility versions for\n64-bit kernels.\n\nFor arch maintainers there are some simple tests to be able to quickly\nverify that the syscalls are working correctly here:\n\nhttp://ozlabs.org/~cyeoh/cma/cma-test-20110718.tgz\n\nSigned-off-by: Chris Yeoh \u003cyeohc@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \u003clinux-man@vger.kernel.org\u003e\nCc: \u003clinux-arch@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": "6eea69dd8befeabd3d0f217400f54b157dd91fe9",
      "tree": "c46d983c78874bf993a14dd87022b4b526be1ab6",
      "parents": [
        "07a723097cd31e9c2def69ac4d42834a16f79219"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Oct 31 17:06:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "include/linux/dmar.h: forward-declare struct acpi_dmar_header\n\nx86_64 allnoconfig:\n\nIn file included from arch/x86/kernel/pci-dma.c:3:\ninclude/linux/dmar.h:248: warning: \u0027struct acpi_dmar_header\u0027 declared inside parameter list\ninclude/linux/dmar.h:248: warning: its scope is only this definition or declaration, which is probably not what you want\n\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32087d4eeca14b82660dab288b1d659963b954bd",
      "tree": "8c131ca9bf08f88d3b02e1937b795a42f8951d79",
      "parents": [
        "b1c907f3b2675ecb01e340948fc62d6535ff5ac3",
        "07ea815b22b9f70ec8de6ddf8db63a1dd1585caf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 16:14:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 16:14:20 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6: (54 commits)\n  [S390] Remove error checking from copy_oldmem_page()\n  [S390] qdio: prevent dsci access without adapter interrupts\n  [S390] irqstats: split IPI interrupt accounting\n  [S390] add missing __tlb_flush_global() for !CONFIG_SMP\n  [S390] sparse: fix sparse symbol shadow warning\n  [S390] sparse: fix sparse NULL pointer warnings\n  [S390] sparse: fix sparse warnings with __user pointers\n  [S390] sparse: fix sparse warnings in math-emu\n  [S390] sparse: fix sparse warnings about missing prototypes\n  [S390] sparse: fix sparse ANSI-C warnings\n  [S390] sparse: fix sparse static warnings\n  [S390] sparse: fix access past end of array warnings\n  [S390] dasd: prevent path verification before resume\n  [S390] qdio: remove multicast polling\n  [S390] qdio: reset outbound SBAL error states\n  [S390] qdio: EQBS retry after CCQ 96\n  [S390] qdio: add timestamp for last queue scan time\n  [S390] Introduce get_clock_fast()\n  [S390] kvm: Handle diagnose 0x10 (release pages)\n  [S390] take mmap_sem when walking guest page table\n  ...\n"
    },
    {
      "commit": "1eb63378354ac37b7e27d256bbf84684751bac32",
      "tree": "0775591a2dced778d1ba0bd8a946831e424d02d7",
      "parents": [
        "1a4ceab195e66bce9c1638fdded6d92988100ba4",
        "bac2dacd5fb9ddad093d7a2dc5ab44e764874821"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:42:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:42:54 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: (348 commits)\n  [media] pctv452e: Remove bogus code\n  [media] adv7175: Make use of media bus pixel codes\n  [media] media: vb2: fix incorrect return value\n  [media] em28xx: implement VIDIOC_ENUM_FRAMESIZES\n  [media] cx23885: Stop the risc video fifo before reconfiguring it\n  [media] cx23885: Avoid incorrect error handling and reporting\n  [media] cx23885: Avoid stopping the risc engine during buffer timeout\n  [media] cx23885: Removed a spurious function cx23885_set_scale()\n  [media] cx23885: v4l2 api compliance, set the audioset field correctly\n  [media] cx23885: hook the audio selection functions into the main driver\n  [media] cx23885: add generic functions for dealing with audio input selection\n  [media] cx23885: fixes related to maximum number of inputs and range checking\n  [media] cx23885: Initial support for the MPX-885 mini-card\n  [media] cx25840: Ensure AUDIO6 and AUDIO7 trigger line-in baseband use\n  [media] cx23885: Enable audio line in support from the back panel\n  [media] cx23885: Allow the audio mux config to be specified on a per input basis\n  [media] cx25840: Enable support for non-tuner LR1/LR2 audio inputs\n  [media] cx23885: Name an internal i2c part and declare a bitfield by name\n  [media] cx23885: Ensure VBI buffers timeout quickly - bugfix for vbi hangs during streaming\n  [media] cx23885: remove channel dump diagnostics when a vbi buffer times out\n  ...\n\nFix up trivial conflicts in drivers/misc/altera-stapl/altera.c (header\nfile rename vs add)\n"
    },
    {
      "commit": "1a4ceab195e66bce9c1638fdded6d92988100ba4",
      "tree": "3ec17bd66fb3ac1429131e373cc8d99550d5451a",
      "parents": [
        "83f89ca755c9f783b8229d968c4e9d2c660ca427",
        "6a32e4f9dd9219261f8856f817e6655114cfec2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:44 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: (27 commits)\n  vlan: allow nested vlan_do_receive()\n  ipv6: fix route lookup in addrconf_prefix_rcv()\n  bonding: eliminate bond_close race conditions\n  qlcnic: fix beacon and LED test.\n  qlcnic: Updated License file\n  qlcnic: updated reset sequence\n  qlcnic: reset loopback mode if promiscous mode setting fails.\n  qlcnic: skip IDC ack check in fw reset path.\n  i825xx: Fix incorrect dependency for BVME6000_NET\n  ipv6: fix route error binding peer in func icmp6_dst_alloc\n  ipv6: fix error propagation in ip6_ufo_append_data()\n  stmmac: update normal descriptor structure (v2)\n  stmmac: fix NULL pointer dereference in capabilities fixup (v2)\n  stmmac: fix a bug while checking the HW cap reg (v2)\n  be2net: Changing MAC Address of a VF was broken.\n  be2net: Refactored be_cmds.c file.\n  bnx2x: update driver version to 1.70.30-0\n  bnx2x: use FW 7.0.29.0\n  bnx2x: Enable changing speed when port type is PORT_DA\n  bnx2x: Fix 54618se LED behavior\n  ...\n"
    },
    {
      "commit": "08cab72f91c8b28ffabfd143119bccdd4a115ad7",
      "tree": "ccd5583971caecd82bf2d1e62691bf6e0362d650",
      "parents": [
        "86c1e5a74af11e4817ffa6d7748d9ac1353b5b53",
        "f37a53cc5d8a8fb199e41386d125d8c2ed9e54ef"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:08:10 2011 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:08:10 2011 +0100"
      },
      "message": "Merge branch \u0027dt/gic\u0027 into next/dt\n\nConflicts:\n\tarch/arm/include/asm/localtimer.h\n\tarch/arm/mach-msm/board-msm8x60.c\n\tarch/arm/mach-omap2/board-generic.c\n"
    },
    {
      "commit": "86c1e5a74af11e4817ffa6d7748d9ac1353b5b53",
      "tree": "377327a40452c4282787f49456122bf1753a0255",
      "parents": [
        "6a8d2e2b504ce3d12cfa3934f545c9415441a5c3",
        "3ae3e253db7385238dd9d6c67c085afa3e770a56"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:07:51 2011 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:07:51 2011 +0100"
      },
      "message": "Merge branch \u0027omap/dt\u0027 into next/dt\n"
    },
    {
      "commit": "6d274309d0e64bdbdb6c50945ca2964596e8fa5a",
      "tree": "4b4c40a0a75b3e261f08e1525b5cc0e0bd781676",
      "parents": [
        "c71a54b0820179e53483d5220cdef1a0df8d5bd1"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Fri Sep 30 10:48:38 2011 -0500"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:03:23 2011 +0100"
      },
      "message": "irq: support domains with non-zero hwirq base\n\nInterrupt controllers can have non-zero starting value for h/w irq numbers.\nAdding support in irq_domain allows the domain hwirq numbering to match\nthe interrupt controllers\u0027 numbering.\n\nAs this makes looping over irqs for a domain more complicated, add loop\niterators to iterate over all hwirqs and irqs for a domain.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nReviewed-by: Jamie Iles \u003cjamie@jamieiles.com\u003e\nTested-by: Thomas Abraham \u003cthomas.abraham@linaro.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c71a54b0820179e53483d5220cdef1a0df8d5bd1",
      "tree": "844e32441d70118f616d4b4c84b510aaec2e5dc1",
      "parents": [
        "3a8254364277fabe01bc0e12b9691722939f5ef3"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Tue Sep 20 15:13:50 2011 -0500"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 31 14:03:22 2011 +0100"
      },
      "message": "of/irq: introduce of_irq_init\n\nof_irq_init will scan the devicetree for matching interrupt controller\nnodes. Then it calls an initialization function for each found controller\nin the proper order with parent nodes initialized before child nodes.\n\nBased on initial pseudo code from Grant Likely.\n\nChanges in v4:\n- Drop unnecessary empty list check\n- Be more verbose on errors\n- Simplify \"if (!desc) WARN_ON(1)\" to \"if (WARN_ON(!desc))\"\n\nChanges in v3:\n- add missing kfree\u0027s found by Jamie\n- Implement Grant\u0027s comments to simplify the init loop\n- fix function comments\n\nChanges in v2:\n- Complete re-write of list searching code from Grant Likely\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nReviewed-by: Jamie Iles \u003cjamie@jamieiles.com\u003e\nTested-by: Thomas Abraham \u003cthomas.abraham@linaro.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "839d8810747bbf39e0a5a7f223b67bffa7945f8d",
      "tree": "c16583342b871107f6805c21da4b1a96cfaa7aac",
      "parents": [
        "0cfdc724390fb9370f27bb9a133eadf69114dd21",
        "06a67848c6681a73e621e47c056490d51a07289f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:54:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:54:59 2011 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c: Functions for byte-swapped smbus_write/read_word_data\n  i2c-algo-pca: Return standard fault codes\n  i2c-algo-bit: Return standard fault codes\n  i2c-algo-bit: Be verbose on bus testing failure\n  i2c-algo-bit: Let user test buses without failing\n  i2c/scx200_acb: Fix section mismatch warning in scx200_pci_drv\n  i2c: I2C_ELEKTOR should depend on HAS_IOPORT\n"
    },
    {
      "commit": "0cfdc724390fb9370f27bb9a133eadf69114dd21",
      "tree": "2abfb0112c46c837c6b42007eadfc389293b7710",
      "parents": [
        "b48aeab65e9fc4b0c9757c5fbc1d722544eb8786",
        "1abb4ba596a91a839f82e0c9c837b777d574e83d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:46:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:46:19 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (33 commits)\n  iommu/core: Remove global iommu_ops and register_iommu\n  iommu/msm: Use bus_set_iommu instead of register_iommu\n  iommu/omap: Use bus_set_iommu instead of register_iommu\n  iommu/vt-d: Use bus_set_iommu instead of register_iommu\n  iommu/amd: Use bus_set_iommu instead of register_iommu\n  iommu/core: Use bus-\u003eiommu_ops in the iommu-api\n  iommu/core: Convert iommu_found to iommu_present\n  iommu/core: Add bus_type parameter to iommu_domain_alloc\n  Driver core: Add iommu_ops to bus_type\n  iommu/core: Define iommu_ops and register_iommu only with CONFIG_IOMMU_API\n  iommu/amd: Fix wrong shift direction\n  iommu/omap: always provide iommu debug code\n  iommu/core: let drivers know if an iommu fault handler isn\u0027t installed\n  iommu/core: export iommu_set_fault_handler()\n  iommu/omap: Fix build error with !IOMMU_SUPPORT\n  iommu/omap: Migrate to the generic fault report mechanism\n  iommu/core: Add fault reporting mechanism\n  iommu/core: Use PAGE_SIZE instead of hard-coded value\n  iommu/core: use the existing IS_ALIGNED macro\n  iommu/msm: -\u003eunmap() should return order of unmapped page\n  ...\n\nFixup trivial conflicts in drivers/iommu/Makefile: \"move omap iommu to\ndedicated iommu folder\" vs \"Rename the DMAR and INTR_REMAP config\noptions\" just happened to touch lines next to each other.\n"
    },
    {
      "commit": "1bc87b00556e8f7ba30a1010471951c5b8f71114",
      "tree": "e73c2d187e2dff0df97ed82e32b45e362b923117",
      "parents": [
        "acff987d94cbdb4049f3706bed1f1792f8ef6837",
        "f1c1da2bde712812a3e0f9a7a7ebe7a916a4b5f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:36:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:36:45 2011 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm\n\n* \u0027kvm-updates/3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (75 commits)\n  KVM: SVM: Keep intercepting task switching with NPT enabled\n  KVM: s390: implement sigp external call\n  KVM: s390: fix register setting\n  KVM: s390: fix return value of kvm_arch_init_vm\n  KVM: s390: check cpu_id prior to using it\n  KVM: emulate lapic tsc deadline timer for guest\n  x86: TSC deadline definitions\n  KVM: Fix simultaneous NMIs\n  KVM: x86 emulator: convert push %sreg/pop %sreg to direct decode\n  KVM: x86 emulator: switch lds/les/lss/lfs/lgs to direct decode\n  KVM: x86 emulator: streamline decode of segment registers\n  KVM: x86 emulator: simplify OpMem64 decode\n  KVM: x86 emulator: switch src decode to decode_operand()\n  KVM: x86 emulator: qualify OpReg inhibit_byte_regs hack\n  KVM: x86 emulator: switch OpImmUByte decode to decode_imm()\n  KVM: x86 emulator: free up some flag bits near src, dst\n  KVM: x86 emulator: switch src2 to generic decode_operand()\n  KVM: x86 emulator: expand decode flags to 64 bits\n  KVM: x86 emulator: split dst decode to a generic decode_operand()\n  KVM: x86 emulator: move memop, memopp into emulation context\n  ...\n"
    },
    {
      "commit": "acff987d94cbdb4049f3706bed1f1792f8ef6837",
      "tree": "36bded977aab5d80cf9aeb5467f83dd554a25d01",
      "parents": [
        "ce949717b559709423c1ef716a9db16d1dcadaed",
        "b57287ba497b63a0d87a058631bbddfed9392e9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:30:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:30:01 2011 -0700"
      },
      "message": "Merge branch \u0027fbdev-next\u0027 of git://github.com/schandinat/linux-2.6\n\n* \u0027fbdev-next\u0027 of git://github.com/schandinat/linux-2.6: (270 commits)\n  video: platinumfb: Add __devexit_p at necessary place\n  drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data\n  drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_data\n  drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported\n  drivers/video: fsl-diu-fb: remove unused panel operating mode support\n  drivers/video: fsl-diu-fb: use an enum for the AOI index\n  drivers/video: fsl-diu-fb: add several new video modes\n  drivers/video: fsl-diu-fb: remove broken screen blanking support\n  drivers/video: fsl-diu-fb: move some definitions out of the header file\n  drivers/video: fsl-diu-fb: fix some ioctls\n  video: da8xx-fb: Increased resolution configuration of revised LCDC IP\n  OMAPDSS: picodlp: add missing #include \u003clinux/module.h\u003e\n  fb: fix au1100fb bitrot.\n  mx3fb: fix NULL pointer dereference in screen blanking.\n  video: irq: Remove IRQF_DISABLED\n  smscufx: change edid data to u8 instead of char\n  OMAPDSS: DISPC: zorder support for DSS overlays\n  OMAPDSS: DISPC: VIDEO3 pipeline support\n  OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting\n  video/omap: fix build dependencies\n  ...\n\nFix up conflicts in:\n - drivers/staging/xgifb/XGI_main_26.c\n\tChanges to XGIfb_pan_var()\n - drivers/video/omap/{lcd_apollon.c,lcd_ldp.c,lcd_overo.c}\n\tRemoved (or in the case of apollon.c, merged into the generic\n\tDSS panel in drivers/video/omap2/displays/panel-generic-dpi.c)\n"
    },
    {
      "commit": "20b40a794baf3b4b0320c0a77ce944d5d1a01f25",
      "tree": "fb5eb62f8f75d8f6a31aae4c3cff3371f41cdd6d",
      "parents": [
        "3ee49c8f123257c72b74f398ef99ac3348c493cc"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:47 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:43 2011 +0100"
      },
      "message": "[S390] signal race with restarting system calls\n\nFor a ERESTARTNOHAND/ERESTARTSYS/ERESTARTNOINTR restarting system call\ndo_signal will prepare the restart of the system call with a rewind of\nthe PSW before calling get_signal_to_deliver (where the debugger might\ntake control). For A ERESTART_RESTARTBLOCK restarting system call\ndo_signal will set -EINTR as return code.\nThere are two issues with this approach:\n1) strace never sees ERESTARTNOHAND, ERESTARTSYS, ERESTARTNOINTR or\n   ERESTART_RESTARTBLOCK as the rewinding already took place or the\n   return code has been changed to -EINTR\n2) if get_signal_to_deliver does not return with a signal to deliver\n   the restart via the repeat of the svc instruction is left in place.\n   This opens a race if another signal is made pending before the\n   system call instruction can be reexecuted. The original system call\n   will be restarted even if the second signal would have ended the\n   system call with -EINTR.\n\nThese two issues can be solved by dropping the early rewind of the\nsystem call before get_signal_to_deliver has been called and by using\nthe TIF_RESTART_SVC magic to do the restart if no signal has to be\ndelivered. The only situation where the system call restart via the\nrepeat of the svc instruction is appropriate is when a SA_RESTART\nsignal is delivered to user space.\n\nUnfortunately this breaks inferior calls by the debugger again. The\nsystem call number and the length of the system call instruction is\nlost over the inferior call and user space will see ERESTARTNOHAND/\nERESTARTSYS/ERESTARTNOINTR/ERESTART_RESTARTBLOCK. To correct this a\nnew ptrace interface is added to save/restore the system call number\nand system call instruction length.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "558df7209e7997275f6b8ad37737494cf2da1512",
      "tree": "0f10dac15f4c2266d7d49f02ae4920863497dc32",
      "parents": [
        "d38593f9387055566b782d00d38d9a347a96e7d9"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Sun Oct 30 15:16:43 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:42 2011 +0100"
      },
      "message": "[S390] kdump: Add infrastructure for unmapping crashkernel memory\n\nThis patch introduces a mechanism that allows architecture backends to\nremove page tables for the crashkernel memory. This can protect the loaded\nkdump kernel from being overwritten by broken kernel code.  Two new\nfunctions crash_map_reserved_pages() and crash_unmap_reserved_pages() are\nadded that can be implemented by architecture code.  The\ncrash_map_reserved_pages() function is called before and\ncrash_unmap_reserved_pages() after the crashkernel segments are loaded.  The\nfunctions are also called in crash_shrink_memory() to create/remove page\ntables when the crashkernel memory size is reduced.\n\nTo support architectures that have large pages this patch also introduces\na new define KEXEC_CRASH_MEM_ALIGN. The crashkernel start and size must\nalways be aligned with KEXEC_CRASH_MEM_ALIGN.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "d3bf37955d46718ee1a7f1fc69f953d2328ba7c2",
      "tree": "a15c9bbb510c36dc5da870660dff9c2869920401",
      "parents": [
        "3d214faea6e4f9b6018bf8589f4b245126349c0a"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Sun Oct 30 15:16:37 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:41 2011 +0100"
      },
      "message": "[S390] kdump: Add size to elfcorehdr kernel parameter\n\nCurrently only the address of the pre-allocated ELF header is passed with\nthe elfcorehdr\u003d kernel parameter. In order to reserve memory for the header\nin the 2nd kernel also the size is required. Current kdump architecture\nbackends use different methods to do that, e.g. x86 uses the memmap\u003d kernel\nparameter. On s390 there is no easy way to transfer this information.\nTherefore the elfcorehdr kernel parameter is extended to also pass the size.\nThis now can also be used as standard mechanism by all future kdump\narchitecture backends.\n\nThe syntax of the kernel parameter is extended as follows:\n\nelfcorehdr\u003d[size[KMG]@]offset[KMG]\n\nThis change is backward compatible because elfcorehdr\u003dsize is still allowed.\n\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "3d214faea6e4f9b6018bf8589f4b245126349c0a",
      "tree": "8c2430bdf1ab60002c25dd74d27a9ff98cb240f1",
      "parents": [
        "80853a8ab4fcfff55d88e86ed1f50695dba0d8ff"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Sun Oct 30 15:16:36 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:41 2011 +0100"
      },
      "message": "[S390] kdump: Add KEXEC_CRASH_CONTROL_MEMORY_LIMIT\n\nOn s390 there is a different KEXEC_CONTROL_MEMORY_LIMIT for the normal and\nthe kdump kexec case. Therefore this patch introduces a new macro\nKEXEC_CRASH_CONTROL_MEMORY_LIMIT. This is set to\nKEXEC_CONTROL_MEMORY_LIMIT for all architectures that do not define\nKEXEC_CRASH_CONTROL_MEMORY_LIMIT.\n\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "06a67848c6681a73e621e47c056490d51a07289f",
      "tree": "df6e3df869b7b1a1f40f09b9b3a6f8b8a2ad12d6",
      "parents": [
        "4403988afc0a92b8faf59b46f51d25fafaf0e63d"
      ],
      "author": {
        "name": "Jonathan Cameron",
        "email": "jic23@cam.ac.uk",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c: Functions for byte-swapped smbus_write/read_word_data\n\nReimplemented at least 17 times discounting error mangling cases\nwhere it could be used.\n\nSigned-off-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "7697e71f72b45a1bd0abe70918c383100fcc8514",
      "tree": "afad6ff9dcd00a031de31b9cd34d2ae09484586a",
      "parents": [
        "7eef87dc99e419b1cc051e4417c37e4744d7b661"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Tue Oct 18 12:27:15 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:24:05 2011 +0200"
      },
      "message": "KVM: s390: implement sigp external call\n\nImplement sigp external call, which might be required for guests that\nissue an external call instead of an emergency signal for IPI.\n\nThis fixes an issue with \"KVM: unknown SIGP: 0x02\" when booting\nsuch an SMP guest.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "6a32e4f9dd9219261f8856f817e6655114cfec2f",
      "tree": "964061ded76a2e5c9e2aa9122a3a88956db109c1",
      "parents": [
        "14ef37b6d00eb5d06704e45989ba4c21e7be7673"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Oct 29 06:13:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 04:43:30 2011 -0400"
      },
      "message": "vlan: allow nested vlan_do_receive()\n\ncommit 2425717b27eb (net: allow vlan traffic to be received under bond)\nbroke ARP processing on vlan on top of bonding.\n\n       +-------+\neth0 --| bond0 |---bond0.103\neth1 --|       |\n       +-------+\n\n52870.115435: skb_gro_reset_offset \u003c-napi_gro_receive\n52870.115435: dev_gro_receive \u003c-napi_gro_receive\n52870.115435: napi_skb_finish \u003c-napi_gro_receive\n52870.115435: netif_receive_skb \u003c-napi_skb_finish\n52870.115435: get_rps_cpu \u003c-netif_receive_skb\n52870.115435: __netif_receive_skb \u003c-netif_receive_skb\n52870.115436: vlan_do_receive \u003c-__netif_receive_skb\n52870.115436: bond_handle_frame \u003c-__netif_receive_skb\n52870.115436: vlan_do_receive \u003c-__netif_receive_skb\n52870.115436: arp_rcv \u003c-__netif_receive_skb\n52870.115436: kfree_skb \u003c-arp_rcv\n\nPacket is dropped in arp_rcv() because its pkt_type was set to\nPACKET_OTHERHOST in the first vlan_do_receive() call, since no eth0.103\nexists.\n\nWe really need to change pkt_type only if no more rx_handler is about to\nbe called for the packet.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReviewed-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "249842477c589ea29ff161ace9c8666d96e9883a",
      "tree": "5b041a3a703fe9c5040835b27c4a727009a242db",
      "parents": [
        "18c0635363364ca2fc2d1cbd65bbf918daf89d1a",
        "81397a625d063403d80a25bba00fa1cb6d7e04f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:29:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:29:40 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  ARM: mark empty gpio.h files empty\n  gpio: Fix ARM versatile-express build failure\n  of: include errno.h\n"
    },
    {
      "commit": "18c0635363364ca2fc2d1cbd65bbf918daf89d1a",
      "tree": "6fd1975977b4ab190b77952ee8e263f66e3dc5f7",
      "parents": [
        "41684f67af75b04152a1714e1a5375dfb00ee3da",
        "940ab88962bc1aff3273a8356d64577a6e386736"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:28:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:28:36 2011 -0700"
      },
      "message": "Merge branch \u0027spi/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027spi/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  drivercore: Add helper macro for platform_driver boilerplate\n  spi: irq: Remove IRQF_DISABLED\n  OMAP: SPI: Fix the trying to free nonexistent resource error\n  spi/spi-ep93xx: add module.h include\n  spi/tegra: fix compilation error in spi-tegra.c\n  spi: spi-dw: fix all sparse warnings\n  spi/spi-pl022: Call pl022_dma_remove(pl022) only if enable_dma is true\n  spi/spi-pl022: calculate_effective_freq() must set rate \u003c\u003d requested rate\n  spi/spi-pl022: Don\u0027t allocate more sg than required.\n  spi/spi-pl022: Use GFP_ATOMIC for allocation from tasklet\n  spi/spi-pl022: Resolve formatting issues\n"
    },
    {
      "commit": "41684f67af75b04152a1714e1a5375dfb00ee3da",
      "tree": "3b0f51dd8103a4fd40ebb6cefeece7579e348cde",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
        "d92ef29a6fa971d9e314e412cd9c09757906411a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  h8300: Move gpio.h to gpio-internal.h\n  gpio: pl061: add DT binding support\n  gpio: fix build error in include/asm-generic/gpio.h\n  gpiolib: Ensure struct gpio is always defined\n  irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip\n  gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio: langwell: ensure alternate function is cleared\n  gpio-pch: Support interrupt function\n  gpio-pch: Save register value in suspend()\n  gpio-pch: modify gpio_nums and mask\n  gpio-pch: support ML7223 IOH n-Bus\n  gpio-pch: add spinlock in suspend/resume processing\n  gpio-pch: Delete invalid \"restore\" code in suspend()\n  gpio-ml-ioh: Fix suspend/resume issue\n  gpio-ml-ioh: Support interrupt function\n  gpio-ml-ioh: Delete unnecessary code\n  gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()\n  gpio/nomadik: use genirq core to track enablement\n  gpio/nomadik: disable clocks when unused\n"
    },
    {
      "commit": "e51130c0f5e5ca2f5b669ca6759e0ae1aa197b63",
      "tree": "f2160b4248909def62b33c24f1d1c1863781a9ce",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kvalo@qca.qualcomm.com",
        "time": "Thu Oct 06 15:40:44 2011 +0300"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Oct 29 12:49:40 2011 +0200"
      },
      "message": "of: include errno.h\n\nWhen compiling ath6kl for beagleboard (omap2plus_defconfig plus\nCONFIG_ATH6KL, CONFIG_OF disable) with current linux-next compilation\nfails:\n\ninclude/linux/of.h:269: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\ninclude/linux/of.h:276: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\ninclude/linux/of.h:289: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\n\nFix this by including errno.h from of.h.\n\nSigned-off-by: Kalle Valo \u003ckvalo@qca.qualcomm.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "c9c7ae40660f5983854f73b6ae65f208e9a15082",
      "tree": "c971d7559f6023004db9950d47aa5870276de958",
      "parents": [
        "fab67afb543c734c23be0ebfc16f31814df2da79"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@ti.com",
        "time": "Thu Aug 04 08:01:56 2011 -0700"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Sat Oct 29 09:37:09 2011 +0100"
      },
      "message": "I2C: OMAP: remove unused function pointers from pdata\n\nNow that this driver is using runtime PM, there is no longer a need\nfor the idle/enable/shutdown function pointers in pdata.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "c23600a688dc71f4312f83cb0f23a736e1578a5e",
      "tree": "55564f0ce2bb197cf1df99cfe44c7e9aa73b4423",
      "parents": [
        "4e80f727bf59e8c1ea8e47c45c9ef368d353d835"
      ],
      "author": {
        "name": "Andy Green",
        "email": "andy@warmcat.com",
        "time": "Mon May 30 07:43:08 2011 -0700"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Sat Oct 29 09:37:08 2011 +0100"
      },
      "message": "I2C: OMAP1/OMAP2+: add flags field to omap i2c platform data\n\nOMAP I2C driver can access the configuration flags through\nits platform data.\n\nCc: patches@linaro.org\nReported-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Andy Green \u003candy.green@linaro.org\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nAcked-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "5c825ee202d0891269e29197d5b21f8e2be3498a",
      "tree": "085d3865307fff7b9a71fcf77aabc589c66cc06f",
      "parents": [
        "b88530884141e977b3702d8e82de52e553b45876"
      ],
      "author": {
        "name": "Andy Green",
        "email": "andy@warmcat.com",
        "time": "Mon May 30 07:43:05 2011 -0700"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Sat Oct 29 09:37:07 2011 +0100"
      },
      "message": "I2C: OMAP: add rev to omap i2c platform data\n\nWe need to pass the I2C IP revision from the hwmod class up\ninto the OMAP I2C driver, which does not have direct\naccess to it.\n\nThis adds a member to the platform data the OMAP I2C driver\ndoes use already to hold the I2C IP revision.\n\nCc: patches@linaro.org\nReported-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Andy Green \u003candy.green@linaro.org\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nAcked-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
      "tree": "e6b0c64a51a7c0aa0efd09d4f7a80872e3b1657a",
      "parents": [
        "97d2eb13a019ec09cc1a7ea2d3705c0b117b3c0d",
        "590134fa78fbdbe5fea78c7ae0b2c3364bc9572f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:44:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:44:18 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: (204 commits)\n  [SCSI] qla4xxx: export address/port of connection (fix udev disk names)\n  [SCSI] ipr: Fix BUG on adapter dump timeout\n  [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer\n  [SCSI] hpsa: change confusing message to be more clear\n  [SCSI] iscsi class: fix vlan configuration\n  [SCSI] qla4xxx: fix data alignment and use nl helpers\n  [SCSI] iscsi class: fix link local mispelling\n  [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA\n  [SCSI] aacraid: use lower snprintf() limit\n  [SCSI] lpfc 8.3.27: Change driver version to 8.3.27\n  [SCSI] lpfc 8.3.27: T10 additions for SLI4\n  [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery\n  [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name\n  [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout\n  [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes\n  [SCSI] megaraid_sas: Changelog and version update\n  [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic\n  [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support\n  [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers\n  [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts\n  ...\n"
    },
    {
      "commit": "97d2eb13a019ec09cc1a7ea2d3705c0b117b3c0d",
      "tree": "86f6382941f8cfc41647d33d87bec7bc1407c18c",
      "parents": [
        "68d99b2c8efcb6ed3807a55569300c53b5f88be5",
        "339573406737461cfb17bebabf7ba536a302d841"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:42:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:42:18 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://ceph.newdream.net/git/ceph-client\n\n* \u0027for-linus\u0027 of git://ceph.newdream.net/git/ceph-client:\n  libceph: fix double-free of page vector\n  ceph: fix 32-bit ino numbers\n  libceph: force resend of osd requests if we skip an osdmap\n  ceph: use kernel DNS resolver\n  ceph: fix ceph_monc_init memory leak\n  ceph: let the set_layout ioctl set single traits\n  Revert \"ceph: don\u0027t truncate dirty pages in invalidate work thread\"\n  ceph: replace leading spaces with tabs\n  libceph: warn on msg allocation failures\n  libceph: don\u0027t complain on msgpool alloc failures\n  libceph: always preallocate mon connection\n  libceph: create messenger with client\n  ceph: document ioctls\n  ceph: implement (optional) max read size\n  ceph: rename rsize -\u003e rasize\n  ceph: make readpages fully async\n"
    },
    {
      "commit": "68d99b2c8efcb6ed3807a55569300c53b5f88be5",
      "tree": "f189c8f2132d3668a2f0e503f5c3f8695b26a1c8",
      "parents": [
        "0e59e7e7feb5a12938fbf9135147eeda3238c6c4",
        "8128c9f21509f9a8b6da94ac432d845dda458406"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:25:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:25:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (549 commits)\n  ALSA: hda - Fix ADC input-amp handling for Cx20549 codec\n  ALSA: hda - Keep EAPD turned on for old Conexant chips\n  ALSA: hda/realtek - Fix missing volume controls with ALC260\n  ASoC: wm8940: Properly set codec-\u003edapm.bias_level\n  ALSA: hda - Fix pin-config for ASUS W90V\n  ALSA: hda - Fix surround/CLFE headphone and speaker pins order\n  ALSA: hda - Fix typo\n  ALSA: Update the sound git tree URL\n  ALSA: HDA: Add new revision for ALC662\n  ASoC: max98095: Convert codec-\u003ehw_write to snd_soc_write\n  ASoC: keep pointer to resource so it can be freed\n  ASoC: sgtl5000: Fix wrong mask in some snd_soc_update_bits calls\n  ASoC: wm8996: Fix wrong mask for setting WM8996_AIF_CLOCKING_2\n  ASoC: da7210: Add support for line out and DAC\n  ASoC: da7210: Add support for DAPM\n  ALSA: hda/realtek - Fix DAC assignments of multiple speakers\n  ASoC: Use SGTL5000_LINREG_VDDD_MASK instead of hardcoded mask value\n  ASoC: Set sgtl5000-\u003eldo in ldo_regulator_register\n  ASoC: wm8996: Use SND_SOC_DAPM_AIF_OUT for AIF2 Capture\n  ASoC: wm8994: Use SND_SOC_DAPM_AIF_OUT for AIF3 Capture\n  ...\n"
    },
    {
      "commit": "0e59e7e7feb5a12938fbf9135147eeda3238c6c4",
      "tree": "dbe994369ca9cad6893f0fd710f75791bc84b816",
      "parents": [
        "46b51ea2099fa2082342e52b8284aa828429b80b",
        "a513a99a7cebfb452839cc09c9c0586f72d96414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:20:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:20:44 2011 -0700"
      },
      "message": "Merge branch \u0027next-rebase\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\n* \u0027next-rebase\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:\n  PCI: Clean-up MPS debug output\n  pci: Clamp pcie_set_readrq() when using \"performance\" settings\n  PCI: enable MPS \"performance\" setting to properly handle bridge MPS\n  PCI: Workaround for Intel MPS errata\n  PCI: Add support for PASID capability\n  PCI: Add implementation for PRI capability\n  PCI: Export ATS functions to modules\n  PCI: Move ATS implementation into own file\n  PCI / PM: Remove unnecessary error variable from acpi_dev_run_wake()\n  PCI hotplug: acpiphp: Prevent deadlock on PCI-to-PCI bridge remove\n  PCI / PM: Extend PME polling to all PCI devices\n  PCI quirk: mmc: Always check for lower base frequency quirk for Ricoh 1180:e823\n  PCI: Make pci_setup_bridge() non-static for use by arch code\n  x86: constify PCI raw ops structures\n  PCI: Add quirk for known incorrect MPSS\n  PCI: Add Solarflare vendor ID and SFC4000 device IDs\n"
    },
    {
      "commit": "46b51ea2099fa2082342e52b8284aa828429b80b",
      "tree": "0a0d7bfe1aff036c86a2e7beacbd91398008bfb6",
      "parents": [
        "1fdb24e969110fafea36d3b393bea438f702c87f",
        "a6029e1f75bb484c1f5bc68b6a8572e4024795bc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:16:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:16:11 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (83 commits)\n  mmc: fix compile error when CONFIG_BLOCK is not enabled\n  mmc: core: Cleanup eMMC4.5 conditionals\n  mmc: omap_hsmmc: if multiblock reads are broken, disable them\n  mmc: core: add workaround for controllers with broken multiblock reads\n  mmc: core: Prevent too long response times for suspend\n  mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00\n  mmc: sd: Handle SD3.0 cards not supporting UHS-I bus speed mode\n  mmc: core: support HPI send command\n  mmc: core: Add cache control for eMMC4.5 device\n  mmc: core: Modify the timeout value for writing power class\n  mmc: core: new discard feature support at eMMC v4.5\n  mmc: core: mmc sanitize feature support for v4.5\n  mmc: dw_mmc: modify DATA register offset\n  mmc: sdhci-pci: add flag for devices that can support runtime PM\n  mmc: omap_hsmmc: ensure pbias configuration is always done\n  mmc: core: Add Power Off Notify Feature eMMC 4.5\n  mmc: sdhci-s3c: fix potential NULL dereference\n  mmc: replace printk with appropriate display macro\n  mmc: core: Add default timeout value for CMD6\n  mmc: sdhci-pci: add runtime pm support\n  ...\n"
    },
    {
      "commit": "1fdb24e969110fafea36d3b393bea438f702c87f",
      "tree": "47a1dfef8a259e7922285315f8a02d31b4efe2f1",
      "parents": [
        "f362f98e7c445643d27c610bb7a86b79727b592e",
        "531a6a941745e1e045dd2a6bd09e1dc01247a5f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 12:02:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 12:02:27 2011 -0700"
      },
      "message": "Merge branch \u0027devel-stable\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm\n\n* \u0027devel-stable\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (178 commits)\n  ARM: 7139/1: fix compilation with CONFIG_ARM_ATAG_DTB_COMPAT and large TEXT_OFFSET\n  ARM: gic, local timers: use the request_percpu_irq() interface\n  ARM: gic: consolidate PPI handling\n  ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H\n  ARM: mach-s5p64x0: remove mach/memory.h\n  ARM: mach-s3c64xx: remove mach/memory.h\n  ARM: plat-mxc: remove mach/memory.h\n  ARM: mach-prima2: remove mach/memory.h\n  ARM: mach-zynq: remove mach/memory.h\n  ARM: mach-bcmring: remove mach/memory.h\n  ARM: mach-davinci: remove mach/memory.h\n  ARM: mach-pxa: remove mach/memory.h\n  ARM: mach-ixp4xx: remove mach/memory.h\n  ARM: mach-h720x: remove mach/memory.h\n  ARM: mach-vt8500: remove mach/memory.h\n  ARM: mach-s5pc100: remove mach/memory.h\n  ARM: mach-tegra: remove mach/memory.h\n  ARM: plat-tcc: remove mach/memory.h\n  ARM: mach-mmp: remove mach/memory.h\n  ARM: mach-cns3xxx: remove mach/memory.h\n  ...\n\nFix up mostly pretty trivial conflicts in:\n - arch/arm/Kconfig\n - arch/arm/include/asm/localtimer.h\n - arch/arm/kernel/Makefile\n - arch/arm/mach-shmobile/board-ap4evb.c\n - arch/arm/mach-u300/core.c\n - arch/arm/mm/dma-mapping.c\n - arch/arm/mm/proc-v7.S\n - arch/arm/plat-omap/Kconfig\nlargely due to some CONFIG option renaming (ie CONFIG_PM_SLEEP -\u003e\nCONFIG_ARM_CPU_SUSPEND for the arm-specific suspend code etc) and\naddition of NEED_MACH_MEMORY_H next to HAVE_IDE.\n"
    },
    {
      "commit": "97285b78174423e5576b2e06aa45f64df009da5b",
      "tree": "d6f44a503b98f385e22fc9243d1abaf98d68947d",
      "parents": [
        "e36fb88a9a0fb8ac4b87c8ac709214a408de6d97"
      ],
      "author": {
        "name": "Marcel Apfelbaum",
        "email": "marcela@dev.mellanox.co.il",
        "time": "Mon Oct 24 11:02:34 2011 +0200"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Fri Oct 28 11:33:38 2011 -0700"
      },
      "message": "mlx4_core: Add extended port capabilities support\n\nAn Extended Port Info packet is sent to each hw port during HCA init.\nIf it returns without error, we assume the port supports extended port\ncapabilities.\n\nSigned-off-by: Marcel Apfelbaum \u003cmarcela@dev.mellanox.co.il\u003e\nReviewed-by: Jack Morgenstein \u003cjackm@dev.mellanox.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 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: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "dabcbb1bae0f55378060b285062b20f6ec648c6a",
      "tree": "027cdd35ce43cce95a78afab22e1e809b436b636",
      "parents": [
        "5619a693965b291315685bdfe01a0246ebd7e41e",
        "e0c8ea1a69410ef44043646938a6a4175f5307e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:43:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:43:32 2011 -0700"
      },
      "message": "Merge branch \u00273.2-without-smb2\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\n* \u00273.2-without-smb2\u0027 of git://git.samba.org/sfrench/cifs-2.6: (52 commits)\n  Fix build break when freezer not configured\n  Add definition for share encryption\n  CIFS: Make cifs_push_locks send as many locks at once as possible\n  CIFS: Send as many mandatory unlock ranges at once as possible\n  CIFS: Implement caching mechanism for posix brlocks\n  CIFS: Implement caching mechanism for mandatory brlocks\n  CIFS: Fix DFS handling in cifs_get_file_info\n  CIFS: Fix error handling in cifs_readv_complete\n  [CIFS] Fixup trivial checkpatch warning\n  [CIFS] Show nostrictsync and noperm mount options in /proc/mounts\n  cifs, freezer: add wait_event_freezekillable and have cifs use it\n  cifs: allow cifs_max_pending to be readable under /sys/module/cifs/parameters\n  cifs: tune bdi.ra_pages in accordance with the rsize\n  cifs: allow for larger rsize\u003d options and change defaults\n  cifs: convert cifs_readpages to use async reads\n  cifs: add cifs_async_readv\n  cifs: fix protocol definition for READ_RSP\n  cifs: add a callback function to receive the rest of the frame\n  cifs: break out 3rd receive phase into separate function\n  cifs: find mid earlier in receive codepath\n  ...\n"
    },
    {
      "commit": "5760495a872d63a182962680a13c2af29235237c",
      "tree": "ab7ac2b0ec66006efbc27c318c89474a63d6e4d1",
      "parents": [
        "ef3d0fd27e90f67e35da516dafc1482c82939a60"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:50 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:59 2011 +0200"
      },
      "message": "vfs: add generic_file_llseek_size\n\nAdd a generic_file_llseek variant to the VFS that allows passing in\nthe maximum file size of the file system, instead of always\nusing maxbytes from the superblock.\n\nThis can be used to eliminate some cut\u0027n\u0027paste seek code in ext4.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "8522ca5818652c4da6808c66a307abce75462212",
      "tree": "dd127ea11faf379c3b4610eb9f15feee79cb802f",
      "parents": [
        "8fd90c8d1dacb5ff0f372217c97f57a9e61559cd"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sun Oct 23 23:13:31 2011 +0530"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:54 2011 +0200"
      },
      "message": "vfs: add hex format for MAY_* flag values\n\nWe are going to add more flags and having them in hex format\nmake it simpler\n\nAcked-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "37be944a0270402f9cda291a930b0286f6dc92f5",
      "tree": "6a91a9eb86450f4a18a8871f04a1ef810e7b55d6",
      "parents": [
        "ca836a25435ef1b9914840ed0a310c9b6ac261d1",
        "1717c0e23f411147490c7a3312b894f0ea9a5fb1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:54:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:54:23 2011 -0700"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux\n\n* \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux: (290 commits)\n  Revert \"drm/ttm: add a way to bo_wait for either the last read or last write\"\n  Revert \"drm/radeon/kms: add a new gem_wait ioctl with read/write flags\"\n  vmwgfx: Don\u0027t pass unused arguments to do_dirty functions\n  vmwgfx: Emulate depth 32 framebuffers\n  drm/radeon: Lower the severity of the radeon lockup messages.\n  drm/i915/dp: Fix eDP on PCH DP on CPT/PPT\n  drm/i915/dp: Introduce is_cpu_edp()\n  drm/i915: use correct SPD type value\n  drm/i915: fix ILK+ infoframe support\n  drm/i915: add DP test request handling\n  drm/i915: read full receiver capability field during DP hot plug\n  drm/i915/dp: Remove eDP special cases from bandwidth checks\n  drm/i915/dp: Fix the math in intel_dp_link_required\n  drm/i915/panel: Always record the backlight level again (but cleverly)\n  i915: Move i915_read/write out of line\n  drm/i915: remove transcoder PLL mashing from mode_set per specs\n  drm/i915: if transcoder disable fails, say which\n  drm/i915: set watermarks for third pipe on IVB\n  drm/i915: export a CPT mode set verification function\n  drm/i915: fix transcoder PLL select masking\n  ...\n"
    },
    {
      "commit": "8e6d539e0fd0c2124a20a207da70f2af7a9ae52c",
      "tree": "73016c1bdb5005125cdb5d60d48f73ab4300be64",
      "parents": [
        "8237eb946a1a23c600fb289cf8dd3b399b10604e",
        "49d859d78c5aeb998b6936fcb5f288f78d713489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:29:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:29:07 2011 -0700"
      },
      "message": "Merge branch \u0027x86-rdrand-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-rdrand-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, random: Verify RDRAND functionality and allow it to be disabled\n  x86, random: Architectural inlines to get random integers with RDRAND\n  random: Add support for architectural random hooks\n\nFix up trivial conflicts in drivers/char/random.c: the architectural\nrandom hooks touched \"get_random_int()\" that was simplified to use MD5\nand not do the keyptr thing any more (see commit 6e5714eaf77d: \"net:\nCompute protocol sequence numbers and fragment IDs using MD5\").\n"
    },
    {
      "commit": "e0c8ea1a69410ef44043646938a6a4175f5307e4",
      "tree": "4c859e9e9cdcddf7bb5d073fcbc434818d135963",
      "parents": [
        "96814ecb404d587fade79af70bb741bc753e9ffb"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Oct 25 10:02:53 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Thu Oct 27 16:53:40 2011 -0500"
      },
      "message": "Fix build break when freezer not configured\n\nfs/cifs/transport.c: In function \u0027wait_for_response\u0027:\nfs/cifs/transport.c:328: error: implicit declaration of function \u0027wait_event_freezekillable\u0027\n\nCaused by commit f06ac72e9291 (\"cifs, freezer: add\nwait_event_freezekillable and have cifs use it\").  In this config,\nCONFIG_FREEZER is not set.\n\nReviewed-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "a6029e1f75bb484c1f5bc68b6a8572e4024795bc",
      "tree": "79b8487c706e93fa4e0be28d3a4297d65851ac35",
      "parents": [
        "336c716ae2272c9a26a6f82976d0e077d8ca824e"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Thu Oct 13 00:43:14 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Thu Oct 27 09:11:34 2011 -0400"
      },
      "message": "mmc: fix compile error when CONFIG_BLOCK is not enabled\n\n\u0027DISK_NAME_LEN\u0027 is undeclared when CONFIG_BLOCK is disabled; its use was\nintroduced via genhd.h by the general purpose partition patch.\n\nTo fix, we just add our own MAX_MMC_PART_NAME_LEN macro instead of using\nDISK_NAME_LEN.\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Andrei Warkentin \u003candreiw@vmware.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "2bf22b39823c1d173dda31111a4eb2ce36daaf39",
      "tree": "54575fedfd2b032c3113b55dea5e2fd5d0c7eb38",
      "parents": [
        "b6ad726e3fe69e1ff3c3b2ad272ba3e4c376cd6a"
      ],
      "author": {
        "name": "Paul Walmsley",
        "email": "paul@pwsan.com",
        "time": "Thu Oct 06 14:50:33 2011 -0600"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Thu Oct 27 09:10:57 2011 -0400"
      },
      "message": "mmc: core: add workaround for controllers with broken multiblock reads\n\nDue to hardware bugs, some MMC host controllers don\u0027t support\nmultiple-block reads[1].  To resolve, add a new MMC capability flag,\nMMC_CAP2_NO_MULTI_READ, which can be set by affected host controller\ndrivers.  When this capability is set, all reads will be issued one\nsector at a time.\n\n1. See for example Advisory 2.1.1.128 \"MMC: Multiple Block Read\nOperation Issue\" in _OMAP3530/3525/3515/3503 Silicon Errata_\nRevision F (October 2010) (SPRZ278F), available from\nhttp://focus.ti.com/lit/er/sprz278f/sprz278f.pdf\n\nSigned-off-by: Paul Walmsley \u003cpaul@pwsan.com\u003e\nCc: Dave Hylands \u003cdhylands@gmail.com\u003e\nTested-by: Steve Sakoman \u003csakoman@gmail.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "bb14eb0da72afb69be261b28ec858cbd5a35e089",
      "tree": "fa72a87d21e506c990b63657d782936311cfa7cf",
      "parents": [
        "9430148d800dd929ad73da4c6afb67f793f8af43",
        "5927f94700e860ae27ff24e7f3bc9e4f7b9922eb"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Oct 27 10:43:40 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Oct 27 10:43:40 2011 +0200"
      },
      "message": "Merge branch \u0027topic/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "396e6e49c58bb23d1814d3c240c736c9f01523c5",
      "tree": "a6ec8dac896c3ea3ac7b1bb0dce8728766afcf91",
      "parents": [
        "18974369cfe23acf16d0fb79e0d1fba7a9a95ec0",
        "6ad390a25a9d1d8606b9b826878f0a30639dc2b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:44:20 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:44:20 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (68 commits)\n  Input: adp5589-keys - add support for the ADP5585 derivatives\n  Input: imx_keypad - add pm suspend and resume support\n  Input: force feedback - potential integer wrap in input_ff_create()\n  Input: tsc2007 - make sure that X plate resistance is specified\n  Input: serio_raw - fix memory leak when closing char device\n  Input: serio_raw - kick clients when disconnecting port\n  Input: serio_raw - explicitly mark disconnected ports as dead\n  Input: serio_raw - fix coding style issues\n  Input: serio_raw - use dev_*() for messages\n  Input: serio_raw - use bool for boolean data\n  Input: serio_raw - perform proper locking when adding clients to list\n  Input: serio_raw - rename serio_raw_list to serio_raw_client\n  Input: serio_raw - use kref instead of rolling out its own refcounting\n  Input: psmouse - switch to using dev_*() for messages\n  Input: wacom - correct max Y value on medium bamboos\n  Input: wacom - add ABS_DISTANCE to Bamboo Pen reports\n  Input: wacom - remove unneeded touch pressure initialization\n  Input: lm8323 - wrap suspend and resume in CONFIG_PM_SLEEP\n  Input: ad7879-i2c - wrap suspend and resume in CONFIG_PM_SLEEP\n  Input: synaptics_i2c - wrap suspend and resume in CONFIG_PM_SLEEP\n  ...\n"
    },
    {
      "commit": "18974369cfe23acf16d0fb79e0d1fba7a9a95ec0",
      "tree": "22367984dbd4c79e9635035e268c428444c40e76",
      "parents": [
        "7e0a6fd5a4723c79cc46c9541e343092302e0e5b",
        "196a57c2749119be4732cc2b2adb8aafcb4fcb14"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:41:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:41:50 2011 +0200"
      },
      "message": "Merge branch \u0027clk\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm\n\n* \u0027clk\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:\n  ARM: 7131/1: clkdev: Add Common Macro for clk_lookup\n  clk: spi-pl022: convert to clk_prepare()/clk_unprepare()\n  clk: timer-sp: convert to clk_prepare()/clk_unprepare()\n  clk: sa1111: convert to clk_prepare()/clk_unprepare()\n  clk: mmci: convert to clk_prepare()/clk_unprepare()\n  clk: amba-pl011: convert to clk_prepare()/clk_unprepare()\n  clk: amba-pl010: convert to clk_prepare()/clk_unprepare()\n  clk: amba-clcd: convert to clk_prepare()/clk_unprepare()\n  clk: amba bus: convert to clk_prepare()/clk_unprepare()\n  clk: provide prepare/unprepare functions\n"
    },
    {
      "commit": "5fffb9513cb7fdd39e03c4cab1cda9c2f2694576",
      "tree": "f28f1c232dd5774c9157ba257df37e66d4097870",
      "parents": [
        "b96d71571f7745216ef63f13770b5a10b94ddd34",
        "ae97159aed6eff68f4ac86472b018985f071fed5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:35:41 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:35:41 2011 +0200"
      },
      "message": "Merge branch \u0027devicetree/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of_mdio: Don\u0027t phy_scan_fixups() twice\n  Devicetree: Expand on ARM Primecell binding documentation\n  dt: Add empty of_match_node() macro\n  dt: add empty dt helpers for non-dt build\n  devicetree: fix build error on drivers/tty/serial/altera_jtaguart.c\n  devicetree: Add ARM pl022 spi controller binding doc\n  devicetree: Add ARM pl061 gpio controller binding doc\n  of/irq: of_irq_find_parent: check for parent equal to child\n  MAINTAINERS: update devicetree maintainers\n  dt: add helper to read 64-bit integers\n  tty: use of_match_ptr() for of_match_table entry\n  OF: Add of_match_ptr() macro\n  dt: add empty for_each_child_of_node, of_find_property\n  devicetree: Document Qualcomm and Atmel prefixes\n  serial/imx: add of_alias_get_id() reference back\n  dt: add of_alias_scan and of_alias_get_id\n  devicetree: Add a registry of vendor prefixes\n"
    },
    {
      "commit": "9430148d800dd929ad73da4c6afb67f793f8af43",
      "tree": "437d0aec41428cbb310a202100ba581c63fbe89e",
      "parents": [
        "d22665702226e9c40bc331098559e3d55e7cd43d",
        "88e24c3a4b30a6bd361f2b5ce602667a8161b2e8"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Oct 26 23:51:48 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Oct 26 23:51:48 2011 +0200"
      },
      "message": "Merge branch \u0027topic/remove-irqf_disable\u0027 into for-linus\n"
    },
    {
      "commit": "d22665702226e9c40bc331098559e3d55e7cd43d",
      "tree": "6e92734c9835dc9e064b20182624939f3486d28d",
      "parents": [
        "5cdf745ebae0f5bcf9b798d8fd5cb57add592cc1",
        "dde7ad8dee274763c8958769779aea8c993c950e"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Oct 26 23:51:43 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Oct 26 23:51:43 2011 +0200"
      },
      "message": "Merge branch \u0027topic/misc\u0027 into for-linus\n"
    },
    {
      "commit": "76c05c8a0d56faf210cb9681786bb3e17cd59793",
      "tree": "7397414a99102c283be83d5ac1928878ae3c1b12",
      "parents": [
        "eb9ae7f2a38135761496d317c08c87f38c7cafe3"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Wed Aug 10 16:31:46 2011 -0500"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Oct 26 23:15:28 2011 +0200"
      },
      "message": "gpio: pl061: add DT binding support\n\nThis adds devicetree binding support to the ARM pl061 driver removing the\nplatform_data dependency. When DT binding is used, the gpio numbering is\nassigned dynamically. For now, interrupts are not supported with DT until\nirqdomains learn dynamic irq assignment.\n\nRather than add another case of -1, updating the driver to use NO_IRQ.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nAcked-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "b4625dab2c618eb87e177761dda3182b4cfaa604",
      "tree": "24398081cac8259d99b67dcc7b4e1afe3384df8e",
      "parents": [
        "f2815f68dabbb373fd1c9f0fd4a609d486697c2b"
      ],
      "author": {
        "name": "Bing Zhao",
        "email": "bzhao@marvell.com",
        "time": "Thu Oct 20 19:16:32 2011 -0700"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:31 2011 -0400"
      },
      "message": "mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00\n\nTable 6-2: CCCR bit Definitions, address 00h.  Part E1 SDIO Simplified\nSpecification Version 3.00, Feb. 25, 2011.\n\nThis patch has been tested with Marvell WLAN device SD8797.\n\nSigned-off-by: Bing Zhao \u003cbzhao@marvell.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "eb0d8f135b6730d6d0324a064664d121334290e7",
      "tree": "74876f5d20163bb5e9b185d9357237e1f22a2262",
      "parents": [
        "881d1c25f765938a95def5afe39486ce39f9fc96"
      ],
      "author": {
        "name": "Jaehoon Chung",
        "email": "jh80.chung@samsung.com",
        "time": "Tue Oct 18 01:26:42 2011 -0400"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:29 2011 -0400"
      },
      "message": "mmc: core: support HPI send command\n\nHPI command is defined in eMMC4.41.\nThis feature is important for eMMC4.5 devices.\n\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "881d1c25f765938a95def5afe39486ce39f9fc96",
      "tree": "694d5ea1b3fba2c28cc110123f2ca50b4408f309",
      "parents": [
        "71fe3eb0d006861bdae57e93975b6ae3d9b55e99"
      ],
      "author": {
        "name": "Seungwon Jeon",
        "email": "tgih.jun@samsung.com",
        "time": "Fri Oct 14 14:03:21 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:28 2011 -0400"
      },
      "message": "mmc: core: Add cache control for eMMC4.5 device\n\nThis patch adds cache feature of eMMC4.5 Spec.\nIf device supports cache capability, host can utilize some specific\noperations.\n\nSigned-off-by: Seungwon Jeon \u003ctgih.jun@samsung.com\u003e\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "b3bf915308ca2b50f3beec6cc824083870f0f4b5",
      "tree": "955978242b333e1388358b4b50b5f8f4a5abca04",
      "parents": [
        "d9ddd62943ee07a75d0428ffcf52f1a747a28c39"
      ],
      "author": {
        "name": "Kyungmin Park",
        "email": "kyungmin.park@samsung.com",
        "time": "Tue Oct 18 09:34:04 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:27 2011 -0400"
      },
      "message": "mmc: core: new discard feature support at eMMC v4.5\n\nMMC v4.5 supports the DISCARD feature (CMD38).  It\u0027s different from\ntrim and there\u0027s no check bit.  Currently it\u0027s only supported at v4.5.\n\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "d9ddd62943ee07a75d0428ffcf52f1a747a28c39",
      "tree": "e4fb8b0b2ba2fe39bf725762b2c04441f1adf3b8",
      "parents": [
        "4e0a5adf46ee7810af2e1b7e4e8c2a298652618e"
      ],
      "author": {
        "name": "Kyungmin Park",
        "email": "kyungmin.park@samsung.com",
        "time": "Fri Oct 14 14:15:48 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:26 2011 -0400"
      },
      "message": "mmc: core: mmc sanitize feature support for v4.5\n\nIn the v4.5, there\u0027s no secure erase \u0026 trim support.\nInstead it supports the sanitize feature.\n\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "4e0a5adf46ee7810af2e1b7e4e8c2a298652618e",
      "tree": "64b60adcedd341a02a8f150ce7257e2b0eb40e0c",
      "parents": [
        "c43fd7746698a10aa6435d62ec28f977dd6246cc"
      ],
      "author": {
        "name": "Jaehoon Chung",
        "email": "jh80.chung@samsung.com",
        "time": "Mon Oct 17 19:36:23 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:25 2011 -0400"
      },
      "message": "mmc: dw_mmc: modify DATA register offset\n\nIn dw_mmc 2.40a spec, Data register\u0027s offset is changed.\nBefore we used Data register offset 0x100. but if somebody uses a\n2.40a controller, we must use 0x200 for Data register.\n\nThis patch adds a version-id checking point and uses SDMMC_DATA(x)\ninstead of SDMMC_DATA.  It assumes 2.40a is the latest version.\n\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "bec8726abc72bf30d2743a722aa37cd69e7a0580",
      "tree": "eed4a3c441ff64f5719b021fce419de0fc5196d9",
      "parents": [
        "326adda53a50ece492c3edaa60afc26fba5e3232"
      ],
      "author": {
        "name": "Girish K S",
        "email": "girish.shivananjappa@linaro.org",
        "time": "Thu Oct 13 12:04:16 2011 +0530"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:23 2011 -0400"
      },
      "message": "mmc: core: Add Power Off Notify Feature eMMC 4.5\n\nThis patch adds support for the power off notify feature, available in\neMMC 4.5 devices. If the host has support for this feature, then the\nmmc core will notify the device by setting the POWER_OFF_NOTIFICATION\nbyte in the extended csd register with a value of 1 (POWER_ON).\n\nFor suspend mode short timeout is used, whereas for the normal poweroff\nlong timeout is used.\n\nSigned-off-by: Girish K S \u003cgirish.shivananjappa@linaro.org\u003e\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "b23cf0bd55b0c6b703982446f679e00d6d929524",
      "tree": "7701af9bd8b7f35321dfb4a5accf71fc9c04e60d",
      "parents": [
        "66fd8ad5100b5003046aa744a4f12fa31bb831f9"
      ],
      "author": {
        "name": "Seungwon Jeon",
        "email": "tgih.jun@samsung.com",
        "time": "Fri Sep 23 14:15:29 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:21 2011 -0400"
      },
      "message": "mmc: core: Add default timeout value for CMD6\n\nEXT_CSD[248] includes the default maximum timeout for CMD6.\nThis field is added at eMMC4.5 Spec. And it can be used for default\ntimeout except for some operations which don\u0027t define the timeout\n(i.e. background operation, sanitize, flush cache) in eMMC4.5 Spec.\n\nSigned-off-by: Seungwon Jeon \u003ctgih.jun@samsung.com\u003e\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "66fd8ad5100b5003046aa744a4f12fa31bb831f9",
      "tree": "c71aa6ff8b5c4c2919b93630a2315017f4610986",
      "parents": [
        "08a7e1dfaa63bf5132b5b7231fcf9a33473c78f5"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@intel.com",
        "time": "Mon Oct 03 15:33:34 2011 +0300"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Oct 26 16:32:20 2011 -0400"
      },
      "message": "mmc: sdhci-pci: add runtime pm support\n\nThs patch allows runtime PM for sdhci-pci, runtime suspending after\ninactivity of 50ms and ensuring runtime resume before SDHC registers\nare accessed.  During runtime suspend, interrupts are masked.\nThe host controller state is restored at runtime resume.\n\nFor Medfield, the host controller\u0027s card detect mechanism is\nsupplanted by an always-on GPIO which provides for card detect wake-up.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    }
  ],
  "next": "e0c368d571d946ff40f068344b5c2df90c93dd2e"
}
