)]}'
{
  "log": [
    {
      "commit": "d6865dcc58f252480515101fd13532f0fc420b53",
      "tree": "4e8ee3ef60d44b81d31337925c018f19929ea7f5",
      "parents": [
        "8f9ada4fa1926e540b1562cb9bacb3e51a698c35"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:37 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:53:06 2012 -0500"
      },
      "message": "bcma: add extra sprom check\n\nThis check is needed on the BCM43224 device as it says in the\ncapabilities it has an sprom but is extra check says it has not.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8f9ada4fa1926e540b1562cb9bacb3e51a698c35",
      "tree": "def07cbceee8d55da9288ab1157835d784360805",
      "parents": [
        "49dc9577155576b10ff79f0c1486c816b01f58bf"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:36 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:53:05 2012 -0500"
      },
      "message": "bcma: add bus num counter\n\nIf we have two bcma buses on one computer the second will not work\nwithout this patch. Now each bus gets an own number.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "49dc9577155576b10ff79f0c1486c816b01f58bf",
      "tree": "c193e6110c54234ab5ed3d816cc2dc15df165f37",
      "parents": [
        "d1a7a8e1d367e34e5adce91f48cae07dc08d9e6c"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:35 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:53:04 2012 -0500"
      },
      "message": "bcma: add PCIe host controller\n\nSome SoCs have a PCIe host controller to make it possible to attach\nsome other devices to it, like an other Wifi card.\nThis code was tested with an Netgear WNDR3400 (bcm4716 based), but\nshould work with all bcma based SoCs.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d1a7a8e1d367e34e5adce91f48cae07dc08d9e6c",
      "tree": "b4e279942e10a4bfc51e6bfeef052c3cca088964",
      "parents": [
        "4b259a5cc5ea967fa243dfc1f95a59ae74106f5b"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:34 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:53:03 2012 -0500"
      },
      "message": "bcma: make some functions __devinit\n\nbcma_core_pci_hostmode_init() has to be in __devinit as it will call a\nfunction in that section and so all functions calling it also have to\nbe in __devinit.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "2be25cac8402fab56bb51166f464d1b420bcf744",
      "tree": "ec50aa8592b81476adff3bc77779a4a08e1eb9e1",
      "parents": [
        "5f2d6171e1e70584b9819771443485750453fd16"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:32 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:52:56 2012 -0500"
      },
      "message": "bcma: add constants for PCI and use them\n\nThere are many magic numbers used in the PCIe code. Replace them with\nsome constants from the Broadcom SDK and also use them in the pcie host\ncontroller.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5f2d6171e1e70584b9819771443485750453fd16",
      "tree": "29a8f4dfc08d8cef4c5f3b13e0a78c52b61abe1e",
      "parents": [
        "268bd858df5052f97722b123e990119c89171fd7"
      ],
      "author": {
        "name": "Hauke Mehrtens",
        "email": "hauke@hauke-m.de",
        "time": "Tue Jan 31 00:03:31 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Feb 06 14:50:39 2012 -0500"
      },
      "message": "bcma: add the core unit number\n\nSome SoCs have two pcie or gmac cores and we need to know the number of\nthe specific core on the bus. This is the case for the BCM4706.\n\nSigned-off-by: Hauke Mehrtens \u003chauke@hauke-m.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "24db78c05b1e3ccb5a78aedd17aa1008c91dab5a",
      "tree": "f41babc8ada871a26619be23f983121ad557da91",
      "parents": [
        "d273bb20c00340748e3ca9730f87524ec5abbd64"
      ],
      "author": {
        "name": "Simon Wunderlich",
        "email": "simon.wunderlich@s2003.tu-chemnitz.de",
        "time": "Sat Jan 28 17:25:32 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 30 15:48:25 2012 -0500"
      },
      "message": "nl80211: add support for mcs masks\n\nAllow to set mcs masks through nl80211. We also allow to set MCS\nrates but no legacy rates (and vice versa).\n\nSigned-off-by: Simon Wunderlich \u003csiwu@hrz.tu-chemnitz.de\u003e\nSigned-off-by: Mathias Kretschmer \u003cmathias.kretschmer@fokus.fraunhofer.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "94f9065648a2645b28187b44ec7778c30cf58758",
      "tree": "734ee883e3fbd99de04240da97716d773d64bb6d",
      "parents": [
        "2da8f419e78a0ebccc91c095328278fe668a7932"
      ],
      "author": {
        "name": "Chun-Yeow Yeoh",
        "email": "yeohchunyeow@gmail.com",
        "time": "Sat Jan 21 01:02:16 2012 +0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 27 14:56:56 2012 -0500"
      },
      "message": "{nl,cfg,mac}80211: Add support of setting non-forwarding entity in Mesh\n\nA mesh node that joins the mesh network is by default a forwarding entity. This patch allows\nthe mesh node to set as non-forwarding entity. Whenever dot11MeshForwarding is set to 0, the\nmesh node can prevent itself from forwarding the traffic which is not destined to him.\n\nSigned-off-by: Chun-Yeow Yeoh \u003cyeohchunyeow@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d5a2ca60e41fec4ede7b82d3608278523cffe77b",
      "tree": "64faf8e66edaf03fe35b9bd61e8263817a17cca9",
      "parents": [
        "bfeb4dbc5cb36ae774fabe7b0e0d559e621a2ccd"
      ],
      "author": {
        "name": "Ilan Elias",
        "email": "ilane@ti.com",
        "time": "Tue Jan 17 11:06:43 2012 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 24 14:21:15 2012 -0500"
      },
      "message": "NFC: Export new attributes sensb_res and sensf_res\n\nExport new attributes sensb_res for tech B and sensf_res\nfor tech F in the target info (returned as a response to\nNFC_CMD_GET_TARGET).\nThe max size of the attributes nfcid1, sensb_res and sensf_res\nis exported to user space though include/linux/nfc.\n\nSigned-off-by: Ilan Elias \u003cilane@ti.com\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b0f70292053a0f68f406564a721a7a3f2d66b44f",
      "tree": "48e68f1c2ae6d6b7df11326fc31d9e749acedd62",
      "parents": [
        "35b88623692f7ffbfdf16e4c2358784a060c20ed"
      ],
      "author": {
        "name": "Rafał Miłecki",
        "email": "zajec5@gmail.com",
        "time": "Mon Jan 02 08:41:23 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 24 14:06:04 2012 -0500"
      },
      "message": "ssb: SPROM: extract each core power info\n\nWe already extract some basic info but it\u0027s incomplete, reads info\nabout the first core only. Used data structure doesn\u0027t allow easy\nadding of more cores.\nThis patch adds new struct and array for storing power info. The plan\nis to: switch all extractors (including the ones using NVRAM) to new\nstruct, switch drivers, then deprecate and finally drop old SSB fields.\n\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "4144cb2ade46d97b9c41682fd2e9064a59f23a98",
      "tree": "4b5ef937b4d0dcede6b1669f03c3b6dccf57d5bc",
      "parents": [
        "59f608d84f937cb5e2fd3a0b9f848f200d47ba85",
        "604c4ef1c453a1b2ea2cdf04d2b49afec421ebfa"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 12:11:52 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 12:11:52 2012 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless\n"
    },
    {
      "commit": "7d5869e78f4c9d32f834dadefbb7dcb3c9d4d85f",
      "tree": "136560d132409e801be0c0e0ba00da7ea9695d05",
      "parents": [
        "685a4ef0df23b97eea1842c2698da9a2e35fc976"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 23:58:41 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 09:54:08 2012 -0500"
      },
      "message": "bcma: connect the bcma bus suspend/resume to the bcma driver suspend/resume\n\nNow the low-level driver actually gets informed that it is getting suspended and resumed.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "9bf04646b0b41c5438ed8a27c5f8dbe0ff40d756",
      "tree": "d06b83275667828112fc8e3d8ec9a6696a9f523c",
      "parents": [
        "412662d204eca981458156fd64d9d5f3b533d7b6"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sun Jan 15 16:57:12 2012 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Jan 16 14:01:23 2012 +0100"
      },
      "message": "netfilter: revert user-space expectation helper support\n\nThis patch partially reverts:\n3d058d7 netfilter: rework user-space expectation helper support\nthat was applied during the 3.2 development cycle.\n\nAfter this patch, the tree remains just like before patch bc01bef,\nthat initially added the preliminary infrastructure.\n\nI decided to partially revert this patch because the approach\nthat I proposed to resolve this problem is broken in NAT setups.\nMoreover, a new infrastructure will be submitted for the 3.3.x\ndevelopment cycle that resolve the existing issues while\nproviding a neat solution.\n\nSince nobody has been seriously using this infrastructure in\nuser-space, the removal of this feature should affect any know\nFOSS project (to my knowledge).\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "7c7c7f01cc5e3e423120a4848a73dd5e4586f2f9",
      "tree": "bdd15c5e435b1a380adbf5c4a7d05e7ef44d7403",
      "parents": [
        "252c3d84ed398b090ac2dace46fc6faa6cfaea99"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Jan 11 19:30:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 13 10:12:23 2012 -0800"
      },
      "message": "vhost-net: add module alias (v2.1)\n\nBy adding some module aliases, programs (or users) won\u0027t have to explicitly\ncall modprobe. Vhost-net will always be available if built into the kernel.\nIt does require assigning a permanent minor number for depmod to work.\n\nAlso:\n  - use C99 style initialization.\n  - add missing entry in documentation for loop-control\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-By: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "099469502f62fbe0d7e4f0b83a2f22538367f734",
      "tree": "5229c3818b2e6e09d35026d49314047121130536",
      "parents": [
        "7c17d86a8502c2e30c2eea777ed1b830aa3b447b",
        "35f1526845a9d804206883e19bd257d3dcef758f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:42:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:42:54 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (aka \"Andrew\u0027s patch-bomb, take two\")\n\nAndrew explains:\n\n - various misc stuff\n\n - Most of the rest of MM: memcg, threaded hugepages, others.\n\n - cpumask\n\n - kexec\n\n - kdump\n\n - some direct-io performance tweaking\n\n - radix-tree optimisations\n\n - new selftests code\n\n   A note on this: often people will develop a new userspace-visible\n   feature and will develop userspace code to exercise/test that\n   feature.  Then they merge the patch and the selftest code dies.\n   Sometimes we paste it into the changelog.  Sometimes the code gets\n   thrown into Documentation/(!).\n\n   This saddens me.  So this patch creates a bare-bones framework which\n   will henceforth allow me to ask people to include their test apps in\n   the kernel tree so we can keep them alive.  Then when people enhance\n   or fix the feature, I can ask them to update the test app too.\n\n   The infrastruture is terribly trivial at present - let\u0027s see how it\n   evolves.\n\n - checkpoint/restart feature work.\n\n   A note on this: this is a project by various mad Russians to perform\n   c/r mainly from userspace, with various oddball helper code added\n   into the kernel where the need is demonstrated.\n\n   So rather than some large central lump of code, what we have is\n   little bits and pieces popping up in various places which either\n   expose something new or which permit something which is normally\n   kernel-private to be modified.\n\n   The overall project is an ongoing thing.  I\u0027ve judged that the size\n   and scope of the thing means that we\u0027re more likely to be successful\n   with it if we integrate the support into mainline piecemeal rather\n   than allowing it all to develop out-of-tree.\n\n   However I\u0027m less confident than the developers that it will all\n   eventually work! So what I\u0027m asking them to do is to wrap each piece\n   of new code inside CONFIG_CHECKPOINT_RESTORE.  So if it all\n   eventually comes to tears and the project as a whole fails, it should\n   be a simple matter to go through and delete all trace of it.\n\nThis lot pretty much wraps up the -rc1 merge for me.\n\n* akpm: (96 commits)\n  unlzo: fix input buffer free\n  ramoops: update parameters only after successful init\n  ramoops: fix use of rounddown_pow_of_two()\n  c/r: prctl: add PR_SET_MM codes to set up mm_struct entries\n  c/r: procfs: add start_data, end_data, start_brk members to /proc/$pid/stat v4\n  c/r: introduce CHECKPOINT_RESTORE symbol\n  selftests: new x86 breakpoints selftest\n  selftests: new very basic kernel selftests directory\n  radix_tree: take radix_tree_path off stack\n  radix_tree: remove radix_tree_indirect_to_ptr()\n  dio: optimize cache misses in the submission path\n  vfs: cache request_queue in struct block_device\n  fs/direct-io.c: calculate fs_count correctly in get_more_blocks()\n  drivers/parport/parport_pc.c: fix warnings\n  panic: don\u0027t print redundant backtraces on oops\n  sysctl: add the kernel.ns_last_pid control\n  kdump: add udev events for memory online/offline\n  include/linux/crash_dump.h needs elf.h\n  kdump: fix crash_kexec()/smp_send_stop() race in panic()\n  kdump: crashk_res init check for /sys/kernel/kexec_crash_size\n  ...\n"
    },
    {
      "commit": "7c17d86a8502c2e30c2eea777ed1b830aa3b447b",
      "tree": "353f739a33f46f9861b479e64d2a59f9b5c85868",
      "parents": [
        "2485a4b610171f4e1c4ab0d053569747795c1bbe",
        "91dce7ddab99a29b600e3d792b847dc2cdbf0848"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:30:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:30:02 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (69 commits)\n  pptp: Accept packet with seq zero\n  RDS: Remove some unused iWARP code\n  net: fsl: fec: handle 10Mbps speed in RMII mode\n  drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c: add missing iounmap\n  drivers/net/ethernet/tundra/tsi108_eth.c: add missing iounmap\n  ksz884x: fix mtu for VLAN\n  net_sched: sfq: add optional RED on top of SFQ\n  dp83640: Fix NOHZ local_softirq_pending 08 warning\n  gianfar: Fix invalid TX frames returned on error queue when time stamping\n  gianfar: Fix missing sock reference when processing TX time stamps\n  phylib: introduce mdiobus_alloc_size()\n  net: decrement memcg jump label when limit, not usage, is changed\n  net: reintroduce missing rcu_assign_pointer() calls\n  inet_diag: Rename inet_diag_req_compat into inet_diag_req\n  inet_diag: Rename inet_diag_req into inet_diag_req_v2\n  bond_alb: don\u0027t disable softirq under bond_alb_xmit\n  mac80211: fix rx-\u003ekey NULL pointer dereference in promiscuous mode\n  nl80211: fix old station flags compatibility\n  mdio-octeon: use an unique MDIO bus name.\n  mdio-gpio: use an unique MDIO bus name.\n  ...\n"
    },
    {
      "commit": "028ee4be34a09a6d48bdf30ab991ae933a7bc036",
      "tree": "455783226ceb65aee100f86afed529d4bbde1c8b",
      "parents": [
        "b3f7f573a20081910e34e99cbc91831f4f02f1ff"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu Jan 12 17:20:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "c/r: prctl: add PR_SET_MM codes to set up mm_struct entries\n\nWhen we restore a task we need to set up text, data and data heap sizes\nfrom userspace to the values a task had at checkpoint time.  This patch\nadds auxilary prctl codes for that.\n\nWhile most of them have a statistical nature (their values are involved\ninto calculation of /proc/\u003cpid\u003e/statm output) the start_brk and brk values\nare used to compute an allowed size of program data segment expansion.\nWhich means an arbitrary changes of this values might be dangerous\noperation.  So to restrict access the following requirements applied to\nprctl calls:\n\n - The process has to have CAP_SYS_ADMIN capability granted.\n - For all opcodes except start_brk/brk members an appropriate\n   VMA area must exist and should fit certain VMA flags,\n   such as:\n   - code segment must be executable but not writable;\n   - data segment must not be executable.\n\nstart_brk/brk values must not intersect with data segment and must not\nexceed RLIMIT_DATA resource limit.\n\nStill the main guard is CAP_SYS_ADMIN capability check.\n\nNote the kernel should be compiled with CONFIG_CHECKPOINT_RESTORE support\notherwise these prctl calls will return -EINVAL.\n\n[akpm@linux-foundation.org: cache current-\u003emm in a local, saving 200 bytes text]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "928da837aca77a9d3cb5076bf07b3224b1ba293b",
      "tree": "741c003b608d50101fa91746d36a7c5e847a8fa5",
      "parents": [
        "65dd2aa90aa17a26703c28652408192856aa0396"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Thu Jan 12 17:20:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "radix_tree: remove radix_tree_indirect_to_ptr()\n\nIt is not used anymore, remove it\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87192a2a49c475cf322cb143e0fa63b0102d8567",
      "tree": "70acf2fb1e4a9a3a62559ad9218278d2fb114599",
      "parents": [
        "ae55e1aaa7e2e57e538cb98cf617f511c5dc4f73"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "vfs: cache request_queue in struct block_device\n\nThis makes it possible to get from the inode to the request_queue with one\nless cache miss.  Used in followon optimization.\n\nThe livetime of the pointer is the same as the gendisk.\n\nThis assumes that the queue will always stay the same in the gendisk while\nit\u0027s visible to block_devices.  I think that\u0027s safe correct?\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f536b9e9f85456df93614b3c2f6a1a2b7d7cb9b",
      "tree": "01ad4e6b777c7583a413a2b45cd9b3fd3f2b4d35",
      "parents": [
        "93e13a360ba331915220f82f6e9543df961ffa1f"
      ],
      "author": {
        "name": "Fabio Estevam",
        "email": "festevam@gmail.com",
        "time": "Thu Jan 12 17:20:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "include/linux/crash_dump.h needs elf.h\n\nBuilding an ARM target we get the following warnings:\n\n  CC      arch/arm/kernel/setup.o\n  In file included from arch/arm/kernel/setup.c:39:\n  arch/arm/include/asm/elf.h:102:1: warning: \"vmcore_elf64_check_arch\" redefined\n  In file included from arch/arm/kernel/setup.c:24:\n  include/linux/crash_dump.h:30:1: warning: this is the location of the previous definition\n\nQuoting Russell King:\n\n\"linux/crash_dump.h makes no attempt to include asm/elf.h, but it depends\non stuff in asm/elf.h to determine how stuff inside this file is defined\nat parse time.\n\nSo, if asm/elf.h is included after linux/crash_dump.h or not at all, you\nget a different result from the situation where asm/elf.h is included\nbefore.\"\n\nSo add elf.h header to crash_dump.h to avoid this problem.\n\nThe original discussion about this can be found at:\nhttp://www.spinics.net/lists/arm-kernel/msg154113.html\n\nSigned-off-by: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.2.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3dd3323058d281abd584b15ad4c5b65064d7a61",
      "tree": "98c65337f9960db2d0ca55687314bb821f3e7c1f",
      "parents": [
        "9512938b885304f72c847379611d6018064af840"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu Jan 12 17:20:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "kexec: remove KMSG_DUMP_KEXEC\n\nKMSG_DUMP_KEXEC is useless because we already save kernel messages inside\n/proc/vmcore, and it is unsafe to allow modules to do other stuffs in a\ncrash dump scenario.\n\n[akpm@linux-foundation.org: fix powerpc build]\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.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": "1c1c53d43b387d02174911ecb42ce846577b0ea0",
      "tree": "bb1294b23d23f2403ab95068af6080b375cc3166",
      "parents": [
        "4111304dab198c687bc60f2e235a9f7ee92c47c8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: remove del_page_from_lru, add page_off_lru\n\ndel_page_from_lru() repeats del_page_from_lru_list(), also working out\nwhich LRU the page was on, clearing the relevant bits.  Decouple those\nfunctions: remove del_page_from_lru() and add page_off_lru().\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4111304dab198c687bc60f2e235a9f7ee92c47c8",
      "tree": "c98fbae214f73f8475bcdc54c8116dea82cd7d14",
      "parents": [
        "4d06f382c733f99ec67df006255e87525ac1efd3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: enum lru_list lru\n\nMostly we use \"enum lru_list lru\": change those few \"l\"s to \"lru\"s.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5095ae83759f035c823fb375c6ed2de99c81d5ec",
      "tree": "478eb973da4fe6461cd749136a5f62bd96a0ac21",
      "parents": [
        "2bcf887963812c075f80a14e1fad8ec7e1c67acf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:19:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: fewer underscores in ____pagevec_lru_add\n\nWhat\u0027s so special about ____pagevec_lru_add() that it needs four leading\nunderscores?  Nothing, it just helped to distinguish from\n__pagevec_lru_add() in 2.6.28 development.  Cut two leading underscores.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bcf887963812c075f80a14e1fad8ec7e1c67acf",
      "tree": "132f11eefe904653307a05b77d16f4c41866e486",
      "parents": [
        "90b3feaec8ffb167abd8903bf111605c2f035aa8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:19:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: take pagevecs off reclaim stack\n\nReplace pagevecs in putback_lru_pages() and move_active_pages_to_lru()\nby lists of pages_to_free: then apply Konstantin Khlebnikov\u0027s\nfree_hot_cold_page_list() to them instead of pagevec_release().\n\nWhich simplifies the flow (no need to drop and retake lock whenever\npagevec fills up) and reduces stale addresses in stack backtraces\n(which often showed through the pagevecs); but more importantly,\nremoves another 120 bytes from the deepest stacks in page reclaim.\nAlthough I\u0027ve not recently seen an actual stack overflow here with\na vanilla kernel, move_active_pages_to_lru() has often featured in\ndeep backtraces.\n\nHowever, free_hot_cold_page_list() does not handle compound pages\n(nor need it: a Transparent HugePage would have been split by the\ntime it reaches the call in shrink_page_list()), but it is possible\nfor putback_lru_pages() or move_active_pages_to_lru() to be left\nholding the last reference on a THP, so must exclude the unlikely\ncompound case before putting on pages_to_free.\n\nRemove pagevec_strip(), its work now done in move_active_pages_to_lru().\nThe pagevec in scan_mapping_unevictable_pages() remains in mm/vmscan.c,\nbut that is never on the reclaim path, and cannot be replaced by a list.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6bc32b899223a877f595ef9ddc1e89ead5072b8",
      "tree": "a9529f7af2cf8e77bb6670acea32169c891a2b76",
      "parents": [
        "66199712e9eef5aede09dbcd9dfff87798a66917"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: compaction: introduce sync-light migration for use by compaction\n\nThis patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT\nmode that avoids writing back pages to backing storage.  Async compaction\nmaps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.\nFor other migrate_pages users such as memory hotplug, MIGRATE_SYNC is\nused.\n\nThis avoids sync compaction stalling for an excessive length of time,\nparticularly when copying files to a USB stick where there might be a\nlarge number of dirty pages backed by a filesystem that does not support\n-\u003ewritepages.\n\n[aarcange@redhat.com: This patch is heavily based on Andrea\u0027s work]\n[akpm@linux-foundation.org: fix fs/nfs/write.c build]\n[akpm@linux-foundation.org: fix fs/btrfs/disk-io.c build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andy Isaacson \u003cadi@hexapodia.org\u003e\nCc: Nai Xia \u003cnai.xia@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "c82449352854ff09e43062246af86bdeb628f0c3",
      "tree": "9cb8052e425c8cdab24ac41e83bbb672832ce54e",
      "parents": [
        "b969c4ab9f182a6e1b2a0848be349f99714947b0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: compaction: make isolate_lru_page() filter-aware again\n\nCommit 39deaf85 (\"mm: compaction: make isolate_lru_page() filter-aware\")\nnoted that compaction does not migrate dirty or writeback pages and that\nis was meaningless to pick the page and re-add it to the LRU list.  This\nhad to be partially reverted because some dirty pages can be migrated by\ncompaction without blocking.\n\nThis patch updates \"mm: compaction: make isolate_lru_page\" by skipping\nover pages that migration has no possibility of migrating to minimise LRU\ndisruption.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel\u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andy Isaacson \u003cadi@hexapodia.org\u003e\nCc: Nai Xia \u003cnai.xia@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "b969c4ab9f182a6e1b2a0848be349f99714947b0",
      "tree": "dc1c6e4375cfec7b15f13a37307eba8a9e07f40f",
      "parents": [
        "7335084d446b83cbcb15da80497d03f0c1dc9e21"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: compaction: determine if dirty pages can be migrated without blocking within -\u003emigratepage\n\nAsynchronous compaction is used when allocating transparent hugepages to\navoid blocking for long periods of time.  Due to reports of stalling,\nthere was a debate on disabling synchronous compaction but this severely\nimpacted allocation success rates.  Part of the reason was that many dirty\npages are skipped in asynchronous compaction by the following check;\n\n\tif (PageDirty(page) \u0026\u0026 !sync \u0026\u0026\n\t\tmapping-\u003ea_ops-\u003emigratepage !\u003d migrate_page)\n\t\t\trc \u003d -EBUSY;\n\nThis skips over all mapping aops using buffer_migrate_page() even though\nit is possible to migrate some of these pages without blocking.  This\npatch updates the -\u003emigratepage callback with a \"sync\" parameter.  It is\nthe responsibility of the callback to fail gracefully if migration would\nblock.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andy Isaacson \u003cadi@hexapodia.org\u003e\nCc: Nai Xia \u003cnai.xia@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "f21760b15dcd091e5afd38d0b97197b45f7ef2ea",
      "tree": "84dd0f9016b46630d6b67e48ff0382b78a1bc519",
      "parents": [
        "e5591307f0c1eb733d280a0b72473e01d7f88530"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: add tlb_remove_pmd_tlb_entry\n\nWe have tlb_remove_tlb_entry to indicate a pte tlb flush entry should be\nflushed, but not a corresponding API for pmd entry.  This isn\u0027t a\nproblem so far because THP is only for x86 currently and tlb_flush()\nunder x86 will flush entire TLB.  But this is confusion and could be\nmissed if thp is ported to other arch.\n\nAlso convert tlb-\u003eneed_flush \u003d 1 to a VM_BUG_ON(!tlb-\u003eneed_flush) in\n__tlb_remove_page() as suggested by Andrea Arcangeli.  The\n__tlb_remove_page() function is supposed to be called after\ntlb_remove_xxx_tlb_entry() and we can catch any misuse.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: 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": "38c5d72f3ebe5ddd57d2f08dc035070fc6c9a287",
      "tree": "6461c0dfec95dccc92191f059fbe99b5660a8860",
      "parents": [
        "4e5f01c2b9b94321992acb09c35d34f5ee5bb274"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 12 17:19:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:07 2012 -0800"
      },
      "message": "memcg: simplify LRU handling by new rule\n\nNow, at LRU handling, memory cgroup needs to do complicated works to see\nvalid pc-\u003emem_cgroup, which may be overwritten.\n\nThis patch is for relaxing the protocol. This patch guarantees\n   - when pc-\u003emem_cgroup is overwritten, page must not be on LRU.\n\nBy this, LRU routine can believe pc-\u003emem_cgroup and don\u0027t need to check\nbits on pc-\u003eflags.  This new rule may adds small overheads to swapin.  But\nin most case, lru handling gets faster.\n\nAfter this patch, PCG_ACCT_LRU bit is obsolete and removed.\n\n[akpm@linux-foundation.org: remove unneeded VM_BUG_ON(), restore hannes\u0027s christmas tree]\n[akpm@linux-foundation.org: clean up code comment]\n[hughd@google.com: fix NULL mem_cgroup_try_charge]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e5f01c2b9b94321992acb09c35d34f5ee5bb274",
      "tree": "4e6ac9d29539dc26468fe2630d0e64cd022b1155",
      "parents": [
        "36b62ad539498d00c2d280a151abad5f7630fa73"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 12 17:18:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:07 2012 -0800"
      },
      "message": "memcg: clear pc-\u003emem_cgroup if necessary.\n\nThis is a preparation before removing a flag PCG_ACCT_LRU in page_cgroup\nand reducing atomic ops/complexity in memcg LRU handling.\n\nIn some cases, pages are added to lru before charge to memcg and pages\nare not classfied to memory cgroup at lru addtion.  Now, the lru where\nthe page should be added is determined a bit in page_cgroup-\u003eflags and\npc-\u003emem_cgroup.  I\u0027d like to remove the check of flag.\n\nTo handle the case pc-\u003emem_cgroup may contain stale pointers if pages\nare added to LRU before classification.  This patch resets\npc-\u003emem_cgroup to root_mem_cgroup before lru additions.\n\n[akpm@linux-foundation.org: fix CONFIG_CGROUP_MEM_CONT\u003dn build]\n[hughd@google.com: fix CONFIG_CGROUP_MEM_RES_CTLR\u003dy CONFIG_CGROUP_MEM_RES_CTLR_SWAP\u003dn build]\n[akpm@linux-foundation.org: ksm.c needs memcontrol.h, per Michal]\n[hughd@google.com: stop oops in mem_cgroup_reset_owner()]\n[hughd@google.com: fix page migration to reset_owner]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fb4b7cc0724f178d4b24a2a566ea1e7cb120b82",
      "tree": "0f2db9102d46f5e5c8492864fb1bd21f2e7cd768",
      "parents": [
        "40f23a21a8501c1b2c65c50c19b516488ac31313"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Jan 12 17:18:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:07 2012 -0800"
      },
      "message": "page_cgroup: add helper function to get swap_cgroup\n\nThere are multiple places which need to get the swap_cgroup address, so\nadd a helper function:\n\n  static struct swap_cgroup *swap_cgroup_getsc(swp_entry_t ent,\n                                struct swap_cgroup_ctrl **ctrl);\n\nto simplify the code.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "72835c86ca15d0126354b73d5f29ce9194931c9b",
      "tree": "369f31168b405e4d597b3cd067a1fd0ac2025dbc",
      "parents": [
        "ec0fffd84b162e0563a28a81aa049f946b31a8e2"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Thu Jan 12 17:18:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:06 2012 -0800"
      },
      "message": "mm: unify remaining mem_cont, mem, etc. variable names to memcg\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.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": "e94c8a9cbce1aee4af9e1285802785481b7f93c5",
      "tree": "14d496e62c2e8d59a8954ff10368d59d8dfaea03",
      "parents": [
        "6b208e3f6e35aa76d254c395bdcd984b17c6b626"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 12 17:18:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:05 2012 -0800"
      },
      "message": "memcg: make mem_cgroup_split_huge_fixup() more efficient\n\nIn split_huge_page(), mem_cgroup_split_huge_fixup() is called to handle\npage_cgroup modifcations.  It takes move_lock_page_cgroup() and modifies\npage_cgroup and LRU accounting jobs and called HPAGE_PMD_SIZE - 1 times.\n\nBut thinking again,\n  - compound_lock() is held at move_accout...then, it\u0027s not necessary\n    to take move_lock_page_cgroup().\n  - LRU is locked and all tail pages will go into the same LRU as\n    head is now on.\n  - page_cgroup is contiguous in huge page range.\n\nThis patch fixes mem_cgroup_split_huge_fixup() as to be called once per\nhugepage and reduce costs for spliting.\n\n[akpm@linux-foundation.org: fix typo, per Michal]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b208e3f6e35aa76d254c395bdcd984b17c6b626",
      "tree": "f7e65f9e1fa41907bf48f05007a10c83be668b3f",
      "parents": [
        "925b7673cce39116ce61e7a06683a4a0dad1e72a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Thu Jan 12 17:18:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:05 2012 -0800"
      },
      "message": "mm: memcg: remove unused node/section info from pc-\u003eflags\n\nTo find the page corresponding to a certain page_cgroup, the pc-\u003eflags\nencoded the node or section ID with the base array to compare the pc\npointer to.\n\nNow that the per-memory cgroup LRU lists link page descriptors directly,\nthere is no longer any code that knows the struct page_cgroup of a PFN\nbut not the struct page.\n\n[hughd@google.com: remove unused node/section info from pc-\u003eflags fix]\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "925b7673cce39116ce61e7a06683a4a0dad1e72a",
      "tree": "66c134db836e531e196ee3dfc23c124ff74ac827",
      "parents": [
        "6290df545814990ca2663baf6e894669132d5f73"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Thu Jan 12 17:18:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:05 2012 -0800"
      },
      "message": "mm: make per-memcg LRU lists exclusive\n\nNow that all code that operated on global per-zone LRU lists is\nconverted to operate on per-memory cgroup LRU lists instead, there is no\nreason to keep the double-LRU scheme around any longer.\n\nThe pc-\u003elru member is removed and page-\u003elru is linked directly to the\nper-memory cgroup LRU lists, which removes two pointers from a\ndescriptor that exists for every page frame in the system.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@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": "6290df545814990ca2663baf6e894669132d5f73",
      "tree": "c62472270ba81a7146bed0854be74e2e2338c629",
      "parents": [
        "b95a2f2d486d0d768a92879c023a03757b9c7e58"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Thu Jan 12 17:18:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:05 2012 -0800"
      },
      "message": "mm: collect LRU list heads into struct lruvec\n\nHaving a unified structure with a LRU list set for both global zones and\nper-memcg zones allows to keep that code simple which deals with LRU\nlists and does not care about the container itself.\n\nOnce the per-memcg LRU lists directly link struct pages, the isolation\nfunction and all other list manipulations are shared between the memcg\ncase and the global LRU case.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\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": "5660048ccac8735d9bc0a46325a02e6a6518b5b2",
      "tree": "4b2269ddd6ca001843187a89fb91278192028d87",
      "parents": [
        "527a5ec9a53471d855291ba9f1fdf1dd4e12a184"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Thu Jan 12 17:17:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:05 2012 -0800"
      },
      "message": "mm: move memcg hierarchy reclaim to generic reclaim code\n\nMemory cgroup limit reclaim and traditional global pressure reclaim will\nsoon share the same code to reclaim from a hierarchical tree of memory\ncgroups.\n\nIn preparation of this, move the two right next to each other in\nshrink_zone().\n\nThe mem_cgroup_hierarchical_reclaim() polymath is split into a soft\nlimit reclaim function, which still does hierarchy walking on its own,\nand a limit (shrinking) reclaim function, which relies on generic\nreclaim code to walk the hierarchy.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\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": "ab936cbcd02072a34b60d268f94440fd5cf1970b",
      "tree": "d37e3e3c54cc4cc691a428b6ceb71b4b40e4f42b",
      "parents": [
        "28d82dc1c4edbc352129f97f4ca22624d1fe61de"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 12 17:17:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:04 2012 -0800"
      },
      "message": "memcg: add mem_cgroup_replace_page_cache() to fix LRU issue\n\nCommit ef6a3c6311 (\"mm: add replace_page_cache_page() function\") added a\nfunction replace_page_cache_page().  This function replaces a page in the\nradix-tree with a new page.  WHen doing this, memory cgroup needs to fix\nup the accounting information.  memcg need to check PCG_USED bit etc.\n\nIn some(many?) cases, \u0027newpage\u0027 is on LRU before calling\nreplace_page_cache().  So, memcg\u0027s LRU accounting information should be\nfixed, too.\n\nThis patch adds mem_cgroup_replace_page_cache() and removes the old hooks.\n In that function, old pages will be unaccounted without touching\nres_counter and new page will be accounted to the memcg (of old page).\nWHen overwriting pc-\u003emem_cgroup of newpage, take zone-\u003elru_lock and avoid\nraces with LRU handling.\n\nBackground:\n  replace_page_cache_page() is called by FUSE code in its splice() handling.\n  Here, \u0027newpage\u0027 is replacing oldpage but this newpage is not a newly allocated\n  page and may be on LRU. LRU mis-accounting will be critical for memory cgroup\n  because rmdir() checks the whole LRU is empty and there is no account leak.\n  If a page is on the other LRU than it should be, rmdir() will fail.\n\nThis bug was added in March 2011, but no bug report yet.  I guess there\nare not many people who use memcg and FUSE at the same time with upstream\nkernels.\n\nThe result of this bug is that admin cannot destroy a memcg because of\naccount leak.  So, no panic, no deadlock.  And, even if an active cgroup\nexist, umount can succseed.  So no problem at shutdown.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28d82dc1c4edbc352129f97f4ca22624d1fe61de",
      "tree": "a6fbd269d17134ff42597b4e02eba4345bf6d901",
      "parents": [
        "2ccd4f4d4737b37e21dd92c8c584c23cd87740a2"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Jan 12 17:17:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:04 2012 -0800"
      },
      "message": "epoll: limit paths\n\nThe current epoll code can be tickled to run basically indefinitely in\nboth loop detection path check (on ep_insert()), and in the wakeup paths.\nThe programs that tickle this behavior set up deeply linked networks of\nepoll file descriptors that cause the epoll algorithms to traverse them\nindefinitely.  A couple of these sample programs have been previously\nposted in this thread: https://lkml.org/lkml/2011/2/25/297.\n\nTo fix the loop detection path check algorithms, I simply keep track of\nthe epoll nodes that have been already visited.  Thus, the loop detection\nbecomes proportional to the number of epoll file descriptor and links.\nThis dramatically decreases the run-time of the loop check algorithm.  In\none diabolical case I tried it reduced the run-time from 15 mintues (all\nin kernel time) to .3 seconds.\n\nFixing the wakeup paths could be done at wakeup time in a similar manner\nby keeping track of nodes that have already been visited, but the\ncomplexity is harder, since there can be multiple wakeups on different\ncpus...Thus, I\u0027ve opted to limit the number of possible wakeup paths when\nthe paths are created.\n\nThis is accomplished, by noting that the end file descriptor points that\nare found during the loop detection pass (from the newly added link), are\nactually the sources for wakeup events.  I keep a list of these file\ndescriptors and limit the number and length of these paths that emanate\nfrom these \u0027source file descriptors\u0027.  In the current implemetation I\nallow 1000 paths of length 1, 500 of length 2, 100 of length 3, 50 of\nlength 4 and 10 of length 5.  Note that it is sufficient to check the\n\u0027source file descriptors\u0027 reachable from the newly added link, since no\nother \u0027source file descriptors\u0027 will have newly added links.  This allows\nus to check only the wakeup paths that may have gotten too long, and not\nre-check all possible wakeup paths on the system.\n\nIn terms of the path limit selection, I think its first worth noting that\nthe most common case for epoll, is probably the model where you have 1\nepoll file descriptor that is monitoring n number of \u0027source file\ndescriptors\u0027.  In this case, each \u0027source file descriptor\u0027 has a 1 path of\nlength 1.  Thus, I believe that the limits I\u0027m proposing are quite\nreasonable and in fact may be too generous.  Thus, I\u0027m hoping that the\nproposed limits will not prevent any workloads that currently work to\nfail.\n\nIn terms of locking, I have extended the use of the \u0027epmutex\u0027 to all\nepoll_ctl add and remove operations.  Currently its only used in a subset\nof the add paths.  I need to hold the epmutex, so that we can correctly\ntraverse a coherent graph, to check the number of paths.  I believe that\nthis additional locking is probably ok, since its in the setup/teardown\npaths, and doesn\u0027t affect the running paths, but it certainly is going to\nadd some extra overhead.  Also, worth noting is that the epmuex was\nrecently added to the ep_ctl add operations in the initial path loop\ndetection code using the argument that it was not on a critical path.\n\nAnother thing to note here, is the length of epoll chains that is allowed.\nCurrently, eventpoll.c defines:\n\n/* Maximum number of nesting allowed inside epoll sets */\n#define EP_MAX_NESTS 4\n\nThis basically means that I am limited to a graph depth of 5 (EP_MAX_NESTS\n+ 1).  However, this limit is currently only enforced during the loop\ncheck detection code, and only when the epoll file descriptors are added\nin a certain order.  Thus, this limit is currently easily bypassed.  The\nnewly added check for wakeup paths, stricly limits the wakeup paths to a\nlength of 5, regardless of the order in which ep\u0027s are linked together.\nThus, a side-effect of the new code is a more consistent enforcement of\nthe graph depth.\n\nThus far, I\u0027ve tested this, using the sample programs previously\nmentioned, which now either return quickly or return -EINVAL.  I\u0027ve also\ntesting using the piptest.c epoll tester, which showed no difference in\nperformance.  I\u0027ve also created a number of different epoll networks and\ntested that they behave as expectded.\n\nI believe this solves the original diabolical test cases, while still\npreserving the sane epoll nesting.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Nelson Elhage \u003cnelhage@ksplice.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43570fd2f47ba518145e9289f54cde3dba4c8b25",
      "tree": "67aa61c8b972f4b3af66cd89082222e77e06a4cb",
      "parents": [
        "0d259cf8190b9c446eefd5225ffcc3941e76a432"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu Jan 12 17:17:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:03 2012 -0800"
      },
      "message": "mm,slub,x86: decouple size of struct page from CONFIG_CMPXCHG_LOCAL\n\nWhile implementing cmpxchg_double() on s390 I realized that we don\u0027t set\nCONFIG_CMPXCHG_LOCAL despite the fact that we have support for it.\n\nHowever setting that option will increase the size of struct page by\neight bytes on 64 bit, which we certainly do not want.  Also, it doesn\u0027t\nmake sense that a present cpu feature should increase the size of struct\npage.\n\nBesides that it looks like the dependency to CMPXCHG_LOCAL is wrong and\nthat it should depend on CMPXCHG_DOUBLE instead.\n\nThis patch:\n\nIf an architecture supports CMPXCHG_LOCAL this shouldn\u0027t result\nautomatically in larger struct pages if the SLUB allocator is used.\nInstead introduce a new config option \"HAVE_ALIGNED_STRUCT_PAGE\" which\ncan be selected if a double word aligned struct page is required.  Also\nupdate x86 Kconfig so that it should work as before.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "0d259cf8190b9c446eefd5225ffcc3941e76a432",
      "tree": "6a0b92845f506c1f03fad5acdedd46d90b5f852c",
      "parents": [
        "ff2d8b19a3a62559afba1c53360c8577a7697714"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 12 17:17:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:03 2012 -0800"
      },
      "message": "include/linux/linkage.h: remove unused ATTRIB_NORET macro\n\nThe uses have been renamed so delete the unused macro.\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": "ff2d8b19a3a62559afba1c53360c8577a7697714",
      "tree": "20811c0e7c368cb216a436dd274695d9fc0577ef",
      "parents": [
        "9402c95f34a66e81eba473a2f7267bbae5a1dee2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 12 17:17:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:03 2012 -0800"
      },
      "message": "treewide: convert uses of ATTRIB_NORETURN to __noreturn\n\nUse the more commonly used __noreturn instead of ATTRIB_NORETURN.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9402c95f34a66e81eba473a2f7267bbae5a1dee2",
      "tree": "c46628e702d625a737fedbd9de88138a94c93d1f",
      "parents": [
        "80bf007f20b16272f210e0803f739f5606cff59d"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 12 17:17:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:03 2012 -0800"
      },
      "message": "treewide: remove useless NORET_TYPE macro and uses\n\nIt\u0027s a very old and now unused prototype marking so just delete it.\n\nNeaten panic pointer argument style to keep checkpatch quiet.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80bf007f20b16272f210e0803f739f5606cff59d",
      "tree": "1d88fc99ec70e05a5452cf9ef54363f964a28da0",
      "parents": [
        "4da47859956cebdc4c58c38a931e21847458d744"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 12 17:17:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:02 2012 -0800"
      },
      "message": "include/linux/linkage.h: remove unused NORET_AND macro\n\nThe only use in kernel.h is gone so remove the macro.\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": "4da47859956cebdc4c58c38a931e21847458d744",
      "tree": "3c588d141a5df4b4b7349e2476f0e711d7329886",
      "parents": [
        "efeb156e7275c5b6c6e0f96aceb3c6abf98fc392"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 12 17:17:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:02 2012 -0800"
      },
      "message": "kernel.h: neaten panic prototype\n\nUse __printf macro.\nConvert NORET_AND to ATTRIB_NORET.\nUse the normal kernel style for pointer arguments.\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": "ddecf0f4db44ef94847a62d6ecf74456b4dcc66f",
      "tree": "48c49b70f83d713c7e3f594e067ee726bb70777e",
      "parents": [
        "72092cc45378176ba700034c91b7af2db524df26"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Jan 06 06:31:44 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 12 20:05:28 2012 -0800"
      },
      "message": "net_sched: sfq: add optional RED on top of SFQ\n\nAdds an optional Random Early Detection on each SFQ flow queue.\n\nTraditional SFQ limits count of packets, while RED permits to also\ncontrol number of bytes per flow, and adds ECN capability as well.\n\n1) We dont handle the idle time management in this RED implementation,\nsince each \u0027new flow\u0027 begins with a null qavg. We really want to address\nbacklogged flows.\n\n2) if headdrop is selected, we try to ecn mark first packet instead of\ncurrently enqueued packet. This gives faster feedback for tcp flows\ncompared to traditional RED [ marking the last packet in queue ]\n\nExample of use :\n\ntc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 4sec sfq \\\n\tlimit 3000 headdrop flows 512 divisor 16384 \\\n\tredflowlimit 100000 min 8000 max 60000 probability 0.20 ecn\n\nqdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop\nflows 512/16384 divisor 16384\n ewma 6 min 8000b max 60000b probability 0.2 ecn\n prob_mark 0 prob_mark_head 4876 prob_drop 6131\n forced_mark 0 forced_mark_head 0 forced_drop 0\n Sent 1175211782 bytes 777537 pkt (dropped 6131, overlimits 11007\nrequeues 0)\n rate 99483Kbit 8219pps backlog 689392b 456p requeues 0\n\nIn this test, with 64 netperf TCP_STREAM sessions, 50% using ECN enabled\nflows, we can see number of packets CE marked is smaller than number of\ndrops (for non ECN flows)\n\nIf same test is run, without RED, we can check backlog is much bigger.\n\nqdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop\nflows 512/16384 divisor 16384\n Sent 1148683617 bytes 795006 pkt (dropped 0, overlimits 0 requeues 0)\n rate 98429Kbit 8521pps backlog 1221290b 841p requeues 0\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Dave Taht \u003cdave.taht@gmail.com\u003e\nTested-by: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb8a54a78e974e1af3e17fa38bb74d3747c5c1bd",
      "tree": "d3642783d7470c26815b7d3c14ea5d5949d7dcdb",
      "parents": [
        "1398eee08222a038fa5f017900f387e81f6e3ff4"
      ],
      "author": {
        "name": "Timur Tabi",
        "email": "timur@freescale.com",
        "time": "Thu Jan 12 15:23:04 2012 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 12 15:23:04 2012 -0800"
      },
      "message": "phylib: introduce mdiobus_alloc_size()\n\nIntroduce function mdiobus_alloc_size() as an alternative to mdiobus_alloc().\nMost callers of mdiobus_alloc() also allocate a private data structure, and\nthen manually point bus-\u003epriv to this object.  mdiobus_alloc_size()\ncombines the two operations into one, which simplifies memory management.\n\nThe original mdiobus_alloc() now just calls mdiobus_alloc_size(0).\n\nSigned-off-by: Timur Tabi \u003ctimur@freescale.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6733e54b669c600eb8e451939ad55130db664fed",
      "tree": "2a8c24c856fa3f5d7d58a3eb39da943ca1c57e65",
      "parents": [
        "bcf8a3dfcb274cf6654a19e12e244f3af8c0d355",
        "451d0f599934fd97faf54a5d7954b518e66192cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:39:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:39:21 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  FUSE: Notifying the kernel of deletion.\n  fuse: support ioctl on directories\n  fuse: Use kcalloc instead of kzalloc to allocate array\n  fuse: llseek optimize SEEK_CUR and SEEK_SET\n"
    },
    {
      "commit": "bcf8a3dfcb274cf6654a19e12e244f3af8c0d355",
      "tree": "f1d0e0f36c0575a9202750aff65ba17ce91bc437",
      "parents": [
        "61bd5e5683244a564ecfe31c73575ee0bc708ccc",
        "b6c96c0214138186f495e3ee73737c6fc5e4efa2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:37:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:37:27 2012 -0800"
      },
      "message": "Merge tag \u0027to-linus\u0027 of git://github.com/rustyrussell/linux\n\n* tag \u0027to-linus\u0027 of git://github.com/rustyrussell/linux: (24 commits)\n  lguest: Make sure interrupt is allocated ok by lguest_setup_irq\n  lguest: move the lguest tool to the tools directory\n  lguest: switch segment-voodoo-numbers to readable symbols\n  virtio: balloon: Add freeze, restore handlers to support S4\n  virtio: balloon: Move vq initialization into separate function\n  virtio: net: Add freeze, restore handlers to support S4\n  virtio: net: Move vq and vq buf removal into separate function\n  virtio: net: Move vq initialization into separate function\n  virtio: blk: Add freeze, restore handlers to support S4\n  virtio: blk: Move vq initialization to separate function\n  virtio: console: Disable callbacks for virtqueues at start of S4 freeze\n  virtio: console: Add freeze and restore handlers to support S4\n  virtio: console: Move vq and vq buf removal into separate functions\n  virtio: pci: add PM notification handlers for restore, freeze, thaw, poweroff\n  virtio: pci: switch to new PM API\n  virtio_blk: fix config handler race\n  virtio: add debugging if driver doesn\u0027t kick.\n  virtio: expose added descriptors immediately.\n  virtio: avoid modulus operation.\n  virtio: support unlocked queue kick\n  ...\n"
    },
    {
      "commit": "a429638cac1e5c656818a45aaff78df7b743004e",
      "tree": "0465e0d7a431bff97a3dd5a1f91d9b30c69ae0d8",
      "parents": [
        "5cf9a4e69c1ff0ccdd1d2b7404f95c0531355274",
        "9e4ce164ee3a1d07580f017069c25d180b0aa785"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 08:00:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 08:00:30 2012 -0800"
      },
      "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: (526 commits)\n  ASoC: twl6040 - Add method to query optimum PDM_DL1 gain\n  ALSA: hda - Fix the lost power-setup of seconary pins after PM resume\n  ALSA: usb-audio: add Yamaha MOX6/MOX8 support\n  ALSA: virtuoso: add S/PDIF input support for all Xonars\n  ALSA: ice1724 - Support for ooAoo SQ210a\n  ALSA: ice1724 - Allow card info based on model only\n  ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations\n  ALSA: hdspm - Provide unique driver id based on card serial\n  ASoC: Dynamically allocate the rtd device for a non-empty release()\n  ASoC: Fix recursive dependency due to select ATMEL_SSC in SND_ATMEL_SOC_SSC\n  ALSA: hda - Fix the detection of \"Loopback Mixing\" control for VIA codecs\n  ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs\n  ALSA: hda - Use auto-parser for HP laptops with cx20459 codec\n  ALSA: asihpi - Fix potential Oops in snd_asihpi_cmode_info()\n  ALSA: hdsp - Fix potential Oops in snd_hdsp_info_pref_sync_ref()\n  ALSA: hda/cirrus - support for iMac12,2 model\n  ASoC: cx20442: add bias control over a platform provided regulator\n  ALSA: usb-audio - Avoid flood of frame-active debug messages\n  ALSA: snd-usb-us122l: Delete calls to preempt_disable\n  mfd: Put WM8994 into cache only mode when suspending\n  ...\n\nFix up trivial conflicts in:\n - arch/arm/mach-s3c64xx/mach-crag6410.c:\n\trenamed speyside_wm8962 to tobermory, added littlemill right\n\tnext to it\n - drivers/base/regmap/{regcache.c,regmap.c}:\n\tduplicate diff that had already come in with other changes in\n\tthe regmap tree\n"
    },
    {
      "commit": "4c4d285ad5665bfbd983b95fde8d7a477d24a361",
      "tree": "05da51053d4c8943ae21ea0b152aef4c67eba19d",
      "parents": [
        "56c8bc3b7ed3d24c665e2ce992f86a5bedffc852",
        "e64e1b11b14d363ac70fd13ab809969a6d7e42a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 23:29:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 23:29:20 2012 -0800"
      },
      "message": "Merge tag \u0027rmobile-for-linus\u0027 of git://github.com/pmundt/linux-sh\n\nSH/R-Mobile updates for 3.3 merge window.\n\n* tag \u0027rmobile-for-linus\u0027 of git://github.com/pmundt/linux-sh: (32 commits)\n  arm: mach-shmobile: add a resource name for shdma\n  ARM: mach-shmobile: r8a7779 SMP support V3\n  ARM: mach-shmobile: Add kota2 defconfig.\n  ARM: mach-shmobile: Add marzen defconfig.\n  ARM: mach-shmobile: r8a7779 power domain support V2\n  ARM: mach-shmobile: Fix up marzen build for recent GIC changes.\n  ARM: mach-shmobile: r8a7779 PFC function support\n  ARM: mach-shmobile: Flush caches in platform_cpu_die()\n  ARM: mach-shmobile: Allow SoC specific CPU kill code\n  ARM: mach-shmobile: Fix headsmp.S code to use CPUINIT\n  ARM: mach-shmobile: clock-r8a7779: clkz/clkzs support\n  ARM: mach-shmobile: clock-r8a7779: add DIV4 clock support\n  ARM: mach-shmobile: Marzen LAN89218 support\n  ARM: mach-shmobile: Marzen SCIF2/SCIF4 support\n  ARM: mach-shmobile: r8a7779 PFC GPIO-only support V2\n  ARM: mach-shmobile: r8a7779 and Marzen base support V2\n  sh: pfc: Unlock register support\n  sh: pfc: Variable bitfield width config register support\n  sh: pfc: Add config_reg_helper() function\n  sh: pfc: Convert index to field and value pair\n  ...\n"
    },
    {
      "commit": "56c8bc3b7ed3d24c665e2ce992f86a5bedffc852",
      "tree": "ee8747e83beb5a4323dd2328f3368ffb9031dc31",
      "parents": [
        "b8bf17d311c875de02550d5ce2af66588734159a",
        "1c1744cc7cee83b96e3a89c1b9853fc033bafb9c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 23:22:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 23:22:52 2012 -0800"
      },
      "message": "Merge tag \u0027sh-for-linus\u0027 of git://github.com/pmundt/linux-sh\n\nSuperH updates for 3.3 merge window.\n\n* tag \u0027sh-for-linus\u0027 of git://github.com/pmundt/linux-sh: (38 commits)\n  sh: magicpanelr2: Update for parse_mtd_partitions() fallout.\n  sh: mach-rsk: Update for parse_mtd_partitions() fallout.\n  sh: sh2a: Improve cache flush/invalidate functions\n  sh: also without PM_RUNTIME pm_runtime.o must be built\n  sh: add a resource name for shdma\n  sh: Remove redundant try_to_freeze() invocations.\n  sh: Ensure IRQs are enabled across do_notify_resume().\n  sh: Fix up store queue code for subsys_interface changes.\n  sh: clkfwk: sh_clk_init_parent() should be called after clk_register()\n  sh: add platform_device for renesas_usbhs in board-sh7757lcr\n  sh: modify clock-sh7757 for renesas_usbhs\n  sh: pfc: ioremap() support\n  sh: use ioread32/iowrite32 and mapped_reg for div6\n  sh: use ioread32/iowrite32 and mapped_reg for div4\n  sh: use ioread32/iowrite32 and mapped_reg for mstp32\n  sh: extend clock struct with mapped_reg member\n  sh: clkfwk: clock-sh73a0: all div6_clks use SH_CLK_DIV6_EXT()\n  sh: clkfwk: clock-sh7724: all div6_clks use SH_CLK_DIV6_EXT()\n  sh: clock-sh7723: add CLKDEV_ICK_ID for cleanup\n  serial: sh-sci: Handle GPIO function requests.\n  ...\n"
    },
    {
      "commit": "f0fe6f11503fa9880867554350ac5d3092c47251",
      "tree": "0f95d79a528809e169a742afeafddd041d275181",
      "parents": [
        "d077536386595309060dda57e7b7474c501a589b"
      ],
      "author": {
        "name": "Amit Shah",
        "email": "amit.shah@redhat.com",
        "time": "Thu Dec 22 16:58:26 2011 +0530"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:44 2012 +1030"
      },
      "message": "virtio: pci: add PM notification handlers for restore, freeze, thaw, poweroff\n\nHandle thaw, restore and freeze notifications from the PM core.  Expose\nthese to individual virtio drivers that can quiesce and resume vq\noperations.  For drivers not implementing the thaw() method, use the\nrestore method instead.\n\nThese functions also save device-specific data so that the device can be\nput in pre-suspend state after resume, and disable and enable the PCI\ndevice in the freeze and resume functions, respectively.\n\nSigned-off-by: Amit Shah \u003camit.shah@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "41f0377f73039ca6fe97a469d1941a89cd9757f1",
      "tree": "380814eb3ad8092069c784539b5b88f8a9506240",
      "parents": [
        "f96fde41f7f9af6cf20f6a1919f5d9670f84d574"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:43 2012 +1030"
      },
      "message": "virtio: support unlocked queue kick\n\nBased on patch by Christoph for virtio_blk speedup:\n\n\tSplit virtqueue_kick to be able to do the actual notification\n\toutside the lock protecting the virtqueue.  This patch was\n\toriginally done by Stefan Hajnoczi, but I can\u0027t find the\n\toriginal one anymore and had to recreated it from memory.\n\tPointers to the original or corrections for the commit message\n\tare welcome.\n\nStefan\u0027s patch was here:\n\n\thttps://github.com/stefanha/linux/commit/a6d06644e3a58e57a774e77d7dc34c4a5a2e7496\n\thttp://www.spinics.net/lists/linux-virtualization/msg14616.html\n\nThird time\u0027s the charm!\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f96fde41f7f9af6cf20f6a1919f5d9670f84d574",
      "tree": "14b8a0343b255989ac8ba0ea34e18dca419723df",
      "parents": [
        "5dfc17628d57f9e62043ed0cba03a6e3eb019a78"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: rename virtqueue_add_buf_gfp to virtqueue_add_buf\n\nRemove wrapper functions. This makes the allocation type explicit in\nall callers; I used GPF_KERNEL where it seemed obvious, left it at\nGFP_ATOMIC otherwise.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5dfc17628d57f9e62043ed0cba03a6e3eb019a78",
      "tree": "a488dd3ea081166342904224db3cf039758f23d4",
      "parents": [
        "1e214a5c1a7e901fc8e98ad6ef84f11005f9ee9d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: document functions better.\n\nThe old documentation is left over from when we used a structure with\nstrategy pointers.\n\nAnd move the documentation to the C file as per kernel practice.\nThough I disagree...\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7b21e34fd1c272e3a8c3846168f2f6287a4cd72b",
      "tree": "0f94c9f834f5b7cd8ba87168df892ed17b09cb8f",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 12 15:44:42 2012 +1030"
      },
      "message": "virtio: harsher barriers for rpmsg.\n\nWe were cheating with our barriers; using the smp ones rather than the\nreal device ones.  That was fine, until rpmsg came along, which is\nused to talk to a real device (a non-SMP CPU).\n\nUnfortunately, just putting back the real barriers (reverting\nd57ed95d) causes a performance regression on virtio-pci.  In\nparticular, Amos reports netbench\u0027s TCP_RR over virtio_net CPU\nutilization increased up to 35% while throughput went down by up to\n14%.\n\nBy comparison, this branch is in the noise.\n\nReference: https://lkml.org/lkml/2011/12/11/22\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b1bdd255661369cb6eb90b6e181169b5e6d0f9b6",
      "tree": "17d15f3a6dc5bdd6205070dbef0e339421b13d25",
      "parents": [
        "9d14070f656addddce3d63fd483de46930b51850",
        "c1537b4863da620f12f5b42ece61bf65314148ed"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 12 13:11:43 2012 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 12 13:11:43 2012 +0900"
      },
      "message": "Merge branch \u0027sh/nommu\u0027 into sh-latest\n"
    },
    {
      "commit": "541048a1d31399ccdda27346a37eae4a2ad55186",
      "tree": "e2a820ee478b18d4214347631b94b9a9b2d8562b",
      "parents": [
        "bcede2f64a3b5cb50c0bdec1553ab480fd75d659",
        "e58d429209105e698e9d0357481d62b37fe9a7dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:13:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:13:04 2012 -0800"
      },
      "message": "Merge branch \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, reboot: Fix typo in nmi reboot path\n  x86, NMI: Add to_cpumask() to silence compile warning\n  x86, NMI: NMI selftest depends on the local apic\n  x86: Add stack top margin for stack overflow checking\n  x86, NMI: NMI-selftest should handle the UP case properly\n  x86: Fix the 32-bit stackoverflow-debug build\n  x86, NMI: Add knob to disable using NMI IPIs to stop cpus\n  x86, NMI: Add NMI IPI selftest\n  x86, reboot: Use NMI instead of REBOOT_VECTOR to stop cpus\n  x86: Clean up the range of stack overflow checking\n  x86: Panic on detection of stack overflow\n  x86: Check stack overflow in detail\n"
    },
    {
      "commit": "bcede2f64a3b5cb50c0bdec1553ab480fd75d659",
      "tree": "b98e55bf2eea83bb5f6805abb210c5ea8625b550",
      "parents": [
        "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
        "2d2da60fb40a80cc59383121ccf763e0e0e8a42a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:33 2012 -0800"
      },
      "message": "Merge branch \u0027x86-efi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-efi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Break up large initrd reads\n  x86, efi: EFI boot stub support\n  efi: Add EFI file I/O data types\n  efi.h: Add boottime-\u003elocate_handle search types\n  efi.h: Add graphics protocol guids\n  efi.h: Add allocation types for boottime-\u003eallocate_pages()\n  efi.h: Add efi_image_loaded_t\n  efi.h: Add struct definition for boot time services\n  x86: Don\u0027t use magic strings for EFI loader signature\n  x86: Add missing bzImage fields to struct setup_header\n"
    },
    {
      "commit": "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
      "tree": "436e89246fd5ebcf737cae27e135a1995155329b",
      "parents": [
        "02d929502ce7b57f4835d8bb7c828d36e6d9e8ce",
        "54eed6cb16ec315565aaaf8e34252ca253a68b7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/numa: Add constraints check for nid parameters\n  mm, x86: Remove debug_pagealloc_enabled\n  x86/mm: Initialize high mem before free_all_bootmem()\n  arch/x86/kernel/e820.c: quiet sparse noise about plain integer as NULL pointer\n  arch/x86/kernel/e820.c: Eliminate bubble sort from sanitize_e820_map()\n  x86: Fix mmap random address range\n  x86, mm: Unify zone_sizes_init()\n  x86, mm: Prepare zone_sizes_init() for unification\n  x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit\n  x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32\n  x86, mm: Use max_pfn instead of highend_pfn\n  x86, mm: Move zone init from paging_init() on 64-bit\n  x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit\n"
    },
    {
      "commit": "b24ca57e7625bc304e77bc429693ad32a691eb16",
      "tree": "770aa389c6e763cf37776a35e85ff1e41958b1e9",
      "parents": [
        "6296e5d3c067df41980a5fd09ad4cc6765f79bb9",
        "913272b3864d6da89c70d9fc2c30ccb57794b369"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:05 2012 -0800"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6: (68 commits)\n  power_supply: Mark da9052 driver as broken\n  power_supply: Drop usage of nowarn variant of sysfs_create_link()\n  s3c_adc_battery: Average over more than one adc sample\n  power_supply: Add DA9052 battery driver\n  isp1704_charger: Fix missing check\n  jz4740-battery: Fix signedness bug\n  power_supply: Assume mains power by default\n  sbs-battery: Fix devicetree match table\n  ARM: rx51: Add bq27200 i2c board info\n  sbs-battery: Change power supply name\n  devicetree-bindings: Propagate bq20z75-\u003esbs rename to dt bindings\n  devicetree-bindings: Add vendor entry for Smart Battery Systems\n  sbs-battery: Rename internals to new name\n  bq20z75: Rename to sbs-battery\n  wm97xx_battery: Use DEFINE_MUTEX() for work_lock\n  max8997_charger: Remove duplicate module.h\n  lp8727_charger: Some minor fixes for the header\n  lp8727_charger: Add header file\n  power_supply: Convert drivers/power/* to use module_platform_driver()\n  power_supply: Add \"unknown\" in power supply type\n  ...\n"
    },
    {
      "commit": "7b67e751479d50b7f84d1a3cc5216eed5e534b66",
      "tree": "a1a6746857cf65f04dde739fe271bf4143d55eaf",
      "parents": [
        "9f13a1fd452f11c18004ba2422a6384b424ec8a9",
        "76ccc297018d25d55b789bbd508861ef1e2cdb0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:50:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:50:26 2012 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (80 commits)\n  x86/PCI: Expand the x86_msi_ops to have a restore MSIs.\n  PCI: Increase resource array mask bit size in pcim_iomap_regions()\n  PCI: DEVICE_COUNT_RESOURCE should be equal to PCI_NUM_RESOURCES\n  PCI: pci_ids: add device ids for STA2X11 device (aka ConneXT)\n  PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB\n  x86/PCI: amd: factor out MMCONFIG discovery\n  PCI: Enable ATS at the device state restore\n  PCI: msi: fix imbalanced refcount of msi irq sysfs objects\n  PCI: kconfig: English typo in pci/pcie/Kconfig\n  PCI/PM/Runtime: make PCI traces quieter\n  PCI: remove pci_create_bus()\n  xtensa/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus()\n  x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented()\n  x86/PCI: read Broadcom CNB20LE host bridge info before PCI scan\n  sparc32, leon/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  sparc/PCI: convert to pci_create_root_bus()\n  sh/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  powerpc/PCI: convert to pci_create_root_bus()\n  powerpc/PCI: split PHB part out of pcibios_map_io_space()\n  ...\n\nFix up conflicts in drivers/pci/msi.c and include/linux/pci_regs.h due\nto the same patches being applied in other branches.\n"
    },
    {
      "commit": "3b09c84cb622ffbcdb5d541986b1eaf7d5812602",
      "tree": "5c322a4985f97c1360cf8877e8c70f8a0875dab0",
      "parents": [
        "c8991362a0d3cf317dfbfb6cb946607870654e6d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Jan 10 22:37:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 11 12:56:06 2012 -0800"
      },
      "message": "inet_diag: Rename inet_diag_req_compat into inet_diag_req\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c8991362a0d3cf317dfbfb6cb946607870654e6d",
      "tree": "21db1072591e2549fedd6d54586efe3ef7f45cb4",
      "parents": [
        "f515e6b77045b4b1f54617d9fbf4a22b95a58757"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Jan 10 22:36:35 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 11 12:56:06 2012 -0800"
      },
      "message": "inet_diag: Rename inet_diag_req into inet_diag_req_v2\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e7691a1ce341c80ed9504244a36b31c025217391",
      "tree": "e9941bb350f64a726130e299c411821da6f41a53",
      "parents": [
        "5cd9599bba428762025db6027764f1c59d0b1e1b",
        "8fcc99549522fc7a0bbaeb5755855ab0d9a59ce8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:51:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:51:23 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security: (32 commits)\n  ima: fix invalid memory reference\n  ima: free duplicate measurement memory\n  security: update security_file_mmap() docs\n  selinux: Casting (void *) value returned by kmalloc is useless\n  apparmor: fix module parameter handling\n  Security: tomoyo: add .gitignore file\n  tomoyo: add missing rcu_dereference()\n  apparmor: add missing rcu_dereference()\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mpi/mpi-mpow: NULL dereference on allocation failure\n  digsig: build dependency fix\n  KEYS: Give key types their own lockdep class for key-\u003esem\n  TPM: fix transmit_cmd error logic\n  TPM: NSC and TIS drivers X86 dependency fix\n  TPM: Export wait_for_stat for other vendor specific drivers\n  TPM: Use vendor specific function for status probe\n  tpm_tis: add delay after aborting command\n  tpm_tis: Check return code from getting timeouts/durations\n  tpm: Introduce function to poll for result of self test\n  ...\n\nFix up trivial conflict in lib/Makefile due to addition of CONFIG_MPI\nand SIGSIG next to CONFIG_DQL addition.\n"
    },
    {
      "commit": "5cd9599bba428762025db6027764f1c59d0b1e1b",
      "tree": "cb59ea13f6e6de4350ca38338bf9633e89f8418a",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244",
        "d668dc56631da067540b2494d2a1f29ff7b5f15a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:46:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:46:36 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  autofs4: deal with autofs4_write/autofs4_write races\n  autofs4: catatonic_mode vs. notify_daemon race\n  autofs4: autofs4_wait() vs. autofs4_catatonic_mode() race\n  hfsplus: creation of hidden dir on mount can fail\n  block_dev: Suppress bdev_cache_init() kmemleak warninig\n  fix shrink_dcache_parent() livelock\n  coda: switch coda_cnode_make() to sane API as well, clean coda_lookup()\n  coda: deal correctly with allocation failure from coda_cnode_makectl()\n  securityfs: fix object creation races\n"
    },
    {
      "commit": "06792c4dde2ad143928cc95c1ba218c6269c494b",
      "tree": "92bdd4631612c9e3d8e5f6f06839f75c5473300a",
      "parents": [
        "4690dfa8cd66c37fbe99bb8cd5baa86102110776",
        "166c0eaedfc3157dc1394c27e827add19f05fb27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "message": "Merge tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming\n\n* tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: (29 commits)\n  C6X: replace tick_nohz_stop/restart_sched_tick calls\n  C6X: add register_cpu call\n  C6X: deal with memblock API changes\n  C6X: fix timer64 initialization\n  C6X: fix layout of EMIFA registers\n  C6X: MAINTAINERS\n  C6X: DSCR - Device State Configuration Registers\n  C6X: EMIF - External Memory Interface\n  C6X: general SoC support\n  C6X: library code\n  C6X: headers\n  C6X: ptrace support\n  C6X: loadable module support\n  C6X: cache control\n  C6X: clocks\n  C6X: build infrastructure\n  C6X: syscalls\n  C6X: interrupt handling\n  C6X: time management\n  C6X: signal management\n  ...\n"
    },
    {
      "commit": "001a541ea9163ace5e8243ee0e907ad80a4c0ec2",
      "tree": "a76225046369c440de93739add9823f5ea060245",
      "parents": [
        "40ba587923ae67090d9f141c1d3c951be5c1420e",
        "bc31b86a5923fad5f3fbb6192f767f410241ba27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:59:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:59:59 2012 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: move MIN_WRITEBACK_PAGES to fs-writeback.c\n  writeback: balanced_rate cannot exceed write bandwidth\n  writeback: do strict bdi dirty_exceeded\n  writeback: avoid tiny dirty poll intervals\n  writeback: max, min and target dirty pause time\n  writeback: dirty ratelimit - think time compensation\n  btrfs: fix dirtied pages accounting on sub-page writes\n  writeback: fix dirtied pages accounting on redirty\n  writeback: fix dirtied pages accounting on sub-page writes\n  writeback: charge leaked page dirties to active tasks\n  writeback: Include all dirty inodes in background writeback\n"
    },
    {
      "commit": "40ba587923ae67090d9f141c1d3c951be5c1420e",
      "tree": "342a72fc0ee13a0d2496ef970b64dfeadf1355d2",
      "parents": [
        "54c2c5761febcca46c8037d3a81612991e6c209a",
        "6b550f9495947fc279d12c38feaf98500e8d0646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:42:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:42:48 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (aka \"Andrew\u0027s patch-bomb\")\n\nAndrew elucidates:\n - First installmeant of MM.  We have a HUGE number of MM patches this\n   time.  It\u0027s crazy.\n - MAINTAINERS updates\n - backlight updates\n - leds\n - checkpatch updates\n - misc ELF stuff\n - rtc updates\n - reiserfs\n - procfs\n - some misc other bits\n\n* akpm: (124 commits)\n  user namespace: make signal.c respect user namespaces\n  workqueue: make alloc_workqueue() take printf fmt and args for name\n  procfs: add hidepid\u003d and gid\u003d mount options\n  procfs: parse mount options\n  procfs: introduce the /proc/\u003cpid\u003e/map_files/ directory\n  procfs: make proc_get_link to use dentry instead of inode\n  signal: add block_sigmask() for adding sigmask to current-\u003eblocked\n  sparc: make SA_NOMASK a synonym of SA_NODEFER\n  reiserfs: don\u0027t lock root inode searching\n  reiserfs: don\u0027t lock journal_init()\n  reiserfs: delay reiserfs lock until journal initialization\n  reiserfs: delete comments referring to the BKL\n  drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range\n  drivers/rtc/rtc-twl.c: add DT support for RTC inside twl4030/twl6030\n  drivers/rtc/: remove redundant spi driver bus initialization\n  drivers/rtc/rtc-jz4740.c: make jz4740_rtc_driver static\n  drivers/rtc/rtc-mc13xxx.c: make mc13xxx_rtc_idtable static\n  rtc: convert drivers/rtc/* to use module_platform_driver()\n  drivers/rtc/rtc-wm831x.c: convert to devm_kzalloc()\n  drivers/rtc/rtc-wm831x.c: remove unused period IRQ handler\n  ...\n"
    },
    {
      "commit": "b196be89cdc14a88cc637cdad845a75c5886c82d",
      "tree": "195816e6ab82362969409b3317d223421502224a",
      "parents": [
        "0499680a42141d86417a8fbaa8c8db806bea1201"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 10 15:11:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "workqueue: make alloc_workqueue() take printf fmt and args for name\n\nalloc_workqueue() currently expects the passed in @name pointer to remain\naccessible.  This is inconvenient and a bit silly given that the whole wq\nis being dynamically allocated.  This patch updates alloc_workqueue() and\nfriends to take printf format string instead of opaque string and matching\nvarargs at the end.  The name is allocated together with the wq and\nformatted.\n\nalloc_ordered_workqueue() is converted to a macro to unify varargs\nhandling with alloc_workqueue(), and, while at it, add comment to\nalloc_workqueue().\n\nNone of the current in-kernel users pass in string with \u0027%\u0027 as constant\nname and this change shouldn\u0027t cause any problem.\n\n[akpm@linux-foundation.org: use __printf]\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSuggested-by: Christoph Hellwig \u003chch@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": "0499680a42141d86417a8fbaa8c8db806bea1201",
      "tree": "eb2aeb559bf5418476319aa81fa4f6ed3659bbc0",
      "parents": [
        "97412950b10e64f347aec4a9b759395c2465adf6"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Tue Jan 10 15:11:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: add hidepid\u003d and gid\u003d mount options\n\nAdd support for mount options to restrict access to /proc/PID/\ndirectories.  The default backward-compatible \"relaxed\" behaviour is left\nuntouched.\n\nThe first mount option is called \"hidepid\" and its value defines how much\ninfo about processes we want to be available for non-owners:\n\nhidepid\u003d0 (default) means the old behavior - anybody may read all\nworld-readable /proc/PID/* files.\n\nhidepid\u003d1 means users may not access any /proc/\u003cpid\u003e/ directories, but\ntheir own.  Sensitive files like cmdline, sched*, status are now protected\nagainst other users.  As permission checking done in proc_pid_permission()\nand files\u0027 permissions are left untouched, programs expecting specific\nfiles\u0027 modes are not confused.\n\nhidepid\u003d2 means hidepid\u003d1 plus all /proc/PID/ will be invisible to other\nusers.  It doesn\u0027t mean that it hides whether a process exists (it can be\nlearned by other means, e.g.  by kill -0 $PID), but it hides process\u0027 euid\nand egid.  It compicates intruder\u0027s task of gathering info about running\nprocesses, whether some daemon runs with elevated privileges, whether\nanother user runs some sensitive program, whether other users run any\nprogram at all, etc.\n\ngid\u003dXXX defines a group that will be able to gather all processes\u0027 info\n(as in hidepid\u003d0 mode).  This group should be used instead of putting\nnonroot user in sudoers file or something.  However, untrusted users (like\ndaemons, etc.) which are not supposed to monitor the tasks in the whole\nsystem should not be added to the group.\n\nhidepid\u003d1 or higher is designed to restrict access to procfs files, which\nmight reveal some sensitive private information like precise keystrokes\ntimings:\n\nhttp://www.openwall.com/lists/oss-security/2011/11/05/3\n\nhidepid\u003d1/2 doesn\u0027t break monitoring userspace tools.  ps, top, pgrep, and\nconky gracefully handle EPERM/ENOENT and behave as if the current user is\nthe only user running processes.  pstree shows the process subtree which\ncontains \"pstree\" process.\n\nNote: the patch doesn\u0027t deal with setuid/setgid issues of keeping\npreopened descriptors of procfs files (like\nhttps://lkml.org/lkml/2011/2/7/368).  We rely on that the leaked\ninformation like the scheduling counters of setuid apps doesn\u0027t threaten\nanybody\u0027s privacy - only the user started the setuid program may read the\ncounters.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Theodore Tso \u003ctytso@MIT.EDU\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Oleg Nesterov \u003coleg@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": "640708a2cff7f81e246243b0073c66e6ece7e53e",
      "tree": "8cc00ae2b374bf6750ad9ca20da3566e28cfc9ff",
      "parents": [
        "7773fbc54182a90cd248656619c7d33859e5f91d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Jan 10 15:11:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: introduce the /proc/\u003cpid\u003e/map_files/ directory\n\nThis one behaves similarly to the /proc/\u003cpid\u003e/fd/ one - it contains\nsymlinks one for each mapping with file, the name of a symlink is\n\"vma-\u003evm_start-vma-\u003evm_end\", the target is the file.  Opening a symlink\nresults in a file that point exactly to the same inode as them vma\u0027s one.\n\nFor example the ls -l of some arbitrary /proc/\u003cpid\u003e/map_files/\n\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80403000-7f8f80404000 -\u003e /lib64/libc-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f8061e000-7f8f80620000 -\u003e /lib64/libselinux.so.1\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80826000-7f8f80827000 -\u003e /lib64/libacl.so.1.1.0\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a2f000-7f8f80a30000 -\u003e /lib64/librt-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a30000-7f8f80a4c000 -\u003e /lib64/ld-2.5.so\n\nThis *helps* checkpointing process in three ways:\n\n1. When dumping a task mappings we do know exact file that is mapped\n   by particular region.  We do this by opening\n   /proc/$pid/map_files/$address symlink the way we do with file\n   descriptors.\n\n2. This also helps in determining which anonymous shared mappings are\n   shared with each other by comparing the inodes of them.\n\n3. When restoring a set of processes in case two of them has a mapping\n   shared, we map the memory by the 1st one and then open its\n   /proc/$pid/map_files/$address file and map it by the 2nd task.\n\nUsing /proc/$pid/maps for this is quite inconvenient since it brings\nrepeatable re-reading and reparsing for this text file which slows down\nrestore procedure significantly.  Also as being pointed in (3) it is a way\neasier to use top level shared mapping in children as\n/proc/$pid/map_files/$address when needed.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[gorcunov@openvz.org: make map_files depend on CHECKPOINT_RESTORE]\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nReviewed-by: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7773fbc54182a90cd248656619c7d33859e5f91d",
      "tree": "1fe1cc91e194164c19675a588dad0efb3a8c8007",
      "parents": [
        "5e6292c0f28f03dfdb8ea3d685f0b838a23bfba4"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Tue Jan 10 15:11:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: make proc_get_link to use dentry instead of inode\n\nPrepare the ground for the next \"map_files\" patch which needs a name of a\nlink file to analyse.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e6292c0f28f03dfdb8ea3d685f0b838a23bfba4",
      "tree": "8684833680054ab48f9da2bbc36c93e3d00a3391",
      "parents": [
        "f350b1778f1b7713ef54fbc7e079e09e2fe098b9"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Tue Jan 10 15:11:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "signal: add block_sigmask() for adding sigmask to current-\u003eblocked\n\nAbstract the code sequence for adding a signal handler\u0027s sa_mask to\ncurrent-\u003eblocked because the sequence is identical for all architectures.\nFurthermore, in the past some architectures actually got this code wrong,\nso introduce a wrapper that all architectures can use.\n\nSigned-off-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"David S. 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": "a6d511e5155406cd214d3af3ff9cffc69548b006",
      "tree": "2151e16ad65c9646a47d9591b264e9016efedc33",
      "parents": [
        "b96a573f4c27529d379922670e8cf5530120d5ca"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jan 10 15:09:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: add driver for TCA6507 LED controller\n\nTI\u0027s TCA6507 is the LED driver in the GTA04 Openmoko motherboard.  The\ndriver provides full support for brightness levels and hardware blinking.\n\nThis driver can drive each of 7 outputs as an LED or a GPIO output,\nand provides hardware-assist blinking.\n\n[akpm@linux-foundation.org: fix __mod_i2c_device_table alias]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcfb4dcc9698f932836aa63ba0d82e7dbd300fb3",
      "tree": "3a01fc96cc2ba9c339e2848c20a241a9ec9d2423",
      "parents": [
        "0c176d52b0b2619f231b2bbf329b90c028134f58"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/mempolicy.c: mpol_equal(): use bool\n\nmpol_equal() logically returns a boolean.  Use a bool type to slightly\nimprove readability.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Stephen Wilson \u003cwilsons@start.ca\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "948f017b093a9baac23855fcd920d3a970b71bb6",
      "tree": "4536a9cbe1077133e600da2072998f5e60c696c6",
      "parents": [
        "df0a6daa01fa3856c08f4274d4f21a8092caa480"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Jan 10 15:08:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma()\n\nmigrate was doing an rmap_walk with speculative lock-less access on\npagetables.  That could lead it to not serializing properly against mremap\nPT locks.  But a second problem remains in the order of vmas in the\nsame_anon_vma list used by the rmap_walk.\n\nIf vma_merge succeeds in copy_vma, the src vma could be placed after the\ndst vma in the same_anon_vma list.  That could still lead to migrate\nmissing some pte.\n\nThis patch adds an anon_vma_moveto_tail() function to force the dst vma at\nthe end of the list before mremap starts to solve the problem.\n\nIf the mremap is very large and there are a lots of parents or childs\nsharing the anon_vma root lock, this should still scale better than taking\nthe anon_vma root lock around every pte copy practically for the whole\nduration of mremap.\n\nUpdate: Hugh noticed special care is needed in the error path where\nmove_page_tables goes in the reverse direction, a second\nanon_vma_moveto_tail() call is needed in the error path.\n\nThis program exercises the anon_vma_moveto_tail:\n\n\u003d\u003d\u003d\n\nint main()\n{\n\tstatic 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, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tprintf(\"%p\\n\", p);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tp4 \u003d mremap(p+SIZE/2, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tif (p4 !\u003d p3)\n\t\tperror(\"mremap\"), exit(1);\n\tp4 \u003d mremap(p4, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p+SIZE/2);\n\tif (p4 !\u003d p+SIZE/2)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\n$ perf probe -a anon_vma_moveto_tail\nAdd new event:\n  probe:anon_vma_moveto_tail (on anon_vma_moveto_tail)\n\nYou can now use it on all perf tools, such as:\n\n        perf record -e probe:anon_vma_moveto_tail -aR sleep 1\n\n$ perf record -e probe:anon_vma_moveto_tail -aR ./anon_vma_moveto_tail\n0x7f2ca2800000\nok\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.043 MB perf.data (~1860 samples) ]\n$ perf report --stdio\n   100.00%  anon_vma_moveto  [kernel.kallsyms]  [k] anon_vma_moveto_tail\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Nai Xia \u003cnai.xia@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Pawel Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a756cf5908530e8b40bdf569eb48b40139e8d7fd",
      "tree": "ba9df151d5468098c7eae563ce09faea6a539fc0",
      "parents": [
        "ccafa2879fb8d13b8031337a8743eac4189e5d6e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: try to distribute dirty pages fairly across zones\n\nThe maximum number of dirty pages that exist in the system at any time is\ndetermined by a number of pages considered dirtyable and a user-configured\npercentage of those, or an absolute number in bytes.\n\nThis number of dirtyable pages is the sum of memory provided by all the\nzones in the system minus their lowmem reserves and high watermarks, so\nthat the system can retain a healthy number of free pages without having\nto reclaim dirty pages.\n\nBut there is a flaw in that we have a zoned page allocator which does not\ncare about the global state but rather the state of individual memory\nzones.  And right now there is nothing that prevents one zone from filling\nup with dirty pages while other zones are spared, which frequently leads\nto situations where kswapd, in order to restore the watermark of free\npages, does indeed have to write pages from that zone\u0027s LRU list.  This\ncan interfere so badly with IO from the flusher threads that major\nfilesystems (btrfs, xfs, ext4) mostly ignore write requests from reclaim\nalready, taking away the VM\u0027s only possibility to keep such a zone\nbalanced, aside from hoping the flushers will soon clean pages from that\nzone.\n\nEnter per-zone dirty limits.  They are to a zone\u0027s dirtyable memory what\nthe global limit is to the global amount of dirtyable memory, and try to\nmake sure that no single zone receives more than its fair share of the\nglobally allowed dirty pages in the first place.  As the number of pages\nconsidered dirtyable excludes the zones\u0027 lowmem reserves and high\nwatermarks, the maximum number of dirty pages in a zone is such that the\nzone can always be balanced without requiring page cleaning.\n\nAs this is a placement decision in the page allocator and pages are\ndirtied only after the allocation, this patch allows allocators to pass\n__GFP_WRITE when they know in advance that the page will be written to and\nbecome dirty soon.  The page allocator will then attempt to allocate from\nthe first zone of the zonelist - which on NUMA is determined by the task\u0027s\nNUMA memory policy - that has not exceeded its dirty limit.\n\nAt first glance, it would appear that the diversion to lower zones can\nincrease pressure on them, but this is not the case.  With a full high\nzone, allocations will be diverted to lower zones eventually, so it is\nmore of a shift in timing of the lower zone allocations.  Workloads that\npreviously could fit their dirty pages completely in the higher zone may\nbe forced to allocate from lower zones, but the amount of pages that\n\"spill over\" are limited themselves by the lower zones\u0027 dirty constraints,\nand thus unlikely to become a problem.\n\nFor now, the problem of unfair dirty page distribution remains for NUMA\nconfigurations where the zones allowed for allocation are in sum not big\nenough to trigger the global dirty limits, wake up the flusher threads and\nremedy the situation.  Because of this, an allocation that could not\nsucceed on any of the considered zones is allowed to ignore the dirty\nlimits before going into direct reclaim or even failing the allocation,\nuntil a future patch changes the global dirty throttling and flusher\nthread activation so that they take individual zone states into account.\n\n\t\t\tTest results\n\n15M DMA + 3246M DMA32 + 504 Normal \u003d 3765M memory\n40% dirty ratio\n16G USB thumb drive\n10 runs of dd if\u003d/dev/zero of\u003ddisk/zeroes bs\u003d32k count\u003d$((10 \u003c\u003c 15))\n\n\t\tseconds\t\t\tnr_vmscan_write\n\t\t        (stddev)\t       min|     median|        max\nxfs\nvanilla:\t 549.747( 3.492)\t     0.000|      0.000|      0.000\npatched:\t 550.996( 3.802)\t     0.000|      0.000|      0.000\n\nfuse-ntfs\nvanilla:\t1183.094(53.178)\t 54349.000|  59341.000|  65163.000\npatched:\t 558.049(17.914)\t     0.000|      0.000|     43.000\n\nbtrfs\nvanilla:\t 573.679(14.015)\t156657.000| 460178.000| 606926.000\npatched:\t 563.365(11.368)\t     0.000|      0.000|   1362.000\n\next4\nvanilla:\t 561.197(15.782)\t     0.000|2725438.000|4143837.000\npatched:\t 568.806(17.496)\t     0.000|      0.000|      0.000\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab8fabd46f811d5153d8a0cd2fac9a0d41fb593d",
      "tree": "0a6f7dcca59d22abe07973e3fafc41719ff3ad9d",
      "parents": [
        "25bd91bd27820d5971258cecd1c0e64b0e485144"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: exclude reserved pages from dirtyable memory\n\nPer-zone dirty limits try to distribute page cache pages allocated for\nwriting across zones in proportion to the individual zone sizes, to reduce\nthe likelihood of reclaim having to write back individual pages from the\nLRU lists in order to make progress.\n\nThis patch:\n\nThe amount of dirtyable pages should not include the full number of free\npages: there is a number of reserved pages that the page allocator and\nkswapd always try to keep free.\n\nThe closer (reclaimable pages - dirty pages) is to the number of reserved\npages, the more likely it becomes for reclaim to run into dirty pages:\n\n       +----------+ ---\n       |   anon   |  |\n       +----------+  |\n       |          |  |\n       |          |  -- dirty limit new    -- flusher new\n       |   file   |  |                     |\n       |          |  |                     |\n       |          |  -- dirty limit old    -- flusher old\n       |          |                        |\n       +----------+                       --- reclaim\n       | reserved |\n       +----------+\n       |  kernel  |\n       +----------+\n\nThis patch introduces a per-zone dirty reserve that takes both the lowmem\nreserve as well as the high watermark of the zone into account, and a\nglobal sum of those per-zone values that is subtracted from the global\namount of dirtyable pages.  The lowmem reserve is unavailable to page\ncache allocations and kswapd tries to keep the high watermark free.  We\ndon\u0027t want to end up in a situation where reclaim has to clean pages in\norder to balance zones.\n\nNot treating reserved pages as dirtyable on a global level is only a\nconceptual fix.  In reality, dirty pages are not distributed equally\nacross zones and reclaim runs into dirty pages on a regular basis.\n\nBut it is important to get this right before tackling the problem on a\nper-zone level, where the distance between reclaim and the dirty pages is\nmostly much smaller in absolute numbers.\n\n[akpm@linux-foundation.org: fix highmem build]\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6d7e0cb3ecc248e98fa11d83253f6174bd7e085",
      "tree": "0925b5b584c8ed6718a54e6e56202686fb5b9468",
      "parents": [
        "ad8a1b558e6c76fb53901956d3c8f29b82a4ccfa"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 10 15:07:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm, debug: test for online nid when allocating on single node\n\nCalling alloc_pages_exact_node() means the allocation only passes the\nzonelist of a single node into the page allocator.  If that node isn\u0027t\nonline, it\u0027s zonelist may never have been initialized causing a strange\noops that may not immediately be clear.\n\nI recently debugged an issue where node 0 wasn\u0027t online and an allocator\nwas passing 0 to alloc_pages_exact_node() and it resulted in a NULL\npointer on zonelist-\u003e_zoneref.  If CONFIG_DEBUG_VM is enabled, though, it\nwould be nice to catch this a bit earlier.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0a32fc5a2e470d0b02597b23ad79a317735253e",
      "tree": "2d164edae0062918ca2088772c00b0615781353b",
      "parents": [
        "1399ff86f2a2bbacbbe68fa00c5f8c752b344723"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: more intensive memory corruption debugging\n\nWith CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception\non access (read,write) to an unallocated page, which permits us to catch\ncode which corrupts memory.  However the kernel is trying to maximise\nmemory usage, hence there are usually few free pages in the system and\nbuggy code usually corrupts some crucial data.\n\nThis patch changes the buddy allocator to keep more free/protected pages\nand to interlace free/protected and allocated pages to increase the\nprobability of catching corruption.\n\nWhen the kernel is compiled with CONFIG_DEBUG_PAGEALLOC,\ndebug_guardpage_minorder defines the minimum order used by the page\nallocator to grant a request.  The requested size will be returned with\nthe remaining pages used as guard pages.\n\nThe default value of debug_guardpage_minorder is zero: no change from\ncurrent behaviour.\n\n[akpm@linux-foundation.org: tweak documentation, s/flg/flag/]\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1399ff86f2a2bbacbbe68fa00c5f8c752b344723",
      "tree": "7cfb8e346ff8d750cbf33bb0655603e21e394c37",
      "parents": [
        "1e16a539ac16e7b3a8c2cee188897d4bdb88e6e8"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Tue Jan 10 15:07:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "kernel.h: add BUILD_BUG() macro\n\nWe can place this in definitions that we expect the compiler to remove by\ndead code elimination.  If this assertion fails, we get a nice error\nmessage at build time.\n\nThe GCC function attribute error(\"message\") was added in version 4.3, so\nwe define a new macro __linktime_error(message) to expand to this for\nGCC-4.3 and later.  This will give us an error diagnostic from the\ncompiler on the line that fails.  For other compilers\n__linktime_error(message) expands to nothing, and we have to be content\nwith a link time error, but at least we will still get a build error.\n\nBUILD_BUG() expands to the undefined function __build_bug_failed() and\nwill fail at link time if the compiler ever emits code for it.  On GCC-4.3\nand later, attribute((error())) is used so that the failure will be noted\nat compile time instead.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: DM \u003cdm.n9107@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: David Howells \u003cdhowells@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": "f90ac3982a78d36f894824636beeef13361d7c59",
      "tree": "64bbe3b415bdfc151dc44f6b4c216c65351eb53c",
      "parents": [
        "938929f14cb595f43cd1a4e63e22d36cab1e4a1f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jan 10 15:07:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: avoid livelock on !__GFP_FS allocations\n\nColin Cross reported;\n\n  Under the following conditions, __alloc_pages_slowpath can loop forever:\n  gfp_mask \u0026 __GFP_WAIT is true\n  gfp_mask \u0026 __GFP_FS is false\n  reclaim and compaction make no progress\n  order \u003c\u003d PAGE_ALLOC_COSTLY_ORDER\n\n  These conditions happen very often during suspend and resume,\n  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL\n  allocations into __GFP_WAIT.\n\n  The oom killer is not run because gfp_mask \u0026 __GFP_FS is false,\n  but should_alloc_retry will always return true when order is less\n  than PAGE_ALLOC_COSTLY_ORDER.\n\nIn his fix, he avoided retrying the allocation if reclaim made no progress\nand __GFP_FS was not set.  The problem is that this would result in\nGFP_NOIO allocations failing that previously succeeded which would be very\nunfortunate.\n\nThe big difference between GFP_NOIO and suspend converting GFP_KERNEL to\nbehave like GFP_NOIO is that normally flushers will be cleaning pages and\nkswapd reclaims pages allowing GFP_NOIO to succeed after a short delay.\nThe same does not necessarily apply during suspend as the storage device\nmay be suspended.\n\nThis patch special cases the suspend case to fail the page allocation if\nreclaim cannot make progress and adds some documentation on how\ngfp_allowed_mask is currently used.  Failing allocations like this may\ncause suspend to abort but that is better than a livelock.\n\n[mgorman@suse.de: Rework fix to be suspend specific]\n[rientjes@google.com: Move suspended device check to should_alloc_retry]\nReported-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "da066ad3570b88e7dee82e76a06ee9a7adffcf0d",
      "tree": "0587cac700f316f9d658e350c0ddf4b4331413a5",
      "parents": [
        "cc59850ef940e4ee6a765d28b439b9bafe07cf63"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: remove unused pagevec_free\n\nIt not exported and now nobody uses it.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc59850ef940e4ee6a765d28b439b9bafe07cf63",
      "tree": "03b666986e9cc7dfc113a14721c44aa9e149f871",
      "parents": [
        "c909e99364c8b6ca07864d752950b6b4ecf6bef4"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: add free_hot_cold_page_list() helper\n\nThis patch adds helper free_hot_cold_page_list() to free list of 0-order\npages.  It frees pages directly from list without temporary page-vector.\nIt also calls trace_mm_pagevec_free() to simulate pagevec_free()\nbehaviour.\n\nbloat-o-meter:\n\nadd/remove: 1/1 grow/shrink: 1/3 up/down: 267/-295 (-28)\nfunction                                     old     new   delta\nfree_hot_cold_page_list                        -     264    +264\nget_page_from_freelist                      2129    2132      +3\n__pagevec_free                               243     239      -4\nsplit_free_page                              380     373      -7\nrelease_pages                                606     510     -96\nfree_page_list                               188       -    -188\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1edf223485c42c99655dcd001db1e46ad5e5d2d7",
      "tree": "33b93dc8f2a249806150b5792ac1787688bf6b74",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:06:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm/page-writeback.c: make determine_dirtyable_memory static again\n\nThe tracing ring-buffer used this function briefly, but not anymore.\nMake it local to the writeback code again.\n\nAlso, move the function so that no forward declaration needs to be\nreintroduced.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54c2c5761febcca46c8037d3a81612991e6c209a",
      "tree": "e6a686088f16e182138bdf8ae13f6cd27b8613b0",
      "parents": [
        "609eac1c152353ee4cd6f292d49f0aa0b885951a",
        "ff9cb1c4eead5e4c292e75cd3170a82d66944101"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 15:51:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 15:51:48 2012 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nExt4 commits for 3.3 merge window\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (32 commits)\n  ext4: fix undefined behavior in ext4_fill_flex_info()\n  ext4: make more symbols static\n  ext4: make local symbol ext4_initxattrs static\n  jbd2: fix hung processes in jbd2_journal_lock_updates()\n  ext4: reserve new feature flag codepoints\n  ext4: Report max_batch_time option correctly\n  ext4: add missing ext4_resize_end on error paths\n  ext4: let ext4_group_add() use common code\n  ext4: let ext4_group_extend() use common code\n  ext4: add new online resize interface\n  ext4: add a new function which adds a flex group to a fs\n  ext4: add a new function which allocates bitmaps and inode tables\n  ext4: pass verify_reserved_gdb() the number of group decriptors\n  ext4: add a function which updates the super block during online resizing\n  ext4: add a function which sets up a block group descriptors of a flex bg\n  ext4: add a function which sets up group blocks of a flex bg\n  ext4: add a structure which will be used by 64bit-resize interface\n  ext4: add a function which adds a new group descriptors to a fs\n  ext4: add a function which extends a group without checking parameters\n  ext4: use proper little-endian bitops\n  ...\n"
    },
    {
      "commit": "57eccf1c2acae2fcb748730881ba75643fc31c81",
      "tree": "be47ac42ef0b2e3e7157ce196ad2ed1224739c6c",
      "parents": [
        "5c395ae7033099fc657114ea997858aa622f08b2",
        "074b1d12fe2500d7d453902f9266e6674b30d84c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "message": "Merge branch \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Change the default setting of the nfs4_disable_idmapping parameter\n  NFSv4: Save the owner/group name string when doing open\n  NFS: Remove pNFS bloat from the generic write path\n  pnfs-obj: Must return layout on IO error\n  pnfs-obj: pNFS errors are communicated on iodata-\u003epnfs_error\n  NFS: Cache state owners after files are closed\n  NFS: Clean up nfs4_find_state_owners_locked()\n  NFSv4: include bitmap in nfsv4 get acl data\n  nfs: fix a minor do_div portability issue\n  NFSv4.1: cleanup comment and debug printk\n  NFSv4.1: change nfs4_free_slot parameters for dynamic slots\n  NFSv4.1: cleanup init and reset of session slot tables\n  NFSv4.1: fix backchannel slotid off-by-one bug\n  nfs: fix regression in handling of context\u003d option in NFSv4\n  NFS - fix recent breakage to NFS error handling.\n  NFS: Retry mounting NFSROOT\n  SUNRPC: Clean up the RPCSEC_GSS service ticket requests\n"
    },
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "7b3480f8b701170c046e1ed362946f5f0d005e13",
      "tree": "bd25e05b4f35699689b485480dddf24f840f80af",
      "parents": [
        "1c8106528aa6bf16b3f457de80df1cf7462a49a4",
        "b60ef99c1164a8ad346cf41f9e71acfffb6d25a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 13:45:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 13:45:22 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus-3.3\u0027 of git://git.infradead.org/mtd-2.6\n\nMTD pull for 3.3\n\n* tag \u0027for-linus-3.3\u0027 of git://git.infradead.org/mtd-2.6: (113 commits)\n  mtd: Fix dependency for MTD_DOC200x\n  mtd: do not use mtd-\u003eblock_markbad directly\n  logfs: do not use \u0027mtd-\u003eblock_isbad\u0027 directly\n  mtd: introduce mtd_can_have_bb helper\n  mtd: do not use mtd-\u003esuspend and mtd-\u003eresume directly\n  mtd: do not use mtd-\u003elock, unlock and is_locked directly\n  mtd: do not use mtd-\u003esync directly\n  mtd: harmonize mtd_writev usage\n  mtd: do not use mtd-\u003elock_user_prot_reg directly\n  mtd: mtd-\u003ewrite_user_prot_reg directly\n  mtd: do not use mtd-\u003eread_*_prot_reg directly\n  mtd: do not use mtd-\u003eget_*_prot_info directly\n  mtd: do not use mtd-\u003eread_oob directly\n  mtd: mtdoops: do not use mtd-\u003epanic_write directly\n  romfs: do not use mtd-\u003eget_unmapped_area directly\n  mtd: do not use mtd-\u003eget_unmapped_area directly\n  mtd: do use mtd-\u003epoint directly\n  mtd: introduce mtd_has_oob helper\n  mtd: mtdcore: export symbols cleanup\n  mtd: clean-up the default_mtd_writev function\n  ...\n\nFix up trivial edit/remove conflict in drivers/staging/spectra/lld_mtd.c\n"
    },
    {
      "commit": "1c8106528aa6bf16b3f457de80df1cf7462a49a4",
      "tree": "4aed009c4a36195fd14c9f8d70fe2723a49583da",
      "parents": [
        "1a464cbb3d483f2f195b614cffa4aa1b910a0440",
        "f93ea733878733f3e98475bc3e2ccf789bebcfb8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:08:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:08:21 2012 -0800"
      },
      "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: (53 commits)\n  iommu/amd: Set IOTLB invalidation timeout\n  iommu/amd: Init stats for iommu\u003dpt\n  iommu/amd: Remove unnecessary cache flushes in amd_iommu_resume\n  iommu/amd: Add invalidate-context call-back\n  iommu/amd: Add amd_iommu_device_info() function\n  iommu/amd: Adapt IOMMU driver to PCI register name changes\n  iommu/amd: Add invalid_ppr callback\n  iommu/amd: Implement notifiers for IOMMUv2\n  iommu/amd: Implement IO page-fault handler\n  iommu/amd: Add routines to bind/unbind a pasid\n  iommu/amd: Implement device aquisition code for IOMMUv2\n  iommu/amd: Add driver stub for AMD IOMMUv2 support\n  iommu/amd: Add stat counter for IOMMUv2 events\n  iommu/amd: Add device errata handling\n  iommu/amd: Add function to get IOMMUv2 domain for pdev\n  iommu/amd: Implement function to send PPR completions\n  iommu/amd: Implement functions to manage GCR3 table\n  iommu/amd: Implement IOMMUv2 TLB flushing routines\n  iommu/amd: Add support for IOMMUv2 domain mode\n  iommu/amd: Add amd_iommu_domain_direct_map function\n  ...\n"
    },
    {
      "commit": "1a464cbb3d483f2f195b614cffa4aa1b910a0440",
      "tree": "af57dee6436532dbb546b8670e9e1f6910d489b5",
      "parents": [
        "dbe950f201a8edd353b0bd9079e8d536ee4ce37c",
        "095f979a539245a46b9e5d600ec9c720b4d928e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:04:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:04:36 2012 -0800"
      },
      "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: (307 commits)\n  drm/nouveau/pm: fix build with HWMON off\n  gma500: silence gcc warnings in mid_get_vbt_data()\n  drm/ttm: fix condition (and vs or)\n  drm/radeon: double lock typo in radeon_vm_bo_rmv()\n  drm/radeon: use after free in radeon_vm_bo_add()\n  drm/sis|via: don\u0027t return stack garbage from free_mem ioctl\n  drm/radeon/kms: remove pointless CS flags priority struct\n  drm/radeon/kms: check if vm is supported in VA ioctl\n  drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2)\n  radeon: Fix disabling PCI bus mastering on big endian hosts.\n  ttm: fix agp since ttm tt rework\n  agp: Fix multi-line warning message whitespace\n  drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don\u0027t try to free freed pages.\n  drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool.\n  drm/radeon/kms: sync across multiple rings when doing bo moves v3\n  drm/radeon/kms: Add support for multi-ring sync in CS ioctl (v2)\n  drm/radeon: GPU virtual memory support v22\n  drm: make DRM_UNLOCKED ioctls with their own mutex\n  drm: no need to hold global mutex for static data\n  drm/radeon/benchmark: common modes sweep ignores 640x480@32\n  ...\n\nFix up trivial conflicts in radeon/evergreen.c and vmwgfx/vmwgfx_kms.c\n"
    },
    {
      "commit": "dbe950f201a8edd353b0bd9079e8d536ee4ce37c",
      "tree": "dffbada6b3d33cc67383758570de22b4f45693b6",
      "parents": [
        "f62f61917d72c1fb0101ad405664f6fc868d676b",
        "da733563be5a9da26fe81d9f007262d00b846e22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "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: (64 commits)\n  Input: tc3589x-keypad - add missing kerneldoc\n  Input: ucb1400-ts - switch to using dev_xxx() for diagnostic messages\n  Input: ucb1400_ts - convert to threaded IRQ\n  Input: ucb1400_ts - drop inline annotations\n  Input: usb1400_ts - add __devinit/__devexit section annotations\n  Input: ucb1400_ts - set driver owner\n  Input: ucb1400_ts - convert to use dev_pm_ops\n  Input: psmouse - make sure we do not use stale methods\n  Input: evdev - do not block waiting for an event if fd is nonblock\n  Input: evdev - if no events and non-block, return EAGAIN not 0\n  Input: evdev - only allow reading events if a full packet is present\n  Input: add driver for pixcir i2c touchscreens\n  Input: samsung-keypad - implement runtime power management support\n  Input: tegra-kbc - report wakeup key for some platforms\n  Input: tegra-kbc - add device tree bindings\n  Input: add driver for AUO In-Cell touchscreens using pixcir ICs\n  Input: mpu3050 - configure the sampling method\n  Input: mpu3050 - ensure we enable interrupts\n  Input: mpu3050 - add of_match table for device-tree probing\n  Input: sentelic - document the latest hardware\n  ...\n\nFix up fairly trivial conflicts (device tree matching conflicting with\nsome independent cleanups) in drivers/input/keyboard/samsung-keypad.c\n"
    },
    {
      "commit": "f62f61917d72c1fb0101ad405664f6fc868d676b",
      "tree": "cedeb85a8d1c97dc3be0b667734b0fe4e0dd84b6",
      "parents": [
        "d04baa157d1b35cbd27c87b4a13111d9675b61f3",
        "420174afdc7023c000e5b5b1b6fe9e028470c713"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:48:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:48:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (68 commits)\n  hid-input/battery: add FEATURE quirk\n  hid-input/battery: remove battery_val\n  hid-input/battery: power-supply type really *is* a battery\n  hid-input/battery: make the battery setup common for INPUTs and FEATUREs\n  hid-input/battery: deal with both FEATURE and INPUT report batteries\n  hid-input/battery: add quirks for battery\n  hid-input/battery: remove apparently redundant kmalloc\n  hid-input: add support for HID devices reporting Battery Strength\n  HID: hid-multitouch: add support 9 new Xiroku devices\n  HID: multitouch: add support for 3M 32\"\n  HID: multitouch: add support of Atmel multitouch panels\n  HID: usbhid: defer LED setting to a workqueue\n  HID: usbhid: hid-core: submit queued urbs before suspend\n  HID: usbhid: remove LED_ON\n  HID: emsff: use symbolic name instead of hardcoded PID constant\n  HID: Enable HID_QUIRK_MULTI_INPUT for Trio Linker Plus II\n  HID: Kconfig: fix syntax\n  HID: introduce proper dependency of HID_BATTERY on POWER_SUPPLY\n  HID: multitouch: support PixArt optical touch screen\n  HID: make parser more verbose about parsing errors by default\n  ...\n\nFix up rename/delete conflict in drivers/hid/hid-hyperv.c (removed in\nstaging, moved in this branch) and similarly for the rules for same file\nin drivers/staging/hv/{Kconfig,Makefile}.\n"
    },
    {
      "commit": "88266917b518e2ca954d85983470592aaaf82993",
      "tree": "e8c6e77cf6c70de0dbe655ce3cd4401391a06b6e",
      "parents": [
        "269d430131b699c2cadf58495f025a4092959ef5",
        "e2bf7c4c22939bd83814d8da40a352d246030b1b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:29:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:29:23 2012 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\n* git://www.linux-watchdog.org/linux-watchdog:\n  watchdog: omap_wdt.c: fix the WDIOC_GETBOOTSTATUS ioctl if not implemented.\n  watchdog: new driver for VIA chipsets\n  watchdog: ath79_wdt: flush register writes\n  drivers/watchdog/lantiq_wdt.c: drop iounmap for devm_ allocated data\n  watchdog: documentation: describe nowayout in coversion-guide\n  watchdog: documentation: update index file\n  watchdog: Convert wm831x driver to devm_kzalloc()\n  watchdog: add nowayout helpers to Watchdog Timer Driver Kernel API\n  watchdog: convert drivers/watchdog/* to use module_platform_driver()\n  watchdog: Use DEFINE_SPINLOCK() for static spinlocks\n  watchdog: Convert Wolfson drivers to module_platform_driver\n"
    },
    {
      "commit": "269d430131b699c2cadf58495f025a4092959ef5",
      "tree": "d9972cd7e03f82b6ac59bc471fb59e49dc6fcaab",
      "parents": [
        "d52739c62e0096dccea59f012d80256c6e359a98",
        "0c437c4ae71c0a8110eb21c06b99853c7056b317"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:20:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:20:34 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (40 commits)\n  regulator: set constraints.apply_uV to 0 in of_get_fixed_voltage_config\n  regulator: max8925: fix enabled/disabled judgement mistake\n  regulator: add regulator_bulk_force_disable function\n  regulator: pass regulator_register of_node in fixed voltage driver\n  regulator: add regulator_force_disable() definition for !CONFIG_REGULATOR\n  regulator: Enable supply regulator if child rail is enabled.\n  regulator: mc13892: Convert to devm_kzalloc()\n  regulator: mc13783: Convert to devm_kzalloc()\n  regulator: Fix checking return value of create_regulator\n  regulator: Fix the error handling if create_regulator fails\n  regulator: Export regulator_is_supported_voltage()\n  regulator: mc13892: add device tree probe support\n  regulator: mc13892: remove the unnecessary prefix from regulator name\n  regulator: Convert wm831x regulator drivers to devm_kzalloc()\n  regulator: da9052: Staticize non-exported symbols\n  regulator: Replace kzalloc with devm_kzalloc and if-else with a switch-case for da9052-regulator\n  regulator: Update da9052-regulator for DT changes\n  regulator: DA9052/53 Regulator support\n  regulator: pass device_node to of_get_regulator_init_data()\n  regulator: If a single voltage is set with device tree then set apply_uV\n  ...\n"
    },
    {
      "commit": "d52739c62e0096dccea59f012d80256c6e359a98",
      "tree": "4df8ae0640c360eb79b6d0511f084b2337e21e12",
      "parents": [
        "abce00f962a11ed6f748c2569e11695a30716b53",
        "0d2006bbf09e817f125ba1e42b2549bc2c5d7351"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (31 commits)\n  pinctrl: remove unnecessary max pin number\n  pinctrl: correct a offset while enumerating pins\n  pinctrl: some typo fixes\n  pinctrl: rename U300 and SIRF pin controllers\n  pinctrl: pass name instead of device to pin_config_*\n  pinctrl: add \"struct seq_file;\" to pinconf.h\n  pinctrl: conjure names for unnamed pins\n  pinctrl: add a group-specific hog macro\n  pinctrl: don\u0027t create a device for each pin controller\n  arm/u300: don\u0027t use PINMUX_MAP_PRIMARY*\n  pinctrl: implement PINMUX_MAP_SYS_HOG\n  pinctrl: add a pin config interface\n  pinctrl/coh901: driver to request its pins\n  pinctrl: u300-pinmux: register proper GPIO ranges\n  pinctrl: move the U300 GPIO driver to pinctrl\n  ARM: u300: localize GPIO assignments\n  pinctrl: make it possible to add multiple maps\n  pinctrl: make a copy of pinmux map\n  pinctrl: GPIO direction support for muxing\n  pinctrl: print pin range in GPIO range debugs\n  ...\n"
    },
    {
      "commit": "abce00f962a11ed6f748c2569e11695a30716b53",
      "tree": "f76a7d999dc47bb84cc72b2691aa47080ef97262",
      "parents": [
        "90160371b3a3e67ef78d68210a94dd30664a703d",
        "318893e1429a9d50569a0379d1e20b0ecc45c555"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:17 2012 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://github.com/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://github.com/jgarzik/libata-dev:\n  ahci: support the STA2X11 I/O Hub\n  pata_bf54x: fix BMIDE status register emulation\n  ata: add ata port hibernate callbacks\n  ata: update ata port\u0027s runtime status during system resume\n  [SCSI] runtime resume parent for child\u0027s system-resume\n  ahci: platform support for suspend/resume\n  libata-core: kill duplicate statement in ata_do_set_mode()\n  pata_of_platform: remove direct dependency on OF_IRQ\n  SATA/PATA: convert drivers/ata/* to use module_platform_driver()\n  pata_cs5536: forward port changes from cs5536\n  libata-sff: use ATAPI_{COD|IO}\n  ata: add ata port runtime PM callbacks\n  ata: add ata port system PM callbacks\n  [SCSI] sd: check runtime PM status in sd_shutdown\n  [SCSI] check runtime PM status in system PM\n  [SCSI] add flag to skip the runtime PM calls on the host\n  ata: make ata port as parent device of scsi host\n  ahci: start engine only during soft/hard resets\n"
    }
  ],
  "next": "eaf5f9073533cde21c7121c136f1c3f072d9cf59"
}
