)]}'
{
  "log": [
    {
      "commit": "77676fdbd54f0c6fdb71d55d9758bebc69a00fc4",
      "tree": "388bd73334ae4716b8d82879166a1c2a5639f0f0",
      "parents": [
        "766e9f1be128bcdc15aa7d07084d0d51e873b5ed"
      ],
      "author": {
        "name": "Ben Pfaff",
        "email": "blp@nicira.com",
        "time": "Tue Jan 17 13:33:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 23:56:19 2012 -0500"
      },
      "message": "openvswitch: Fix multipart datapath dumps.\n\nThe logic to split up the list of datapaths into multiple Netlink messages\nwas simply wrong, causing the list to be terminated after the first part.\nOnly about the first 50 datapaths would be dumped.  This fixes the\nproblem.\n\nReported-by: Paul Ingram \u003cpaul@nicira.com\u003e\nSigned-off-by: Ben Pfaff \u003cblp@nicira.com\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "766e9f1be128bcdc15aa7d07084d0d51e873b5ed",
      "tree": "4b6098567a7f522792333d4bf30dc5676a507b9c",
      "parents": [
        "10ec1bb7e9eb462548f14dd53c73e927a3ddf31c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jan 17 12:45:36 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 23:56:18 2012 -0500"
      },
      "message": "ipv6: fix per device IP snmp counters\n\nIn commit 4ce3c183fca (snmp: 64bit ipstats_mib for all arches), I forgot\nto change the /proc/net/dev_snmp6/xxx output for IP counters.\n\npercpu array is 64bit per counter but the folding still used the \u0027long\u0027\nvariant, and output garbage on 32bit arches.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10ec1bb7e9eb462548f14dd53c73e927a3ddf31c",
      "tree": "dbdd695c7879a4c8039b38f123ea7846964399d5",
      "parents": [
        "65e9d2faab70d07b9a38ac6ed298f191d24541fc"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Jan 17 10:48:43 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 15:52:12 2012 -0500"
      },
      "message": "inetpeer: initialize -\u003eredirect_genid in inet_getpeer()\n\nkmemcheck complains that -\u003eredirect_genid doesn\u0027t get initialized.\nPresumably it should be set to zero.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65e9d2faab70d07b9a38ac6ed298f191d24541fc",
      "tree": "41bb55a55858d79f142cb37c2f3c3364fc778790",
      "parents": [
        "36c92474498ad6cc3afb24b91a67a444d79978fe"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Jan 17 10:00:40 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 15:51:23 2012 -0500"
      },
      "message": "net: fix NULL-deref in WARN() in skb_gso_segment()\n\nBug was introduced in commit c8f44affb7244f2ac3e703cab13d55ede27621bb.\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "36c92474498ad6cc3afb24b91a67a444d79978fe",
      "tree": "6e847f5256b6ef429ca1a8ea85ede022d0c53cbe",
      "parents": [
        "4144cb2ade46d97b9c41682fd2e9064a59f23a98"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Tue Jan 17 07:57:56 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 15:49:03 2012 -0500"
      },
      "message": "net: WARN if skb_checksum_help() is called on skb requiring segmentation\n\nskb_checksum_help() has never done anything useful with skbs that\nrequire segmentation.  Setting skb-\u003eip_summed \u003d CHECKSUM_NONE makes\nthem invalid and provokes a later WARNing in skb_gso_segment().\n\nPassing such an skb to skb_checksum_help() indicates a bug, so we\nshould warn about it immediately.  Move the warning from\nskb_gso_segment() into a shared function, and add gso_type and\ngso_size to it.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "59f608d84f937cb5e2fd3a0b9f848f200d47ba85",
      "tree": "1f2e58895a410e494c910176f401cea24dabff7d",
      "parents": [
        "3371bb3f7ed11b7b7473a202e2713bde50dc01c0"
      ],
      "author": {
        "name": "sjur.brandeland@stericsson.com",
        "email": "sjur.brandeland@stericsson.com",
        "time": "Tue Jan 17 03:03:14 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:46:55 2012 -0500"
      },
      "message": "caif: Remove bad WARN_ON in caif_dev\n\nRemove WARN_ON and bad handling of SKB without destructor callback\nin caif_flow_cb. SKB without destructor cannot be handled as an\nerror case.\n\nSigned-off-by: Sjur Brændeland \u003csjur.brandeland@stericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3371bb3f7ed11b7b7473a202e2713bde50dc01c0",
      "tree": "2ce6211c2fb744f51ab249f6a9802775709075f3",
      "parents": [
        "6ab48a5c86ce778188c173818cb2f1644526e962"
      ],
      "author": {
        "name": "sjur.brandeland@stericsson.com",
        "email": "sjur.brandeland@stericsson.com",
        "time": "Tue Jan 17 03:03:13 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:46:55 2012 -0500"
      },
      "message": "caif: Fix typo in Vendor/Product-ID for CAIF modems\n\nFix typo for the Vendor/Product Id for ST-Ericsson CAIF modems.\nDiscovery is based on fixed USB vendor 0x04cc (ST-Ericsson),\nproduct-id 0x230f (NCM).\n\nSigned-off-by: Sjur Brændeland \u003csjur.brandeland@stericsson.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab48a5c86ce778188c173818cb2f1644526e962",
      "tree": "8314fc3ad439337e655a675cd01ab0aec9efba75",
      "parents": [
        "096b9527db77defb2501509f2517d2ab24300d9c"
      ],
      "author": {
        "name": "Yaniv Rosner",
        "email": "yanivr@broadcom.com",
        "time": "Tue Jan 17 02:33:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:44:43 2012 -0500"
      },
      "message": "bnx2x: Disable AN KR work-around for BCM57810\n\nDisable the work-around for the autoneg KR of the BCM57810 in case the Warpcore version is 0xD108 and above, which fixes this problem.\n\nSigned-off-by: Yaniv Rosner \u003cyanivr@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "096b9527db77defb2501509f2517d2ab24300d9c",
      "tree": "8fb9f976c34665717b29f2d9181e97fda66dd1d0",
      "parents": [
        "75318327802235ecd7e90b0760cceb994bf975ca"
      ],
      "author": {
        "name": "Yaniv Rosner",
        "email": "yanivr@broadcom.com",
        "time": "Tue Jan 17 02:33:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:44:43 2012 -0500"
      },
      "message": "bnx2x: Remove AutoGrEEEn for BCM84833\n\nDisable the autoGrEEEn feature for BCM84833.\n\nSigned-off-by: Yaniv Rosner \u003cyanivr@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "75318327802235ecd7e90b0760cceb994bf975ca",
      "tree": "0d57527bc7f139656ea95ff25c4e05fe7340098f",
      "parents": [
        "127302bb42257eef5d357722d670c4ac53327088"
      ],
      "author": {
        "name": "Yaniv Rosner",
        "email": "yanivr@broadcom.com",
        "time": "Tue Jan 17 02:33:27 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:44:43 2012 -0500"
      },
      "message": "bnx2x: Remove 100Mb force speed for BCM84833\n\nRemove unsupported speed of 100Mb force for BCM84833 due to hardware\nlimitation.\n\nSigned-off-by: Yaniv Rosner \u003cyanivr@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "127302bb42257eef5d357722d670c4ac53327088",
      "tree": "ec2b1def93a1c204c54e2259e9a28502f9b8b7be",
      "parents": [
        "11b2ec6b739ee90211dc6f6942e2ba3a141434a8"
      ],
      "author": {
        "name": "Yaniv Rosner",
        "email": "yanivr@broadcom.com",
        "time": "Tue Jan 17 02:33:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:44:43 2012 -0500"
      },
      "message": "bnx2x: Fix PFC setting on BCM57840\n\nThis patch handles the second port of a path in a 4-port device of\nBCM57840.\n\nSigned-off-by: Yaniv Rosner \u003cyanivr@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "11b2ec6b739ee90211dc6f6942e2ba3a141434a8",
      "tree": "cd3fcf9d89db4d87bd0ac1ec4bf17205c99d22cd",
      "parents": [
        "747465ef7a082033e086dedc8189febfda43b015"
      ],
      "author": {
        "name": "Yaniv Rosner",
        "email": "yanivr@broadcom.com",
        "time": "Tue Jan 17 02:33:25 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:44:42 2012 -0500"
      },
      "message": "bnx2x: Fix Super-Isolate mode for BCM84833\n\nThe Super-Isolate mode comes to isolate the BCM84833 PHY from the\noutside world.  Not doing it correctly, made link partner see the link\nbefore the driver was loaded.\n\nThis patch also involves SPIROM version fixes since it is used to\ndetermine whether the common init of the PHY was already executed, and\nthe common init of this PHY is partially responsible for setting the\nSuper-Isolate mode.\n\nSigned-off-by: Yaniv Rosner \u003cyanivr@broadcom.com\u003e\nSigned-off-by: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "747465ef7a082033e086dedc8189febfda43b015",
      "tree": "efbdc7a1f25f7bced035077769b4005ea1419abc",
      "parents": [
        "2b2d465631db59c144f537a9bef47a883c55d670"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jan 16 19:27:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:31:12 2012 -0500"
      },
      "message": "net: fix some sparse errors\n\nmake C\u003d2 CF\u003d\"-D__CHECK_ENDIAN__\" M\u003dnet\n\nAnd fix flowi4_init_output() prototype for sport\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b2d465631db59c144f537a9bef47a883c55d670",
      "tree": "559e06d89bd37fb31006806c7d128171f7122e9c",
      "parents": [
        "34aa6f1400810890636ba0b170effbfa71eacec7"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "davidshan@tencent.com",
        "time": "Mon Jan 16 18:34:24 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:31:12 2012 -0500"
      },
      "message": "net: kill duplicate included header\n\nFor net part, remove duplicate included header.\n\nSigned-off-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34aa6f1400810890636ba0b170effbfa71eacec7",
      "tree": "4b9b49a22d0fe59c809b032d41d7ecfcb18d8111",
      "parents": [
        "e52ac3398c3d772d372b9b62ab408fd5eec96840"
      ],
      "author": {
        "name": "Nobuhiro Iwamatsu",
        "email": "nobuhiro.iwamatsu.yj@renesas.com",
        "time": "Mon Jan 16 16:50:16 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:31:12 2012 -0500"
      },
      "message": "net: sh-eth: Fix build error by the value which is not defined\n\n-----\ndrivers/net/ethernet/renesas/sh_eth.c:1706: error: \u0027pdid\u0027 undeclared (first use in this function)\ndrivers/net/ethernet/renesas/sh_eth.c:1706: error: (Each undeclared identifier is reported only once\ndrivers/net/ethernet/renesas/sh_eth.c:1706: error: for each function it appears in.)\nmake[5]: *** [drivers/net/ethernet/renesas/sh_eth.o] Error 1\n-----\n\nSigned-off-by: Nobuhiro Iwamatsu \u003cnobuhiro.iwamatsu.yj@renesas.com\u003e\nCC: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e52ac3398c3d772d372b9b62ab408fd5eec96840",
      "tree": "1291fbc00c9fec755be01f49be865219d676b540",
      "parents": [
        "27a429383b399fc0f68bea55c422d7179f3c8b05"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon Jan 16 12:38:59 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:31:12 2012 -0500"
      },
      "message": "net: Use device model to get driver name in skb_gso_segment()\n\nethtool operations generally require the caller to hold RTNL and are\nnot safe to call in atomic context.  The device model provides this\ninformation for most devices; we\u0027ll only lose it for some old ISA\ndrivers.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a429383b399fc0f68bea55c422d7179f3c8b05",
      "tree": "a38d2d38a7506e10cf4bd00a2b49273d82878fbf",
      "parents": [
        "319d3b9c97b5e3191e419bb95496bf08ec50f096"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jan 16 04:35:50 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:17:32 2012 -0500"
      },
      "message": "bridge: BH already disabled in br_fdb_cleanup()\n\nbr_fdb_cleanup() is run from timer interrupt, BH already masked.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Štefan Gula \u003csteweg@gmail.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "319d3b9c97b5e3191e419bb95496bf08ec50f096",
      "tree": "6e57f4183060aab780d17fe8f6ac11272cc679fc",
      "parents": [
        "8d9d399f14ea65aeb50c7404e986bceede93bb99"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Jan 15 22:04:39 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:15:45 2012 -0500"
      },
      "message": "net: move sock_update_memcg outside of CONFIG_INET\n\nAlthough only used currently for tcp sockets, this function\nis now used in common sock code (for sock_clone())\n\nCommit 475f1b52645a29936b9df1d8fcd45f7e56bd4a9f moved the\ndeclaration of sock_update_clone() to inside sock.c, but\nthis only fixes the problem when CONFIG_CGROUP_MEM_RES_CTLR_KMEM\nis also not defined.\n\nThis patch here is verified to fix both problems, although\nreverting the previous one is not necessary.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "604c4ef1c453a1b2ea2cdf04d2b49afec421ebfa",
      "tree": "afa052c6f337e7bf1757a87cfed25dd854c14c3b",
      "parents": [
        "544204733a20200951c271f81c74930ba5424638"
      ],
      "author": {
        "name": "Yogesh Ashok Powar",
        "email": "yogeshp@marvell.com",
        "time": "Tue Jan 17 15:45:15 2012 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 10:12:27 2012 -0500"
      },
      "message": "mwl8k: Fixing Sparse ENDIAN CHECK warning\n\nFixing following sparse warning\n\u003edrivers/net/wireless/mwl8k.c:2780:15: warning: incorrect type in assignment (different base types)\n\u003edrivers/net/wireless/mwl8k.c:2780:15:    expected restricted unsigned short [usertype] channel\n\u003edrivers/net/wireless/mwl8k.c:2780:15:    got unsigned short [unsigned] [usertype] hw_value\n\nSigned-off-by: Yogesh Ashok Powar \u003cyogeshp@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "544204733a20200951c271f81c74930ba5424638",
      "tree": "02fc04707eb974cf28bcac4e2fa0583dc4bfdd39",
      "parents": [
        "d981e05908f85beb68ae0d935e59c5e399d2136e"
      ],
      "author": {
        "name": "Helmut Schaa",
        "email": "helmut.schaa@googlemail.com",
        "time": "Tue Jan 17 09:22:49 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 10:12:27 2012 -0500"
      },
      "message": "mac80211: Fix possible race between sta_unblock and network softirq\n\nAll other code paths in sta_unblock synchronize with the network\nsoftirq by using local_bh_disable/enable. Do the same around\nieee80211_sta_ps_deliver_wakeup.\n\nSigned-off-by: Helmut Schaa \u003chelmut.schaa@googlemail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "d981e05908f85beb68ae0d935e59c5e399d2136e",
      "tree": "1923918d9a1e79b8ed89ce3e07a1a8cf0c0f06ee",
      "parents": [
        "5addc0de28f5e286f9d121112c4222250807b5a5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Jan 17 10:33:31 2012 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 10:12:26 2012 -0500"
      },
      "message": "mwl8k: fix condition in mwl8k_cmd_encryption_remove_key()\n\nThe intent here was to check whether key-\u003ecipher was WEP40 or WEP104.\nWe do a similar check correctly in several other places in this file.\nThe current condition is always true.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5addc0de28f5e286f9d121112c4222250807b5a5",
      "tree": "83e07ecd0cbc5462111b30d31624d6c2a654df32",
      "parents": [
        "7e9e7fa414e47fccc6127f23bc866cbcc7e27dcb"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "oliva@lsd.ic.unicamp.br",
        "time": "Mon Jan 16 14:00:12 2012 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 10:12:19 2012 -0500"
      },
      "message": "brcmfmac: work-around gcc 4.7 build issue\n\nAlexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e says:\n\n\"It\u0027s an issue brought about by GCC 4.7\u0027s partial-inlining, that ends up\nsplitting the udelay function just at the wrong spot, in such a way that\nsome sanity checks for constants fails, and we end up calling\nbad_udelay.\n\nThis patch fixes the problem.  Feel free to push it upstream if it makes\nsense to you.\"\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8d9d399f14ea65aeb50c7404e986bceede93bb99",
      "tree": "a55ce2e68562013b9d68fc4aa3e80c597308b7e7",
      "parents": [
        "795d9a2538b205d9329f34798ec96503a07b7919"
      ],
      "author": {
        "name": "Devendra Naga",
        "email": "devendra.aaru@gmail.com",
        "time": "Sat Jan 14 08:16:21 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:07:58 2012 -0500"
      },
      "message": "net: remove version.h includes in net/openvswitch/\n\nremove version.h includes in net/openswitch/ as reported by make versioncheck.\n\nSigned-off-by: Devendra Naga \u003cdevendra.aaru@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "795d9a2538b205d9329f34798ec96503a07b7919",
      "tree": "f6333348915e8b10b5f97734599cd090a1d520d4",
      "parents": [
        "1886e5d2c694e7fb59434c717e704e7fd8475d2e"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Sat Jan 14 07:10:21 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:05:55 2012 -0500"
      },
      "message": "bql: Fix inconsistency between file mode and attr method.\n\nThere is no store() method for inflight attribute in the\ntx-\u003cn\u003e/byte_queue_limits sysfs directory.\nSo remove S_IWUSR bit.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1886e5d2c694e7fb59434c717e704e7fd8475d2e",
      "tree": "1b2bde28f644bc2178b0eb0d842cc3d40e812a3a",
      "parents": [
        "be94db9ddac0d6ea76f479b04fb3a43314654c9f"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@linux.vnet.ibm.com",
        "time": "Fri Jan 13 08:06:32 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 10:04:43 2012 -0500"
      },
      "message": "ehea: make some functions and variables static\n\nSome functions and variables in ehea are only used in their own file, so\nthey should be static. One particular function had a very generic name,\nprint_error_data.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e9e7fa414e47fccc6127f23bc866cbcc7e27dcb",
      "tree": "912d69316649f04bcf4b142bdec0ac353ea9fcf8",
      "parents": [
        "7d5869e78f4c9d32f834dadefbb7dcb3c9d4d85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 23:58:42 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 09:54:08 2012 -0500"
      },
      "message": "brcmsmac: remove PCI suspend/resume from bcma driver\n\nThe brcmsmac driver isn\u0027t a PCI driver any more, it\u0027s a bcma one.  The\nPCI device has been resumed by the PCI driver (the generic PCI layer,\nreally), we should be resuming just our own driver state.\n\nAlso add pr_debug() calls to show that we now actually get the\nsuspend/resume events.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\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": "685a4ef0df23b97eea1842c2698da9a2e35fc976",
      "tree": "863612511ce9164af706d9d5e0d561f088d84f15",
      "parents": [
        "5d2031f2395728c765cf2bd7c1ebb6d51c4fe076"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 23:58:40 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 09:54:05 2012 -0500"
      },
      "message": "bcma: add stub for bcma_bus_suspend()\n\n.. and connect it up with the pci host bcma driver.\n\nNow, the next step is to connect those bcma bus-level suspend/resume\nfunctions to the actual bcma device suspend resume functions.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "5d2031f2395728c765cf2bd7c1ebb6d51c4fe076",
      "tree": "2e6272a408f9054ade79d52a11693652d99e1a68",
      "parents": [
        "d32a102819eef99d4d87019266bea208447be0a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 23:58:39 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 17 09:54:04 2012 -0500"
      },
      "message": "bcma: convert suspend/resume to pm_ops\n\n.. and avoid doing the unnecessary PCI operations - the PCI layer will\ndo them for us.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "be94db9ddac0d6ea76f479b04fb3a43314654c9f",
      "tree": "47bcb86c44bec1819a8581e88745b2812f2487b3",
      "parents": [
        "088067f4f14d6ee5c6a196b015a560cbe7744224"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Sat Jan 14 16:42:13 2012 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Jan 17 10:52:55 2012 +0100"
      },
      "message": "netfilter: ipset: dumping error triggered removing references twice\n\nIf there was a dumping error in the middle, the set-specific variable was\nnot zeroed out and thus the \u0027done\u0027 function of the dumping wrongly tried\nto release the already released reference of the set. The already released\nreference was caught by __ip_set_put and triggered a kernel BUG message.\nReported by Jean-Philippe Menil.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "088067f4f14d6ee5c6a196b015a560cbe7744224",
      "tree": "1be34b941c1671b70834212d2188f8ce6b1c1f45",
      "parents": [
        "9bf04646b0b41c5438ed8a27c5f8dbe0ff40d756"
      ],
      "author": {
        "name": "Jozsef Kadlecsik",
        "email": "kadlec@blackhole.kfki.hu",
        "time": "Tue Jan 17 10:39:05 2012 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Jan 17 10:52:46 2012 +0100"
      },
      "message": "netfilter: ipset: autoload set type modules safely\n\nJan Engelhardt noticed when userspace requests a set type unknown\nto the kernel, it can lead to a loop due to the unsafe type module\nloading. The issue is fixed in this patch.\n\nSigned-off-by: Jozsef Kadlecsik \u003ckadlec@blackhole.kfki.hu\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "d32a102819eef99d4d87019266bea208447be0a0",
      "tree": "ff6484ac0f843dc48c24db2604bfbef1424967e0",
      "parents": [
        "331d9301ed4d0fe33e9762c62f2870243bcf77eb"
      ],
      "author": {
        "name": "Yoni Divinsky",
        "email": "yoni.divinsky@ti.com",
        "time": "Mon Jan 16 15:18:59 2012 +0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:16 2012 -0500"
      },
      "message": "mac80211: fix tx-\u003eskb NULL pointer dereference\n\nIn function ieee80211_tx_h_encrypt the var info was\ninitialized from tx-\u003eskb, since the fucntion\nis called after the function ieee80211_tx_h_fragment\ntx-\u003eskb is not valid anymore.\n\nSigned-off-by: Yoni Divinsky \u003cyoni.divinsky@ti.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "331d9301ed4d0fe33e9762c62f2870243bcf77eb",
      "tree": "3b33f0b9c4703ff52273f03d4e1127e31942d4b4",
      "parents": [
        "74b8cc3d592e5e884123eb99960a9f064223eaab"
      ],
      "author": {
        "name": "Fabio Estevam",
        "email": "festevam@gmail.com",
        "time": "Mon Jan 16 00:47:12 2012 -0200"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:16 2012 -0500"
      },
      "message": "wireless: iwlwifi: iwl-scan.c: Fix build warning\n\nFix the following build warning:\n\ndrivers/net/wireless/iwlwifi/iwl-scan.c: In function ‘iwlagn_request_scan’:\ndrivers/net/wireless/iwlwifi/iwl-scan.c:572: warning: ‘cmd_len’ may be used uninitialized in this function\n\nSigned-off-by: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nAcked-by: Wey-Yi Guy \u003cwey-yi.w.guy@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "74b8cc3d592e5e884123eb99960a9f064223eaab",
      "tree": "293597e27723e538e60d5fa734de152070b9e136",
      "parents": [
        "7a532fe7131216a02c81a6c1b1f8632da1195a58"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sat Jan 14 21:52:17 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:15 2012 -0500"
      },
      "message": "Net, mac80211: Fix resource leak in ieee80211_rx_h_mesh_fwding()\n\nWe may leak the \u0027fwd_skb\u0027 we skb_copy() in ieee80211_rx_h_mesh_fwding() if\nwe take the \u0027else\u0027 branch in the \u0027if\u0027 statement just below. If we take\nthat branch we\u0027ll end up returning from the function and since we\u0027ve not\nassigned \u0027fwd_skb\u0027 to anything at that point, we leak it when the variable\ngoes out of scope.\n\nThe simple fix seems to be to just kfree_skb(fwd_skb); just before we\nreturn. That is what this patch does.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "7a532fe7131216a02c81a6c1b1f8632da1195a58",
      "tree": "183c13f11d014deba1b4fba2b8cc4c60f791bd3a",
      "parents": [
        "28e7d218da975f6ae1751e293aed938952c55c98"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Sat Jan 14 15:08:34 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:15 2012 -0500"
      },
      "message": "ath9k_hw: fix interpretation of the rx KeyMiss flag\n\nDocumentation states that the KeyMiss flag is only valid if RxFrameOK is\nunset, however empirical evidence has shown that this is false.\nWhen KeyMiss is set (and RxFrameOK is 1), the hardware passes a valid frame\nwhich has not been decrypted. The driver then falsely marks the frame\nas decrypted, and when using CCMP this corrupts the rx CCMP PN, leading\nto connection hangs.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nCc: stable@kernel.org\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "28e7d218da975f6ae1751e293aed938952c55c98",
      "tree": "82da2fb45b994ca5f4dfd560fa5c71faa7e4a640",
      "parents": [
        "8675b505a4df40394096948453a17cc5445f6538"
      ],
      "author": {
        "name": "Rafał Miłecki",
        "email": "zajec5@gmail.com",
        "time": "Fri Jan 13 23:58:38 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:15 2012 -0500"
      },
      "message": "bcma: invalidate the mapped core over suspend/resume\n\nThis clears the currently mapped core when suspending, to force\nre-mapping after resume. Without that we were touching default core\nregisters believing some other core is mapped. Such a behaviour\nresulted in lockups on some machines.\n\nCc: stable@vger.kernel.org\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "8675b505a4df40394096948453a17cc5445f6538",
      "tree": "1d60068a01d9b57aee7dc49c669942eb9a8c0dd3",
      "parents": [
        "c9678d867216790f961ea06867b3ccbdb3484542"
      ],
      "author": {
        "name": "Rafał Miłecki",
        "email": "zajec5@gmail.com",
        "time": "Fri Jan 13 22:55:06 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:14 2012 -0500"
      },
      "message": "MAINTAINERS: add b43 mailing list\n\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c9678d867216790f961ea06867b3ccbdb3484542",
      "tree": "86989f73c7390d4053fadb57d43cf389bb37b1ef",
      "parents": [
        "543d1b92d5500841e70f15e79d197bbffed36561"
      ],
      "author": {
        "name": "Rafał Miłecki",
        "email": "zajec5@gmail.com",
        "time": "Fri Jan 13 22:55:05 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Jan 16 15:01:14 2012 -0500"
      },
      "message": "MAINTAINERS: move BCMA to keep the list sorted\n\nSigned-off-by: Rafał Miłecki \u003czajec5@gmail.com\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": "412662d204eca981458156fd64d9d5f3b533d7b6",
      "tree": "a05bc418b5d943ba4c8d33cc3d8fe24c11d0a67d",
      "parents": [
        "7c7c7f01cc5e3e423120a4848a73dd5e4586f2f9"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Wed Jan 11 11:52:17 2012 +1100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Jan 16 13:40:54 2012 +0100"
      },
      "message": "netfilter: xt_hashlimit: fix unused variable warning if IPv6 disabled\n\nFixes this warning when CONFIG_IP6_NF_IPTABLES is not enabled:\n\nnet/netfilter/xt_hashlimit.c: In function ‘hashlimit_init_dst’:\nnet/netfilter/xt_hashlimit.c:448:9: warning: unused variable ‘frag_off’ [-Wunused-variable]\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "543d1b92d5500841e70f15e79d197bbffed36561",
      "tree": "a41f7f9dced47e2f9fd967531107f57a7a59d1fd",
      "parents": [
        "dfd00c4c8f3dfa1fd7cec45f83d98b2a49743dcd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Jan 13 14:17:59 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 13 14:40:58 2012 -0500"
      },
      "message": "mac80211: fix no-op authorized transitions\n\nWhen userspace attempts to authorize a station\nthat is already authorized, nothing happens as\nyou\u0027d expect. Similarly, when it unauthorizes\na station that is associated, nothing happens.\n\nHowever, when it unauthorizes a station that\nisn\u0027t even associated yet, we erroneously try\nto move the station to associated. This seems\nto happen occasionally as a result of a race\nwhen wpa_supplicant attempts to unauthorize\nthe port in managed mode. Particularly with my\nnew patches to keep stations, it can then move\na station into ASSOCIATED state before we have\nreally associated, which is really confusing.\n\nI introduced this bug in\n\"mac80211: refactor station state transitions\"\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "dfd00c4c8f3dfa1fd7cec45f83d98b2a49743dcd",
      "tree": "918140b949cc6189294d27f688925cc3a763ed63",
      "parents": [
        "92c1ff1fa772ee76a18ae1edd2e4baecf381f17e"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Fri Jan 13 12:59:32 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 13 14:40:57 2012 -0500"
      },
      "message": "rt2800pci: fix spurious interrupts generation\n\nSame devices can generate interrupt without properly setting bit in\nINT_SOURCE_CSR register (spurious interrupt), what will cause IRQ line\nwill be disabled by interrupts controller driver.\n\nWe discovered that clearing INT_MASK_CSR stops such behaviour. We\npreviously first read that register, and then clear all know interrupt\nsources bits and do not touch reserved bits. After this patch, we write\nto all register content (I believe writing to reserved bits on that\nregister will not cause any problems, I tested that on my rt2800pci\ndevice).\n\nThis fix very bad performance problem, practically making device\nunusable (since worked without interrupts), reported in:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d658451\n\nWe previously tried to workaround that issue in commit\n4ba7d9997869d25bd223dea7536fc1ce9fab3b3b \"rt2800pci: handle spurious\ninterrupts\", but it was reverted in commit\n82e5fc2a34fa9ffea38f00c4066b7e600a0ca5e6\nas thing, that will prevent to detect real spurious interrupts.\n\nReported-and-tested-by: Amir Hedayaty \u003chedayaty@gmail.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Gertjan van Wingerde \u003cgwingerde@gmail.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "92c1ff1fa772ee76a18ae1edd2e4baecf381f17e",
      "tree": "1e92c04b64bb3ac4e8d2424e854ef6e9301a8be9",
      "parents": [
        "ccde8a45cbd3ea9a6e785e4393d3a1f6b4e6b495"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Jan 12 09:34:50 2012 +0300"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 13 14:40:56 2012 -0500"
      },
      "message": "ipw2x00: signedness bug handling frame length\n\nThis is basically just a cleanup.  Large positive numbers get counted as\nnegative but then get implicitly cast to positive again for the checks\nthat matter.\n\nThis does make a small difference in ipw_handle_promiscuous_rx() when we\ntest \"if (unlikely((len + IPW_RX_FRAME_SIZE) \u003e skb_tailroom(rxb-\u003eskb)))\"\nIt should return there, but we don\u0027t return until a couple lines later\nwhen we test \"if (len \u003e IPW_RX_BUF_SIZE - sizeof(struct ipw_rt_hdr)) {\".\nThe difference is that in the second test the sizeof() means that there\nis an implied cast to unsigned.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nReviewed-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "ccde8a45cbd3ea9a6e785e4393d3a1f6b4e6b495",
      "tree": "15e7011f8a11f0ade53f0704093abd596e6d2f42",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Fri Jan 06 12:58:16 2012 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Fri Jan 13 14:40:50 2012 -0500"
      },
      "message": "wireless: b43: fix Oops on card eject during transfer\n\nAn Oops has once been observed, when the SDIO card had been ejected during\nIO. The PC value shows, that the dev pointer in b43_op_stop() was NULL.\n\n(I moved the NULL check before the lock, based upon a suggestion from\nJulian Calaby \u003cjulian.calaby@gmail.com\u003e. -- JWL)\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\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": "252c3d84ed398b090ac2dace46fc6faa6cfaea99",
      "tree": "afbeb033aa2857971aff3919c39f3c0b04c340f3",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "RongQing.Li",
        "email": "roy.qing.li@gmail.com",
        "time": "Thu Jan 12 22:33:46 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 13 10:10:46 2012 -0800"
      },
      "message": "ipv6: release idev when ip6_neigh_lookup failed in icmp6_dst_alloc\n\nrelease idev when ip6_neigh_lookup failed in icmp6_dst_alloc\n\nSigned-off-by: RongQing.Li \u003croy.qing.li@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\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": "35f1526845a9d804206883e19bd257d3dcef758f",
      "tree": "aaefaf3e43abec7522fe08f8632cd7ff5dbffa7f",
      "parents": [
        "c755201eb5c1e09f3477d0e83ae1e3aadac0e8d1"
      ],
      "author": {
        "name": "Sascha Hauer",
        "email": "s.hauer@pengutronix.de",
        "time": "Thu Jan 12 17:21:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "unlzo: fix input buffer free\n\nunlzo modifies the pointer to in_buf, so we have to free the original\nbuffer, not the modified pointer.\n\nSigned-off-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nCc: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "c755201eb5c1e09f3477d0e83ae1e3aadac0e8d1",
      "tree": "af48ca5cc4ef2173b64e421d7ad550dc10c437f0",
      "parents": [
        "fdb5950754eb3dedb9fea7c8828d3e51d9dbc3f7"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees@outflux.net",
        "time": "Thu Jan 12 17:20:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "ramoops: update parameters only after successful init\n\nIf a platform device exists on the system, but ramoops fails to attach to\nit, the module parameters are overridden before ramoops can fall back and\ntry to use passed module parameters.  Move update to end of init routine.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nCc: Sergiu Iordache \u003csergiu@chromium.org\u003e\nCc: Seiji Aguchi \u003cseiji.aguchi@hds.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fdb5950754eb3dedb9fea7c8828d3e51d9dbc3f7",
      "tree": "57d9804de982ab233c2fe2c553466a12387e1866",
      "parents": [
        "028ee4be34a09a6d48bdf30ab991ae933a7bc036"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Thu Jan 12 17:20:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "ramoops: fix use of rounddown_pow_of_two()\n\nThe return value of rounddown_pow_of_two wasn\u0027t evaluated, so the\noperation was a no-op.\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@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": "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": "b3f7f573a20081910e34e99cbc91831f4f02f1ff",
      "tree": "2c0aea64b3be4c24f84be6a5275f7202e0dde594",
      "parents": [
        "067bce1a06c1f84146f873a598cd7c3a28eee1d5"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu Jan 12 17:20:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "c/r: procfs: add start_data, end_data, start_brk members to /proc/$pid/stat v4\n\nThe mm-\u003estart_code/end_code, mm-\u003estart_data/end_data, mm-\u003estart_brk are\ninvolved into calculation of program text/data segment sizes (which might\nbe seen in /proc/\u003cpid\u003e/statm) and into brk() call final address.\n\nFor restore we need to know all these values.  While\nmm-\u003estart_code/end_code already present in /proc/$pid/stat, the rest\nmembers are not, so this patch brings them in.\n\nThe restore procedure of these members is addressed in another patch using\nprctl().\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "067bce1a06c1f84146f873a598cd7c3a28eee1d5",
      "tree": "91b4a7e52e1ed8136ea80f7c1d0cc437f93e3d30",
      "parents": [
        "85bbddc37b2bf947a577d572b1c4c23bf829217f"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu Jan 12 17:20:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "c/r: introduce CHECKPOINT_RESTORE symbol\n\nFor checkpoint/restore we need auxilary features being compiled into the\nkernel, such as additional prctl codes, /proc/\u003cpid\u003e/map_files and etc...\nbut same time these features are not mandatory for a regular kernel so\nCHECKPOINT_RESTORE config symbol should bring a way to disable them all at\nonce if one wish to get rid of additional functionality.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.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: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85bbddc37b2bf947a577d572b1c4c23bf829217f",
      "tree": "07e483b13f93d6e5eb08d4423648a0812b41b3fe",
      "parents": [
        "274343ad3e63c4dcee6744a75b5553940de4a0f6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 12 17:20:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "selftests: new x86 breakpoints selftest\n\nBring a first selftest in the relevant directory.  This tests several\ncombinations of breakpoints and watchpoints in x86, as well as icebp traps\nand int3 traps.  Given the amount of breakpoint regressions we raised\nafter we merged the generic breakpoint infrastructure, such selftest\nbecame necessary and can still serve today as a basis for new patches that\ntouch the do_debug() path.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.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: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "274343ad3e63c4dcee6744a75b5553940de4a0f6",
      "tree": "0ac8f5470f2ae949876e7dbe60bdbcc5b441c5ea",
      "parents": [
        "e2bdb933ab8b7db71c318a4ddcf78a9fffd61ecb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 12 17:20:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "selftests: new very basic kernel selftests directory\n\nBring a new kernel selftests directory in tools/testing/selftests.  To\nadd a new selftest, create a subdirectory with the sources and a\nmakefile that creates a target named \"run_test\" then add the\nsubdirectory name to the TARGET var in tools/testing/selftests/Makefile\nand tools/testing/selftests/run_tests script.\n\nThis can help centralizing and maintaining any useful selftest that\ndevelopers usually tend to let rust in peace on some random server.\n\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.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: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2bdb933ab8b7db71c318a4ddcf78a9fffd61ecb",
      "tree": "23f39b8a9996135b893442c41d6da05c7988a0db",
      "parents": [
        "928da837aca77a9d3cb5076bf07b3224b1ba293b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "radix_tree: take radix_tree_path off stack\n\nDown, down in the deepest depths of GFP_NOIO page reclaim, we have\nshrink_page_list() calling __remove_mapping() calling __delete_from_\nswap_cache() or __delete_from_page_cache().\n\nYou would not expect those to need much stack, but in fact they call\nradix_tree_delete(): which declares a 192-byte radix_tree_path array on\nits stack (to record the node,offsets it visits when descending, in case\nit needs to ascend to update them).  And if any tag is still set [1],\nthat calls radix_tree_tag_clear(), which declares a further such\n192-byte radix_tree_path array on the stack.  (At least we have\ninterrupts disabled here, so won\u0027t then be pushing registers too.)\n\nThat was probably a good choice when most users were 32-bit (array of\nhalf the size), and adding fields to radix_tree_node would have bloated\nit unnecessarily.  But nowadays many are 64-bit, and each\nradix_tree_node contains a struct rcu_head, which is only used when\nfreeing; whereas the radix_tree_path info is only used for updating the\ntree (deleting, clearing tags or setting tags if tagged) when a lock\nmust be held, of no interest when accessing the tree locklessly.\n\nSo add a parent pointer to the radix_tree_node, in union with the\nrcu_head, and remove all uses of the radix_tree_path.  There would be\nspace in that union to save the offset when descending as before (we can\nargue that a lock must already be held to exclude other users), but\nrecalculating it when ascending is both easy (a constant shift and a\nconstant mask) and uncommon, so it seems better just to do that.\n\nTwo little optimizations: no need to decrement height when descending,\nadjusting shift is enough; and once radix_tree_tag_if_tagged() has set\ntag on a node and its ancestors, it need not ascend from that node\nagain.\n\nperf on the radix tree test harness reports radix_tree_insert() as 2%\nslower (now having to set parent), but radix_tree_delete() 24% faster.\nSurely that\u0027s an exaggeration from rtth\u0027s artificially low map shift 3,\nbut forcing it back to 6 still rates radix_tree_delete() 8% faster.\n\n[1] Can a pagecache tag (dirty, writeback or towrite) actually still be\nset at the time of radix_tree_delete()? Perhaps not if the filesystem is\nwell-behaved.  But although I\u0027ve not tracked any stack overflow down to\nthis cause, I have observed a curious case in which a dirty tag is set\nand left set on tmpfs: page migration\u0027s migrate_page_copy() happens to\nuse __set_page_dirty_nobuffers() to set PageDirty on the newpage, and\nthat sets PAGECACHE_TAG_DIRTY as a side-effect - harmless to a\nfilesystem which doesn\u0027t use tags, except for this stack depth issue.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Nai Xia \u003cnai.xia@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": "65dd2aa90aa17a26703c28652408192856aa0396",
      "tree": "4ea4635f786fc295d16a459925da67701253df97",
      "parents": [
        "87192a2a49c475cf322cb143e0fa63b0102d8567"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "dio: optimize cache misses in the submission path\n\nSome investigation of a transaction processing workload showed that a\nmajor consumer of cycles in __blockdev_direct_IO is the cache miss while\naccessing the block size.  This is because it has to walk the chain from\nblock_dev to gendisk to queue.\n\nThe block size is needed early on to check alignment and sizes.  It\u0027s only\ndone if the check for the inode block size fails.  But the costly block\ndevice state is unconditionally fetched.\n\n- Reorganize the code to only fetch block dev state when actually\n  needed.\n\nThen do a prefetch on the block dev early on in the direct IO path.  This\nis worth it, because there is substantial code run before we actually\ntouch the block dev now.\n\n- I also added some unlikelies to make it clear the compiler that block\n  device fetch code is not normally executed.\n\nThis gave a small, but measurable improvement on a large database\nbenchmark (about 0.3%)\n\n[akpm@linux-foundation.org: coding-style fixes]\n[sfr@canb.auug.org.au: using prefetch requires including prefetch.h]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "ae55e1aaa7e2e57e538cb98cf617f511c5dc4f73",
      "tree": "3f3981dd7617c656e7a6ba2f3a83a14637c63221",
      "parents": [
        "45dac90f0ca7d9efeda8f3d416c808c71207bf20"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Jan 12 17:20:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "fs/direct-io.c: calculate fs_count correctly in get_more_blocks()\n\nIn get_more_blocks(), we use dio_count to calcuate fs_count and do some\ntricky things to increase fs_count if dio_count isn\u0027t aligned.  But\nactually it still has some corner cases that can\u0027t be coverd.  See the\nfollowing example:\n\n\tdio_write foo -s 1024 -w 4096\n\n(direct write 4096 bytes at offset 1024).  The same goes if the offset\nisn\u0027t aligned to fs_blocksize.\n\nIn this case, the old calculation counts fs_count to be 1, but actually we\nwill write into 2 different blocks (if fs_blocksize\u003d4096).  The old code\njust works, since it will call get_block twice (and may have to allocate\nand create extents twice for filesystems like ext4).  So we\u0027d better call\nget_block just once with the proper fs_count.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Christoph Hellwig \u003chch@lst.de\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": "45dac90f0ca7d9efeda8f3d416c808c71207bf20",
      "tree": "c188c5a6b1661217b4cfb10940a2ccf91e057bc1",
      "parents": [
        "6e6f0a1f0fa6bba1493c296eb30d1e176e1f8530"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jan 12 17:20:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "drivers/parport/parport_pc.c: fix warnings\n\ndrivers/parport/parport_pc.c: In function \u0027__check_irq\u0027:\ndrivers/parport/parport_pc.c:3415: warning: return from incompatible pointer type\ndrivers/parport/parport_pc.c: In function \u0027__check_dma\u0027:\ndrivers/parport/parport_pc.c:3417: warning: return from incompatible pointer type\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e6f0a1f0fa6bba1493c296eb30d1e176e1f8530",
      "tree": "c1bbacbc93e5b6f7759d509d7cf6207ad5b3ee65",
      "parents": [
        "b8f566b04d3cddd192cfd2418ae6d54ac6353792"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "panic: don\u0027t print redundant backtraces on oops\n\nWhen an oops causes a panic and panic prints another backtrace it\u0027s pretty\ncommon to have the original oops data be scrolled away on a 80x50 screen.\n\nThe second backtrace is quite redundant and not needed anyways.\n\nSo don\u0027t print the panic backtrace when oops_in_progress is true.\n\n[akpm@linux-foundation.org: add comment]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8f566b04d3cddd192cfd2418ae6d54ac6353792",
      "tree": "32a5bf86548cd43feff4822d800b6a99e157b5d7",
      "parents": [
        "f5138e42211d4e8bfbd6ac5b3816348da1533433"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Jan 12 17:20:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "sysctl: add the kernel.ns_last_pid control\n\nThe sysctl works on the current task\u0027s pid namespace, getting and setting\nits last_pid field.\n\nWriting is allowed for CAP_SYS_ADMIN-capable tasks thus making it possible\nto create a task with desired pid value.  This ability is required badly\nfor the checkpoint/restore in userspace.\n\nThis approach suits all the parties for now.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5138e42211d4e8bfbd6ac5b3816348da1533433",
      "tree": "c9d246be208547ded5dece81c57353f54d61ffd3",
      "parents": [
        "1f536b9e9f85456df93614b3c2f6a1a2b7d7cb9b"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Thu Jan 12 17:20:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "kdump: add udev events for memory online/offline\n\nCurrently no udev events for memory hotplug \"online\" and \"offline\" are\ngenerated:\n\n  # udevadm monitor\n  # echo offline \u003e /sys/devices/system/memory/memory4/state\n  \u003d\u003d\u003e No event\n\nWhen kdump is loaded, kexec detects the current memory configuration and\nstores it in the pre-allocated ELF core header.  Therefore, for kdump it\nis necessary to reload the kdump kernel with kexec when the memory\nconfiguration changes (e.g.  for online/offline hotplug memory).\n\nIn order to do this automatically, udev rules should be used.  This kernel\npatch adds udev events for \"online\" and \"offline\".  Together with this\nkernel patch, the following udev rules for online/offline have to be added\nto \"/etc/udev/rules.d/98-kexec.rules\":\n\n  SUBSYSTEM\u003d\u003d\"memory\", ACTION\u003d\u003d\"online\", PROGRAM\u003d\"/etc/init.d/kdump restart\"\n  SUBSYSTEM\u003d\u003d\"memory\", ACTION\u003d\u003d\"offline\", PROGRAM\u003d\"/etc/init.d/kdump restart\"\n\n[sfr@canb.auug.org.au: fixups for class to subsystem conversion]\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "93e13a360ba331915220f82f6e9543df961ffa1f",
      "tree": "470c120ee5d3de69f46e62ec85452bee14e8d67c",
      "parents": [
        "bec013c40bc89671d8d457944fdf7d2b8e79d651"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Thu Jan 12 17:20:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "kdump: fix crash_kexec()/smp_send_stop() race in panic()\n\nWhen two CPUs call panic at the same time there is a possible race\ncondition that can stop kdump.  The first CPU calls crash_kexec() and the\nsecond CPU calls smp_send_stop() in panic() before crash_kexec() finished\non the first CPU.  So the second CPU stops the first CPU and therefore\nkdump fails:\n\n1st CPU:\n  panic()-\u003ecrash_kexec()-\u003emutex_trylock(\u0026kexec_mutex)-\u003e do kdump\n\n2nd CPU:\n  panic()-\u003ecrash_kexec()-\u003ekexec_mutex already held by 1st CPU\n       -\u003esmp_send_stop()-\u003e stop 1st CPU (stop kdump)\n\nThis patch fixes the problem by introducing a spinlock in panic that\nallows only one CPU to process crash_kexec() and the subsequent panic\ncode.\n\nAll other CPUs call the weak function panic_smp_self_stop() that stops the\nCPU itself.  This function can be overloaded by architecture code.  For\nexample \"tile\" can use their lower-power \"nap\" instruction for that.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: 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": "bec013c40bc89671d8d457944fdf7d2b8e79d651",
      "tree": "f48220571120805a319f0df876c1cc465586978e",
      "parents": [
        "6480e5a0923756b500634d9777ec4189492fbbfe"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Thu Jan 12 17:20:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "kdump: crashk_res init check for /sys/kernel/kexec_crash_size\n\nCurrently it is possible to set the crash_size via the sysfs\n/sys/kernel/kexec_crash_size even if no crash kernel memory has been\ndefined with the \"crashkernel\" parameter.  In this case \"crashk_res\" is\nnot initialized and crashk_res.start \u003d crashk_res.end \u003d 0.  Unfortunately\nresource_size(\u0026crashk_res) returns 1 in this case.  This breaks the s390\nimplementation of crash_(un)map_reserved_pages().\n\nTo fix the problem the correct \"old_size\" is now calculated in\ncrash_shrink_memory().  \"old_size is set to \"0\" if crashk_res is not\ninitialized.  With this change crash_shrink_memory() will do nothing, when\n\"crashk_res\" is not initialized.  It will return \"0\" for \"echo 0 \u003e\n/sys/kernel/kexec_crash_size\" and -EINVAL for \"echo [not zero] \u003e\n/sys/kernel/kexec_crash_size\".\n\nIn addition to that this patch also simplifies the \"ret \u003d -EINVAL\" vs.\n\"ret \u003d 0\" logic as suggested by Simon Horman.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nReviewed-by: Dave Young \u003cdyoung@redhat.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nReviewed-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6480e5a0923756b500634d9777ec4189492fbbfe",
      "tree": "0b1d26ce39f9b7cd28a9e82627ee837734f7c3ab",
      "parents": [
        "a3dd3323058d281abd584b15ad4c5b65064d7a61"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Thu Jan 12 17:20:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "kdump: add missing RAM resource in crash_shrink_memory()\n\nWhen shrinking crashkernel memory using /sys/kernel/kexec_crash_size for\nthe newly added memory no RAM resource is created at the moment.\n\nExample:\n\n  $ cat /proc/iomem\n  00000000-bfffffff : System RAM\n    00000000-005b7ac3 : Kernel code\n    005b7ac4-009743bf : Kernel data\n    009bb000-00a85c33 : Kernel bss\n  c0000000-cfffffff : Crash kernel\n  d0000000-ffffffff : System RAM\n\n  $ echo 0 \u003e /sys/kernel/kexec_crash_size\n  $ cat /proc/iomem\n  00000000-bfffffff : System RAM\n    00000000-005b7ac3 : Kernel code\n    005b7ac4-009743bf : Kernel data\n    009bb000-00a85c33 : Kernel bss\n                                   \u003c\u003c-- here is System RAM missing\n  d0000000-ffffffff : System RAM\n\nOne result of this bug is that the memory chunk can never be set offline\nusing memory hotplug.  With this patch I insert a new \"System RAM\"\nresource for the released memory.  Then the upper example looks like the\nfollowing:\n\n  $ echo 0 \u003e /sys/kernel/kexec_crash_size\n  $ cat /proc/iomem\n  00000000-bfffffff : System RAM\n    00000000-005b7ac3 : Kernel code\n    005b7ac4-009743bf : Kernel data\n    009bb000-00a85c33 : Kernel bss\n  c0000000-cfffffff : System RAM   \u003c\u003c-- new rescoure\n  d0000000-ffffffff : System RAM\n\nAnd now I can set chunk c0000000-cfffffff offline.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "9512938b885304f72c847379611d6018064af840",
      "tree": "92d1018ff67959cf465e0ec1df9c9c4617afdf83",
      "parents": [
        "f1db7afd917e54711798c64d78f8f5fb090f950d"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Thu Jan 12 17:20:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "cpumask: update setup_node_to_cpumask_map() comments\n\nnode_to_cpumask() has been replaced by cpumask_of_node(), and wholly\nremoved since commit 29c337a0 (\"cpumask: remove obsolete node_to_cpumask\nnow everyone uses cpumask_of_node\").\n\nSo update the comments for setup_node_to_cpumask_map().\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1db7afd917e54711798c64d78f8f5fb090f950d",
      "tree": "4104640edda22dad55c1db4d828ba21bfd0b4b85",
      "parents": [
        "3f79768f239746d19accd88da96263ef35d6a219"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Thu Jan 12 17:20:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path\n\nIf either of the vas or vms arrays are not properly kzalloced, then the\ncode jumps to the err_free label.\n\nThe err_free label runs a loop to check and free each of the array members\nof the vas and vms arrays which is not required for this situation as none\nof the array members have been allocated till this point.\n\nEliminate the extra loop we have to go through by introducing a new label\nerr_free2 and then jumping to it.\n\n[akpm@linux-foundation.org: remove now-unneeded tests]\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f79768f239746d19accd88da96263ef35d6a219",
      "tree": "08c9dd76fb61386de4c26c393263c1cfc1d0b874",
      "parents": [
        "f626012db08b9ea71363327d81fe60c2782eea9f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: rearrange putback_inactive_pages\n\nThere is sometimes confusion between the global putback_lru_pages() in\nmigrate.c and the static putback_lru_pages() in vmscan.c: rename the\nlatter putback_inactive_pages(): it helps shrink_inactive_list() rather as\nmove_active_pages_to_lru() helps shrink_active_list().\n\nRemove unused scan_control arg from putback_inactive_pages() and from\nupdate_isolated_counts().  Move clear_active_flags() inside\nupdate_isolated_counts().  Move NR_ISOLATED accounting up into\nshrink_inactive_list() itself, so the balance is clearer.\n\nDo the spin_lock_irq() before calling putback_inactive_pages() and\nspin_unlock_irq() after return from it, so that it better matches\nupdate_isolated_counts() and move_active_pages_to_lru().\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "f626012db08b9ea71363327d81fe60c2782eea9f",
      "tree": "3171843ead87fc7a3a959be802638205a473da56",
      "parents": [
        "1c1c53d43b387d02174911ecb42ce846577b0ea0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: remove isolate_pages()\n\nThe isolate_pages() level in vmscan.c offers little but indirection: merge\nit into isolate_lru_pages() as the compiler does, and use the names\nnr_to_scan and nr_scanned in each case.\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": "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": "4d06f382c733f99ec67df006255e87525ac1efd3",
      "tree": "1a4eebc3bb1d04ce053107a07ff4b472c007e32b",
      "parents": [
        "5095ae83759f035c823fb375c6ed2de99c81d5ec"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:20:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "mm: no blank line after EXPORT_SYMBOL in swap.c\n\ncheckpatch rightly protests\n\n  WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable\n\nso fix the five offenders in mm/swap.c.\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": "90b3feaec8ffb167abd8903bf111605c2f035aa8",
      "tree": "503c27c343397e1c94dce61e922fae18c7cd7172",
      "parents": [
        "12d27107867fc7216e8faaff0b894b0f162dcf75"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:19:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:10 2012 -0800"
      },
      "message": "memcg: fix mem_cgroup_print_bad_page\n\nIf DEBUG_VM, mem_cgroup_print_bad_page() is called whenever bad_page()\nshows a \"Bad page state\" message, removes page from circulation, adds a\ntaint and continues.  This is at a very low level, often when a spinlock\nis held (sometimes when page table lock is held, for example).\n\nWe want to recover from this badness, not make it worse: we must not\nkmalloc memory here, we must not do a cgroup path lookup via dubious\npointers.  No doubt that code was useful to debug a particular case at one\ntime, and may be again, but take it out of the mainline kernel.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12d27107867fc7216e8faaff0b894b0f162dcf75",
      "tree": "8f35d39f7e5d0b0f0ba10a3475e9fa4a2581e509",
      "parents": [
        "0cee34fd72c582b4f8ad8ce00645b75fb4168199"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Jan 12 17:19:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "memcg: fix split_huge_page_refcounts()\n\nThis patch started off as a cleanup: __split_huge_page_refcounts() has to\ncope with two scenarios, when the hugepage being split is already on LRU,\nand when it is not; but why does it have to split that accounting across\nthree different sites?  Consolidate it in lru_add_page_tail(), handling\nevictable and unevictable alike, and use standard add_page_to_lru_list()\nwhen accounting is needed (when the head is not yet on LRU).\n\nBut a recent regression in -next, I guess the removal of PageCgroupAcctLRU\ntest from mem_cgroup_split_huge_fixup(), makes this now a necessary fix:\nunder load, the MEM_CGROUP_ZSTAT count was wrapping to a huge number,\nmessing up reclaim calculations and causing a freeze at rmdir of cgroup.\n\nAdd a VM_BUG_ON to mem_cgroup_lru_del_list() when we\u0027re about to wrap that\ncount - this has not been the only such incident.  Document that\nlru_add_page_tail() is for Transparent HugePages by #ifdef around it.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0cee34fd72c582b4f8ad8ce00645b75fb4168199",
      "tree": "3b3bd79df0a2ebc869dba091d922c252784ffd23",
      "parents": [
        "fe4b1b244bdb96136855f2c694071cb09d140766"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: vmscan: check if reclaim should really abort even if compaction_ready() is true for one zone\n\nIf compaction can proceed for a given zone, shrink_zones() does not\nreclaim any more pages from it.  After commit [e0c2327: vmscan: abort\nreclaim/compaction if compaction can proceed], do_try_to_free_pages()\ntries to finish as soon as possible once one zone can compact.\n\nThis was intended to prevent slabs being shrunk unnecessarily but there\nare side-effects.  One is that a small zone that is ready for compaction\nwill abort reclaim even if the chances of successfully allocating a THP\nfrom that zone is small.  It also means that reclaim can return too early\neven though sc-\u003enr_to_reclaim pages were not reclaimed.\n\nThis partially reverts the commit until it is proven that slabs are really\nbeing shrunk unnecessarily but preserves the check to return 1 to avoid\nOOM if reclaim was aborted prematurely.\n\n[aarcange@redhat.com: This patch replaces a revert from Andrea]\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": "fe4b1b244bdb96136855f2c694071cb09d140766",
      "tree": "c1fafe7ef5b5bd7c77ae981b47fa82916e0436eb",
      "parents": [
        "a6bc32b899223a877f595ef9ddc1e89ead5072b8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: vmscan: when reclaiming for compaction, ensure there are sufficient free pages available\n\nIn commit e0887c19 (\"vmscan: limit direct reclaim for higher order\nallocations\"), Rik noted that reclaim was too aggressive when THP was\nenabled.  In his initial patch he used the number of free pages to decide\nif reclaim should abort for compaction.  My feedback was that reclaim and\ncompaction should be using the same logic when deciding if reclaim should\nbe aborted.\n\nUnfortunately, this had the effect of reducing THP success rates when the\nworkload included something like streaming reads that continually\nallocated pages.  The window during which compaction could run and return\na THP was too small.\n\nThis patch combines Rik\u0027s two patches together.  compaction_suitable() is\nstill used to decide if reclaim should be aborted to allow compaction is\nused.  However, it will also ensure that there is a reasonable buffer of\nfree pages available.  This improves upon the THP allocation success rates\nbut bounds the number of pages that are freed for compaction.\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": "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": "66199712e9eef5aede09dbcd9dfff87798a66917",
      "tree": "9994be003d97d9596fadb5e4c38c271ed3e79333",
      "parents": [
        "c82449352854ff09e43062246af86bdeb628f0c3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: page allocator: do not call direct reclaim for THP allocations while compaction is deferred\n\nIf compaction is deferred, direct reclaim is used to try to free enough\npages for the allocation to succeed.  For small high-orders, this has a\nreasonable chance of success.  However, if the caller has specified\n__GFP_NO_KSWAPD to limit the disruption to the system, it makes more sense\nto fail the allocation rather than stall the caller in direct reclaim.\nThis patch skips direct reclaim if compaction is deferred and the caller\nspecifies __GFP_NO_KSWAPD.\n\nAsync compaction only considers a subset of pages so it is possible for\ncompaction to be deferred prematurely and not enter direct reclaim even in\ncases where it should.  To compensate for this, this patch also defers\ncompaction only if sync compaction failed.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel\u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "7335084d446b83cbcb15da80497d03f0c1dc9e21",
      "tree": "1bc34f3cc12a4f6fce19b8eeaed52dc3e4202b5b",
      "parents": [
        "5013473152d1ac9d44d787fb02edda845fdf2cb3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: vmscan: do not OOM if aborting reclaim to start compaction\n\nDuring direct reclaim it is possible that reclaim will be aborted so that\ncompaction can be attempted to satisfy a high-order allocation.  If this\ndecision is made before any pages are reclaimed, it is possible that 0 is\nreturned to the page allocator potentially triggering an OOM.  This has\nnot been observed but it is a possibility so this patch addresses it.\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": "5013473152d1ac9d44d787fb02edda845fdf2cb3",
      "tree": "639d241cdc804f09d56caf8ff844e09291b99170",
      "parents": [
        "b16d3d5a5219d01e9be5e586e5d50fbf1ca955ea"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 12 17:19:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "mm: vmscan: check if we isolated a compound page during lumpy scan\n\nProperly take into account if we isolated a compound page during the lumpy\nscan in reclaim and skip over the tail pages when encountered.  This\ncorrects the values given to the tracepoint for number of lumpy pages\nisolated and will avoid breaking the loop early if compound pages smaller\nthan the requested allocation size are requested.\n\n[mgorman@suse.de: Updated changelog]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.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": "b16d3d5a5219d01e9be5e586e5d50fbf1ca955ea",
      "tree": "790422876526d780e1b66dd47ae522bfa3b73484",
      "parents": [
        "a77ebd333cd810d7b680d544be88c875131c2bd3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "mm: compaction: use synchronous compaction for /proc/sys/vm/compact_memory\n\nWhen asynchronous compaction was introduced, the\n/proc/sys/vm/compact_memory handler should have been updated to always use\nsynchronous compaction.  This did not happen so this patch addresses it.\n\nThe assumption is if a user writes to /proc/sys/vm/compact_memory, they\nare willing for that process to stall.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: 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": "a77ebd333cd810d7b680d544be88c875131c2bd3",
      "tree": "f7e3baabdb4d81e089924e402442b21c4eaa3aab",
      "parents": [
        "ea4d349ffa8028c655236497c2ba17c17aaa0d65"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "mm: compaction: allow compaction to isolate dirty pages\n\nShort summary: There are severe stalls when a USB stick using VFAT is\nused with THP enabled that are reduced by this series.  If you are\nexperiencing this problem, please test and report back and considering I\nhave seen complaints from openSUSE and Fedora users on this as well as a\nfew private mails, I\u0027m guessing it\u0027s a widespread issue.  This is a new\ntype of USB-related stall because it is due to synchronous compaction\nwriting where as in the past the big problem was dirty pages reaching\nthe end of the LRU and being written by reclaim.\n\nAm cc\u0027ing Andrew this time and this series would replace\nmm-do-not-stall-in-synchronous-compaction-for-thp-allocations.patch.\nI\u0027m also cc\u0027ing Dave Jones as he might have merged that patch to Fedora\nfor wider testing and ideally it would be reverted and replaced by this\nseries.\n\nThat said, the later patches could really do with some review.  If this\nseries is not the answer then a new direction needs to be discussed\nbecause as it is, the stalls are unacceptable as the results in this\nleader show.\n\nFor testers that try backporting this to 3.1, it won\u0027t work because\nthere is a non-obvious dependency on not writing back pages in direct\nreclaim so you need those patches too.\n\nChangelog since V5\no Rebase to 3.2-rc5\no Tidy up the changelogs a bit\n\nChangelog since V4\no Added reviewed-bys, credited Andrea properly for sync-light\no Allow dirty pages without mappings to be considered for migration\no Bound the number of pages freed for compaction\no Isolate PageReclaim pages on their own LRU list\n\nThis is against 3.2-rc5 and follows on from discussions on \"mm: Do\nnot stall in synchronous compaction for THP allocations\" and \"[RFC\nPATCH 0/5] Reduce compaction-related stalls\". Initially, the proposed\npatch eliminated stalls due to compaction which sometimes resulted in\nuser-visible interactivity problems on browsers by simply never using\nsync compaction. The downside was that THP success allocation rates\nwere lower because dirty pages were not being migrated as reported by\nAndrea. His approach at fixing this was nacked on the grounds that\nit reverted fixes from Rik merged that reduced the amount of pages\nreclaimed as it severely impacted his workloads performance.\n\nThis series attempts to reconcile the requirements of maximising THP\nusage, without stalling in a user-visible fashion due to compaction\nor cheating by reclaiming an excessive number of pages.\n\nPatch 1 partially reverts commit 39deaf85 to allow migration to isolate\n\tdirty pages. This is because migration can move some dirty\n\tpages without blocking.\n\nPatch 2 notes that the /proc/sys/vm/compact_memory handler is not using\n\tsynchronous compaction when it should be. This is unrelated\n\tto the reported stalls but is worth fixing.\n\nPatch 3 checks if we isolated a compound page during lumpy scan and\n\taccount for it properly. For the most part, this affects\n\ttracing so it\u0027s unrelated to the stalls but worth fixing.\n\nPatch 4 notes that it is possible to abort reclaim early for compaction\n\tand return 0 to the page allocator potentially entering the\n\t\"may oom\" path. This has not been observed in practice but\n\tthe rest of the series potentially makes it easier to happen.\n\nPatch 5 adds a sync parameter to the migratepage callback and gives\n\tthe callback responsibility for migrating the page without\n\tblocking if sync\u003d\u003dfalse. For example, fallback_migrate_page\n\twill not call writepage if sync\u003d\u003dfalse. This increases the\n\tnumber of pages that can be handled by asynchronous compaction\n\tthereby reducing stalls.\n\nPatch 6 restores filter-awareness to isolate_lru_page for migration.\n\tIn practice, it means that pages under writeback and pages\n\twithout a -\u003emigratepage callback will not be isolated\n\tfor migration.\n\nPatch 7 avoids calling direct reclaim if compaction is deferred but\n\tmakes sure that compaction is only deferred if sync\n\tcompaction was used.\n\nPatch 8 introduces a sync-light migration mechanism that sync compaction\n\tuses. The objective is to allow some stalls but to not call\n\t-\u003ewritepage which can lead to significant user-visible stalls.\n\nPatch 9 notes that while we want to abort reclaim ASAP to allow\n\tcompation to go ahead that we leave a very small window of\n\topportunity for compaction to run. This patch allows more pages\n\tto be freed by reclaim but bounds the number to a reasonable\n\tlevel based on the high watermark on each zone.\n\nPatch 10 allows slabs to be shrunk even after compaction_ready() is\n\ttrue for one zone. This is to avoid a problem whereby a single\n\tsmall zone can abort reclaim even though no pages have been\n\treclaimed and no suitably large zone is in a usable state.\n\nPatch 11 fixes a problem with the rate of page scanning. As reclaim is\n\trarely stalling on pages under writeback it means that scan\n\trates are very high. This is particularly true for direct\n\treclaim which is not calling writepage. The vmstat figures\n\timplied that much of this was busy work with PageReclaim pages\n\tmarked for immediate reclaim. This patch is a prototype that\n\tmoves these pages to their own LRU list.\n\nThis has been tested and other than 2 USB keys getting trashed,\nnothing horrible fell out. That said, I am a bit unhappy with the\nrescue logic in patch 11 but did not find a better way around it. It\ndoes significantly reduce scan rates and System CPU time indicating\nit is the right direction to take.\n\nWhat is of critical importance is that stalls due to compaction\nare massively reduced even though sync compaction was still\nallowed. Testing from people complaining about stalls copying to USBs\nwith THP enabled are particularly welcome.\n\nThe following tests all involve THP usage and USB keys in some\nway. Each test follows this type of pattern\n\n1. Read from some fast fast storage, be it raw device or file. Each time\n   the copy finishes, start again until the test ends\n2. Write a large file to a filesystem on a USB stick. Each time the copy\n   finishes, start again until the test ends\n3. When memory is low, start an alloc process that creates a mapping\n   the size of physical memory to stress THP allocation. This is the\n   \"real\" part of the test and the part that is meant to trigger\n   stalls when THP is enabled. Copying continues in the background.\n4. Record the CPU usage and time to execute of the alloc process\n5. Record the number of THP allocs and fallbacks as well as the number of THP\n   pages in use a the end of the test just before alloc exited\n6. Run the test 5 times to get an idea of variability\n7. Between each run, sync is run and caches dropped and the test\n   waits until nr_dirty is a small number to avoid interference\n   or caching between iterations that would skew the figures.\n\nThe individual tests were then\n\nwritebackCPDeviceBasevfat\n\tDisable THP, read from a raw device (sda), vfat on USB stick\nwritebackCPDeviceBaseext4\n\tDisable THP, read from a raw device (sda), ext4 on USB stick\nwritebackCPDevicevfat\n\tTHP enabled, read from a raw device (sda), vfat on USB stick\nwritebackCPDeviceext4\n\tTHP enabled, read from a raw device (sda), ext4 on USB stick\nwritebackCPFilevfat\n\tTHP enabled, read from a file on fast storage and USB, both vfat\nwritebackCPFileext4\n\tTHP enabled, read from a file on fast storage and USB, both ext4\n\nThe kernels tested were\n\n3.1\t\t3.1\nvanilla\t\t3.2-rc5\nfreemore\tPatches 1-10\nimmediate\tPatches 1-11\nandrea\t\tThe 8 patches Andrea posted as a basis of comparison\n\nThe results are very long unfortunately. I\u0027ll start with the case\nwhere we are not using THP at all\n\nwritebackCPDeviceBasevfat\n                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1\nSystem Time         1.28 (    0.00%)   54.49 (-4143.46%)   48.63 (-3687.69%)    4.69 ( -265.11%)   51.88 (-3940.81%)\n+/-                 0.06 (    0.00%)    2.45 (-4305.55%)    4.75 (-8430.57%)    7.46 (-13282.76%)    4.76 (-8440.70%)\nUser Time           0.09 (    0.00%)    0.05 (   40.91%)    0.06 (   29.55%)    0.07 (   15.91%)    0.06 (   27.27%)\n+/-                 0.02 (    0.00%)    0.01 (   45.39%)    0.02 (   25.07%)    0.00 (   77.06%)    0.01 (   52.24%)\nElapsed Time      110.27 (    0.00%)   56.38 (   48.87%)   49.95 (   54.70%)   11.77 (   89.33%)   53.43 (   51.54%)\n+/-                 7.33 (    0.00%)    3.77 (   48.61%)    4.94 (   32.63%)    6.71 (    8.50%)    4.76 (   35.03%)\nTHP Active          0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\n+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\nFault Alloc         0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\n+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\nFault Fallback      0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\n+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)\n\nThe THP figures are obviously all 0 because THP was enabled. The\nmain thing to watch is the elapsed times and how they compare to\ntimes when THP is enabled later. It\u0027s also important to note that\nelapsed time is improved by this series as System CPu time is much\nreduced.\n\nwritebackCPDevicevfat\n\n                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1\nSystem Time         1.22 (    0.00%)   13.89 (-1040.72%)   46.40 (-3709.20%)    4.44 ( -264.37%)   47.37 (-3789.33%)\n+/-                 0.06 (    0.00%)   22.82 (-37635.56%)    3.84 (-6249.44%)    6.48 (-10618.92%)    6.60\n(-10818.53%)\nUser Time           0.06 (    0.00%)    0.06 (   -6.90%)    0.05 (   17.24%)    0.05 (   13.79%)    0.04 (   31.03%)\n+/-                 0.01 (    0.00%)    0.01 (   33.33%)    0.01 (   33.33%)    0.01 (   39.14%)    0.01 (   25.46%)\nElapsed Time     10445.54 (    0.00%) 2249.92 (   78.46%)   70.06 (   99.33%)   16.59 (   99.84%)  472.43 (\n95.48%)\n+/-               643.98 (    0.00%)  811.62 (  -26.03%)   10.02 (   98.44%)    7.03 (   98.91%)   59.99 (   90.68%)\nTHP Active         15.60 (    0.00%)   35.20 (  225.64%)   65.00 (  416.67%)   70.80 (  453.85%)   62.20 (  398.72%)\n+/-                18.48 (    0.00%)   51.29 (  277.59%)   15.99 (   86.52%)   37.91 (  205.18%)   22.02 (  119.18%)\nFault Alloc       121.80 (    0.00%)   76.60 (   62.89%)  155.40 (  127.59%)  181.20 (  148.77%)  286.60 (  235.30%)\n+/-                73.51 (    0.00%)   61.11 (   83.12%)   34.89 (   47.46%)   31.88 (   43.36%)   68.13 (   92.68%)\nFault Fallback    881.20 (    0.00%)  926.60 (   -5.15%)  847.60 (    3.81%)  822.00 (    6.72%)  716.60 (   18.68%)\n+/-                73.51 (    0.00%)   61.26 (   16.67%)   34.89 (   52.54%)   31.65 (   56.94%)   67.75 (    7.84%)\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)       3540.88   1945.37    716.04     64.97   1937.03\nTotal Elapsed Time (seconds)              52417.33  11425.90    501.02    230.95   2520.28\n\nThe first thing to note is the \"Elapsed Time\" for the vanilla kernels\nof 2249 seconds versus 56 with THP disabled which might explain the\nreports of USB stalls with THP enabled. Applying the patches brings\nperformance in line with THP-disabled performance while isolating\npages for immediate reclaim from the LRU cuts down System CPU time.\n\nThe \"Fault Alloc\" success rate figures are also improved. The vanilla\nkernel only managed to allocate 76.6 pages on average over the course\nof 5 iterations where as applying the series allocated 181.20 on\naverage albeit it is well within variance. It\u0027s worth noting that\napplies the series at least descreases the amount of variance which\nimplies an improvement.\n\nAndrea\u0027s series had a higher success rate for THP allocations but\nat a severe cost to elapsed time which is still better than vanilla\nbut still much worse than disabling THP altogether. One can bring my\nseries close to Andrea\u0027s by removing this check\n\n        /*\n         * If compaction is deferred for high-order allocations, it is because\n         * sync compaction recently failed. In this is the case and the caller\n         * has requested the system not be heavily disrupted, fail the\n         * allocation now instead of entering direct reclaim\n         */\n        if (deferred_compaction \u0026\u0026 (gfp_mask \u0026 __GFP_NO_KSWAPD))\n                goto nopage;\n\nI didn\u0027t include a patch that removed the above check because hurting\noverall performance to improve the THP figure is not what the average\nuser wants. It\u0027s something to consider though if someone really wants\nto maximise THP usage no matter what it does to the workload initially.\n\nThis is summary of vmstat figures from the same test.\n\n                                       3.1.0-vanilla rc5-vanilla freemore-v6r1 isolate-v6r1 andrea-v2r1\nPage Ins                                  3257266139  1111844061    17263623    10901575   161423219\nPage Outs                                   81054922    30364312     3626530     3657687     8753730\nSwap Ins                                        3294        2851        6560        4964        4592\nSwap Outs                                     390073      528094      620197      790912      698285\nDirect pages scanned                      1077581700  3024951463  1764930052   115140570  5901188831\nKswapd pages scanned                        34826043     7112868     2131265     1686942     1893966\nKswapd pages reclaimed                      28950067     4911036     1246044      966475     1497726\nDirect pages reclaimed                     805148398   280167837     3623473     2215044    40809360\nKswapd efficiency                                83%         69%         58%         57%         79%\nKswapd velocity                              664.399     622.521    4253.852    7304.360     751.490\nDirect efficiency                                74%          9%          0%          1%          0%\nDirect velocity                            20557.737  264745.137 3522673.849  498551.938 2341481.435\nPercentage direct scans                          96%         99%         99%         98%         99%\nPage writes by reclaim                        722646      529174      620319      791018      699198\nPage writes file                              332573        1080         122         106         913\nPage writes anon                              390073      528094      620197      790912      698285\nPage reclaim immediate                             0  2552514720  1635858848   111281140  5478375032\nPage rescued immediate                             0           0           0       87848           0\nSlabs scanned                                  23552       23552        9216        8192        9216\nDirect inode steals                              231           0           0           0           0\nKswapd inode steals                                0           0           0           0           0\nKswapd skipped wait                            28076         786           0          61           6\nTHP fault alloc                                  609         383         753         906        1433\nTHP collapse alloc                                12           6           0           0           6\nTHP splits                                       536         211         456         593        1136\nTHP fault fallback                              4406        4633        4263        4110        3583\nTHP collapse fail                                120         127           0           0           4\nCompaction stalls                               1810         728         623         779        3200\nCompaction success                               196          53          60          80         123\nCompaction failures                             1614         675         563         699        3077\nCompaction pages moved                        193158       53545      243185      333457      226688\nCompaction move failure                         9952        9396       16424       23676       45070\n\nThe main things to look at are\n\n1. Page In/out figures are much reduced by the series.\n\n2. Direct page scanning is incredibly high (264745.137 pages scanned\n   per second on the vanilla kernel) but isolating PageReclaim pages\n   on their own list reduces the number of pages scanned significantly.\n\n3. The fact that \"Page rescued immediate\" is a positive number implies\n   that we sometimes race removing pages from the LRU_IMMEDIATE list\n   that need to be put back on a normal LRU but it happens only for\n   0.07% of the pages marked for immediate reclaim.\n\nwritebackCPDeviceext4\n                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1\nSystem Time         1.51 (    0.00%)    1.77 (  -17.66%)    1.46 (    2.92%)    1.15 (   23.77%)    1.89 (  -25.63%)\n+/-                 0.27 (    0.00%)    0.67 ( -148.52%)    0.33 (  -22.76%)    0.30 (  -11.15%)    0.19 (   30.16%)\nUser Time           0.03 (    0.00%)    0.04 (  -37.50%)    0.05 (  -62.50%)    0.07 ( -112.50%)    0.04 (  -18.75%)\n+/-                 0.01 (    0.00%)    0.02 ( -146.64%)    0.02 (  -97.91%)    0.02 (  -75.59%)    0.02 (  -63.30%)\nElapsed Time      124.93 (    0.00%)  114.49 (    8.36%)   96.77 (   22.55%)   27.48 (   78.00%)  205.70 (  -64.65%)\n+/-                20.20 (    0.00%)   74.39 ( -268.34%)   59.88 ( -196.48%)    7.72 (   61.79%)   25.03 (  -23.95%)\nTHP Active        161.80 (    0.00%)   83.60 (   51.67%)  141.20 (   87.27%)   84.60 (   52.29%)   82.60 (   51.05%)\n+/-                71.95 (    0.00%)   43.80 (   60.88%)   26.91 (   37.40%)   59.02 (   82.03%)   52.13 (   72.45%)\nFault Alloc       471.40 (    0.00%)  228.60 (   48.49%)  282.20 (   59.86%)  225.20 (   47.77%)  388.40 (   82.39%)\n+/-                88.07 (    0.00%)   87.42 (   99.26%)   73.79 (   83.78%)  109.62 (  124.47%)   82.62 (   93.81%)\nFault Fallback    531.60 (    0.00%)  774.60 (  -45.71%)  720.80 (  -35.59%)  777.80 (  -46.31%)  614.80 (  -15.65%)\n+/-                88.07 (    0.00%)   87.26 (    0.92%)   73.79 (   16.22%)  109.62 (  -24.47%)   82.29 (    6.56%)\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)         50.22     33.76     30.65     24.14    128.45\nTotal Elapsed Time (seconds)               1113.73   1132.19   1029.45    759.49   1707.26\n\nSimilar test but the USB stick is using ext4 instead of vfat. As\next4 does not use writepage for migration, the large stalls due to\ncompaction when THP is enabled are not observed. Still, isolating\nPageReclaim pages on their own list helped completion time largely\nby reducing the number of pages scanned by direct reclaim although\ntime spend in congestion_wait could also be a factor.\n\nAgain, Andrea\u0027s series had far higher success rates for THP allocation\nat the cost of elapsed time. I didn\u0027t look too closely but a quick\nlook at the vmstat figures tells me kswapd reclaimed 8 times more pages\nthan the patch series and direct reclaim reclaimed roughly three times\nas many pages. It follows that if memory is aggressively reclaimed,\nthere will be more available for THP.\n\nwritebackCPFilevfat\n                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1\nSystem Time         1.76 (    0.00%)   29.10 (-1555.52%)   46.01 (-2517.18%)    4.79 ( -172.35%)   54.89 (-3022.53%)\n+/-                 0.14 (    0.00%)   25.61 (-18185.17%)    2.15 (-1434.83%)    6.60 (-4610.03%)    9.75\n(-6863.76%)\nUser Time           0.05 (    0.00%)    0.07 (  -45.83%)    0.05 (   -4.17%)    0.06 (  -29.17%)    0.06 (  -16.67%)\n+/-                 0.02 (    0.00%)    0.02 (   20.11%)    0.02 (   -3.14%)    0.01 (   31.58%)    0.01 (   47.41%)\nElapsed Time     22520.79 (    0.00%) 1082.85 (   95.19%)   73.30 (   99.67%)   32.43 (   99.86%)  291.84 (  98.70%)\n+/-              7277.23 (    0.00%)  706.29 (   90.29%)   19.05 (   99.74%)   17.05 (   99.77%)  125.55 (   98.27%)\nTHP Active         83.80 (    0.00%)   12.80 (   15.27%)   15.60 (   18.62%)   13.00 (   15.51%)    0.80 (    0.95%)\n+/-                66.81 (    0.00%)   20.19 (   30.22%)    5.92 (    8.86%)   15.06 (   22.54%)    1.17 (    1.75%)\nFault Alloc       171.00 (    0.00%)   67.80 (   39.65%)   97.40 (   56.96%)  125.60 (   73.45%)  133.00 (   77.78%)\n+/-                82.91 (    0.00%)   30.69 (   37.02%)   53.91 (   65.02%)   55.05 (   66.40%)   21.19 (   25.56%)\nFault Fallback    832.00 (    0.00%)  935.20 (  -12.40%)  906.00 (   -8.89%)  877.40 (   -5.46%)  870.20 (   -4.59%)\n+/-                82.91 (    0.00%)   30.69 (   62.98%)   54.01 (   34.86%)   55.05 (   33.60%)   20.91 (   74.78%)\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)       7229.81    928.42    704.52     80.68   1330.76\nTotal Elapsed Time (seconds)             112849.04   5618.69    571.11    360.54   1664.28\n\nIn this case, the test is reading/writing only from filesystems but as\nit\u0027s vfat, it\u0027s slow due to calling writepage during compaction. Little\nto observe really - the time to complete the test goes way down\nwith the series applied and THP allocation success rates go up in\ncomparison to 3.2-rc5.  The success rates are lower than 3.1.0 but\nthe elapsed time for that kernel is abysmal so it is not really a\nsensible comparison.\n\nAs before, Andrea\u0027s series allocates more THPs at the cost of overall\nperformance.\n\nwritebackCPFileext4\n                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1\nSystem Time         1.51 (    0.00%)    1.77 (  -17.66%)    1.46 (    2.92%)    1.15 (   23.77%)    1.89 (  -25.63%)\n+/-                 0.27 (    0.00%)    0.67 ( -148.52%)    0.33 (  -22.76%)    0.30 (  -11.15%)    0.19 (   30.16%)\nUser Time           0.03 (    0.00%)    0.04 (  -37.50%)    0.05 (  -62.50%)    0.07 ( -112.50%)    0.04 (  -18.75%)\n+/-                 0.01 (    0.00%)    0.02 ( -146.64%)    0.02 (  -97.91%)    0.02 (  -75.59%)    0.02 (  -63.30%)\nElapsed Time      124.93 (    0.00%)  114.49 (    8.36%)   96.77 (   22.55%)   27.48 (   78.00%)  205.70 (  -64.65%)\n+/-                20.20 (    0.00%)   74.39 ( -268.34%)   59.88 ( -196.48%)    7.72 (   61.79%)   25.03 (  -23.95%)\nTHP Active        161.80 (    0.00%)   83.60 (   51.67%)  141.20 (   87.27%)   84.60 (   52.29%)   82.60 (   51.05%)\n+/-                71.95 (    0.00%)   43.80 (   60.88%)   26.91 (   37.40%)   59.02 (   82.03%)   52.13 (   72.45%)\nFault Alloc       471.40 (    0.00%)  228.60 (   48.49%)  282.20 (   59.86%)  225.20 (   47.77%)  388.40 (   82.39%)\n+/-                88.07 (    0.00%)   87.42 (   99.26%)   73.79 (   83.78%)  109.62 (  124.47%)   82.62 (   93.81%)\nFault Fallback    531.60 (    0.00%)  774.60 (  -45.71%)  720.80 (  -35.59%)  777.80 (  -46.31%)  614.80 (  -15.65%)\n+/-                88.07 (    0.00%)   87.26 (    0.92%)   73.79 (   16.22%)  109.62 (  -24.47%)   82.29 (    6.56%)\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)         50.22     33.76     30.65     24.14    128.45\nTotal Elapsed Time (seconds)               1113.73   1132.19   1029.45    759.49   1707.26\n\nSame type of story - elapsed times go down. In this case, allocation\nsuccess rates are roughtly the same. As before, Andrea\u0027s has higher\nsuccess rates but takes a lot longer.\n\nOverall the series does reduce latencies and while the tests are\ninherency racy as alloc competes with the cp processes, the variability\nwas included. The THP allocation rates are not as high as they could\nbe but that is because we would have to be more aggressive about\nreclaim and compaction impacting overall performance.\n\nThis patch:\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.\n\nWhat was missed during review is that asynchronous migration moves dirty\npages if their -\u003emigratepage callback is migrate_page() because these can\nbe moved without blocking.  This potentially impacted hugepage allocation\nsuccess rates by a factor depending on how many dirty pages are in the\nsystem.\n\nThis patch partially reverts 39deaf85 to allow migration to isolate dirty\npages again.  This increases how much compaction disrupts the LRU but that\nis addressed later in the series.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: 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": "ea4d349ffa8028c655236497c2ba17c17aaa0d65",
      "tree": "b983961282dea73db03a1257fa4aaec109aee5cc",
      "parents": [
        "45676885b76237a4c236d26fe20a9b0cfdb2eb22"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Jan 12 17:19:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "vmscan/trace: Add \u0027file\u0027 info to trace_mm_vmscan_lru_isolate()\n\nIn trace_mm_vmscan_lru_isolate(), we don\u0027t output \u0027file\u0027 information to\nthe trace event and it is a bit inconvenient for the user to get the\nreal information(like pasted below).  mm_vmscan_lru_isolate:\nisolate_mode\u003d2 order\u003d0 nr_requested\u003d32 nr_scanned\u003d32 nr_taken\u003d32\ncontig_taken\u003d0 contig_dirty\u003d0 contig_failed\u003d0\n\n\u0027active\u0027 can be obtained by analyzing mode(Thanks go to Minchan and\nMel), So this patch adds \u0027file\u0027 to the trace event and it now looks\nlike: mm_vmscan_lru_isolate: isolate_mode\u003d2 order\u003d0 nr_requested\u003d32\nnr_scanned\u003d32 nr_taken\u003d32 contig_taken\u003d0 contig_dirty\u003d0 contig_failed\u003d0\nfile\u003d0\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45676885b76237a4c236d26fe20a9b0cfdb2eb22",
      "tree": "e1a5222c4c7b439cb6a27ace0e36e0280f8b7870",
      "parents": [
        "f21760b15dcd091e5afd38d0b97197b45f7ef2ea"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: improve order in lru list for split huge page\n\nPut the tail subpages of an isolated hugepage under splitting in the lru\nreclaim head as they supposedly should be isolated too next.\n\nQueues the subpages in physical order in the lru for non isolated\nhugepages under splitting.  That might provide some theoretical cache\nbenefit to the buddy allocator later.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-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": "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": "e5591307f0c1eb733d280a0b72473e01d7f88530",
      "tree": "3021a7e07c92e63260d1d03f14f34f771399aa92",
      "parents": [
        "569e55900a5c3c30de6e25c3f259ae7c7dbadb96"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: remove unnecessary tlb flush for mprotect\n\nchange_protection() will do TLB flush later, don\u0027t need duplicate tlb\nflush.\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": "569e55900a5c3c30de6e25c3f259ae7c7dbadb96",
      "tree": "66bfd4d2ea26f1b9d77580d5397a07552a62e4fd",
      "parents": [
        "0efc8eb9c6a177836dac88b2cbb8815f9e4f8d5a"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: improve the error code path\n\nImprove the error code path.  Delete unnecessary sysfs file for example.\nAlso remove the #ifdef xxx to make code better.\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": "0efc8eb9c6a177836dac88b2cbb8815f9e4f8d5a",
      "tree": "e0da1e44675f2c8be76f75b39efefc5f96c64a3f",
      "parents": [
        "d0048b0e59c1218d62bb4d014f34bbd7e7c0a214"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Jan 12 17:19:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "page_cgroup: drop multi CONFIG_MEMORY_HOTPLUG\n\nNo need for two CONFIG_MEMORY_HOTPLUG blocks.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "d0048b0e59c1218d62bb4d014f34bbd7e7c0a214",
      "tree": "f6a69889bcb60b253ab37029616ebe6fa2bd24f9",
      "parents": [
        "3ed28fa1080c73747ce17f2025b28b062fb5aa7f"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Jan 12 17:19:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:07 2012 -0800"
      },
      "message": "page_alloc: break early in check_for_regular_memory()\n\nIf there is a zone below ZONE_NORMAL has present_pages, we can set node\nstate to N_NORMAL_MEMORY, no need to loop to end.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "3ed28fa1080c73747ce17f2025b28b062fb5aa7f",
      "tree": "f4eab7da502fb728fac728220bc1f296ee04dca1",
      "parents": [
        "38c5d72f3ebe5ddd57d2f08dc035070fc6c9a287"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Jan 12 17:19:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:07 2012 -0800"
      },
      "message": "memcg: cleanup for_each_node_state()\n\nWe already have for_each_node(node) define in nodemask.h, better to use it.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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"
    }
  ],
  "next": "38c5d72f3ebe5ddd57d2f08dc035070fc6c9a287"
}
