)]}'
{
  "log": [
    {
      "commit": "8bc1f91e1f0e977fb95b11d8fa686f5091888110",
      "tree": "e7c6369b20e5e37176b91a93a8ea621df8c9d893",
      "parents": [
        "e782ab421bbba1912c87934bd0e8998630736418"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 24 14:43:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 24 14:43:06 2011 +0100"
      },
      "message": "bootmem: Move __alloc_memory_core_early() to nobootmem.c\n\nNow that bootmem.c and nobootmem.c are separate, there\u0027s no reason to\ndefine __alloc_memory_core_early(), which is used only by nobootmem,\ninside #ifdef in page_alloc.c.  Move it to nobootmem.c and make it\nstatic.\n\nThis patch doesn\u0027t introduce any behavior change.\n\n-tj: Updated commit description.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e782ab421bbba1912c87934bd0e8998630736418",
      "tree": "496e4ccaeadf3551d4c516b9f36c7c087eef9e3b",
      "parents": [
        "0932587328d9bd5b500a640fbaff3290c8d4cabf"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 24 14:43:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 24 14:43:06 2011 +0100"
      },
      "message": "bootmem: Move contig_page_data definition to bootmem.c/nobootmem.c\n\nNow that bootmem.c and nobootmem.c are separate, it\u0027s cleaner to\ndefine contig_page_data in each file than in page_alloc.c with #ifdef.\nMove it.\n\nThis patch doesn\u0027t introduce any behavior change.\n\n-v2: According to Andrew, fixed the struct layout.\n-tj: Updated commit description.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0932587328d9bd5b500a640fbaff3290c8d4cabf",
      "tree": "7c041a41db88f7bb6d98f2a69e21a33a311b469f",
      "parents": [
        "2bf50555b0920be7e29d3823f6bbd20ee5920489"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 24 14:43:05 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 24 14:43:05 2011 +0100"
      },
      "message": "bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c\n\nmm/bootmem.c contained code paths for both bootmem and no bootmem\nconfigurations.  They implement about the same set of APIs in\ndifferent ways and as a result bootmem.c contains massive amount of\n#ifdef CONFIG_NO_BOOTMEM.\n\nSeparate out CONFIG_NO_BOOTMEM code into mm/nobootmem.c.  As the\ncommon part is relatively small, duplicate them in nobootmem.c instead\nof creating a common file or ifdef\u0027ing in bootmem.c.\n\nThe followings are duplicated.\n\n* {min|max}_low_pfn, max_pfn, saved_max_pfn\n* free_bootmem_late()\n* ___alloc_bootmem()\n* __alloc_bootmem_low()\n\nThe followings are applicable only to nobootmem and moved verbatim.\n\n* __free_pages_memory()\n* free_all_memory_core_early()\n\nThe followings are not applicable to nobootmem and omitted in\nnobootmem.c.\n\n* reserve_bootmem_node()\n* reserve_bootmem()\n\nThe rest split function bodies according to CONFIG_NO_BOOTMEM.\n\nMakefile is updated so that only either bootmem.c or nobootmem.c is\nbuilt according to CONFIG_NO_BOOTMEM.\n\nThis patch doesn\u0027t introduce any behavior change.\n\n-tj: Rewrote commit description.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2bf50555b0920be7e29d3823f6bbd20ee5920489",
      "tree": "43d1a7b547af3e87c18543caff7b398be66413d2",
      "parents": [
        "90e6b677b47ff8c5ba1637941af6b9f92723b003"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Feb 22 11:18:49 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:18:49 2011 +0100"
      },
      "message": "x86-64, NUMA: Seperate out numa_alloc_distance() from numa_set_distance()\n\nAlloc code is much bigger the distance setting.  Separate it out into\nnuma_alloc_distance() for readability.\n\n-v2: Let alloc_numa_distance to return -ENOMEM on failing path,\n     requested by tj.\n\n-tj: Description update.  Minor tweaks including function name,\n     location and return value check.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "90e6b677b47ff8c5ba1637941af6b9f92723b003",
      "tree": "0d1a4a2d0bc9b09e1764d2e09d875cae3e55c86e",
      "parents": [
        "b8ef9172b2aad7eeb1fcd37a9e632c7b24da1f64"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Add proper function comments to global functions\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "b8ef9172b2aad7eeb1fcd37a9e632c7b24da1f64",
      "tree": "c63a57e3c392f2d45ba975d29cdd768904ef169f",
      "parents": [
        "fbe99959d1db85222829a64d869dcab704ac7ec8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Move NUMA emulation into numa_emulation.c\n\nCreate numa_emulation.c and move all NUMA emulation code there.  The\ndefinitions of struct numa_memblk and numa_meminfo are moved to\nnuma_64.h.  Also, numa_remove_memblk_from(), numa_cleanup_meminfo(),\nnuma_reset_distance() along with numa_emulation() are made global.\n\n- v2: Internal declarations moved to numa_internal.h as suggested by\n      Yinghai.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "fbe99959d1db85222829a64d869dcab704ac7ec8",
      "tree": "d9a73b523cf21fbe51f572cdcfe36225a7964e83",
      "parents": [
        "69efcc6d90d234a3a076afb2c635c1609536faa4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 22 11:10:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Prepare numa_emulation() for moving NUMA emulation into a separate file\n\nUpdate numa_emulation() such that, it\n\n- takes @numa_meminfo and @numa_dist_cnt instead of directly\n  referencing the global variables.\n\n- copies the distance table by iterating each distance with\n  node_distance() instead of memcpy\u0027ing the distance table.\n\n- tests emu_cmdline to determine whether emulation is requested and\n  fills emu_nid_to_phys[] with identity mapping if emulation is not\n  used.  This allows the caller to call numa_emulation()\n  unconditionally and makes return value unncessary.\n\n- defines dummy version if CONFIG_NUMA_EMU is disabled.\n\nThis patch doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "69efcc6d90d234a3a076afb2c635c1609536faa4",
      "tree": "69c4032f04de1e9dc8add8a944b13b4f3c05814a",
      "parents": [
        "6d496f9f232790d44144f3784856290e0b27b8f3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Feb 21 10:58:13 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 11:23:31 2011 +0100"
      },
      "message": "x86-64, NUMA: Do not scan two times for setup_node_bootmem()\n\nBy the time setup_node_bootmem() is called, all the memblocks are\nalready registered.  As node_data is allocated from these memblocks,\ncalling it more than once doesn\u0027t make any difference.  Drop the loop.\n\ntj: Dropped comment referencing to the old behavior as suggested by\n    David and rephrased the description.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6d496f9f232790d44144f3784856290e0b27b8f3",
      "tree": "d3743398d1a2159981c5eafc837e08b46565dad5",
      "parents": [
        "2ca230baeb7c61864cab9b53e37a3da28a2ca7e5"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 17 14:53:20 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 17 15:04:20 2011 +0100"
      },
      "message": "x86-64, NUMA: Put dummy_numa_init() in the init section\n\ndummy_numa_init() is used only during system boot.  Put it in .init\nlike other NUMA init functions.\n\n- tj: Description update.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2ca230baeb7c61864cab9b53e37a3da28a2ca7e5",
      "tree": "961a13fca73f866363f3da26506eb1c4455d9386",
      "parents": [
        "e23bba604433a202cd301a976454a90ea6b783ef"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 17 14:46:37 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 17 15:03:43 2011 +0100"
      },
      "message": "x86-64, NUMA: Don\u0027t call __pa() with invalid address in numa_reset_distance()\n\nDo not call __pa(numa_distance) if it was not allocated before.\nCalling with invalid address triggers VIRTUAL_BUG_ON() in\n__phys_addr() if CONFIG_DEBUG_VIRTUAL.\n\nAlso reported by Ingo.\n\n http://thread.gmane.org/gmane.linux.kernel/1101306/focus\u003d1101785\n\n- v2: Change to check existing path as tj requested.\n- tj: Description update.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e23bba604433a202cd301a976454a90ea6b783ef",
      "tree": "012bc42b25abd68d77e9c6946a6b0d38b9b71bdc",
      "parents": [
        "6b78cb549b4105cbf7c6f7461f27a21f00c44997"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Unify emulated distance mapping\n\nNUMA emulation needs to update node distance information.  It did it\nby remapping apicid to PXM mapping, even when amdtopology is being\nused.  There is no reason to go through such convolution.  The generic\ncode has all the information necessary to transform the distance table\nto the emulated nid space.\n\nImplement generic distance table transformation in numa_emulation()\nand drop private implementations in srat_64 and amdtopology_64.  This\nmakes find_node_by_addr() and fake_physnodes() and related functions\nunnecessary, drop them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "6b78cb549b4105cbf7c6f7461f27a21f00c44997",
      "tree": "fc0e67399cb02445c7f3ca7fcb1f62c41583738c",
      "parents": [
        "1cca53407336fb6a86092e36dbc5c1e4d45d912b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Unify emulated apicid -\u003e node mapping transformation\n\nNUMA emulation changes node mappings and thus apicid -\u003e node mapping\nneeds to be updated accordingly.  srat_64 and amdtopology_64 did this\nseparately; however, all the necessary information is the mapping from\nemulated nodes to physical nodes which is available in\nemu_nid_to_phys[].\n\nImplement common __apicid_to_node[] transformation in numa_emulation()\nand drop duplicate implementations.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1cca53407336fb6a86092e36dbc5c1e4d45d912b",
      "tree": "d6659b944d1ee5a472a7155753c08e185ba73a79",
      "parents": [
        "775ee85d7bff8ce7c7eccde90eda400658b650a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Emulate directly from numa_meminfo\n\nNUMA emulation built physnodes[] array which could only represent\nconfigurations from the physical meminfo and emulated nodes using the\ninformation.  There\u0027s no reason to take this extra level of\nindirection.  Update emulation functions so that they operate directly\non numa_meminfo.  This simplifies the code and makes emulation layout\nbehave better with interleaved physical nodes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "775ee85d7bff8ce7c7eccde90eda400658b650a3",
      "tree": "46dc2a5582dd7b87cf9422ac1f8e8ee8c9b67d20",
      "parents": [
        "c88aea7a70b0f014f98c695069ba91abc9e9b9a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Wrap node ID during emulation\n\nBoth emulation layout functions - split_nodes[_size]_interleave() -\ndidn\u0027t wrap emulated nid while laying out the fake nodes and tried to\navoid interating over the specified number of nodes, which is fragile.\n\nNow that the emulation code generates numa_meminfo, the node memblks\ndon\u0027t need to be consecutive and emulated node IDs can simply wrap.\nThis makes the code more robust and is necessary for updates to better\nhandle the cases where the physical nodes are interleaved.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "c88aea7a70b0f014f98c695069ba91abc9e9b9a4",
      "tree": "cf1c0b659d83779ee151853b256bb6a55565dfdf",
      "parents": [
        "9d073caeb372940af02a768d2b7e845ac732bda0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Make emulation code build numa_meminfo and share the registration path\n\nNUMA emulation code built nodes[] array and had its own registration\npath to set up the emulated nodes.  Update it such that it generates\nemulated numa_meminfo and returns control to initmem_init() and shares\nthe same registration path with non-emulated cases.\n\nBecause {acpi|amd}_fake_nodes() expect nodes[] parameter,\nfake_physnodes() now generates nodes[] from numa_meminfo.  This will\ngo away with further updates.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "9d073caeb372940af02a768d2b7e845ac732bda0",
      "tree": "7d46006e3f0fc1fb0c13924735d9afea6ac9c3eb",
      "parents": [
        "d9c515eacb3bde73f7a5ecb7e35ea6e660ad421d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Build and use direct emulated nid -\u003e phys nid mapping\n\nNUMA emulation copied physical NUMA configuration into physnodes[] and\nused it to reverse-map emulated nodes to physical nodes, which is\nunnecessarily convoluted.  Build emu_nid_to_phys[] array to map\nemulated nids directly to the matching physical nids and use it in\nnuma_add_cpu().\n\nphysnodes[] will be removed with further patches.\n\n- v2: Build failure when CONFIG_DEBUG_PER_CPU_MAPS due to missing\n  local variable definition fixed.  Reported by Ingo.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "d9c515eacb3bde73f7a5ecb7e35ea6e660ad421d",
      "tree": "2f0204314073c8e1c2a83269faa166dd57c99516",
      "parents": [
        "ac7136b611ee8f8bd6231ce2e1dbdd31ae3d39bc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:10 2011 +0100"
      },
      "message": "x86-64, NUMA: Trivial changes to prepare for emulation updates\n\n* Separate out numa_add_memblk_to() from numa_add_memblk() so that\n  different numa_meminfo can be used.\n\n* Rename cmdline to emu_cmdline.\n\n* Drop @start/last_pfn from numa_emulation() and use max_pfn directly.\n\nThis patch doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "ac7136b611ee8f8bd6231ce2e1dbdd31ae3d39bc",
      "tree": "41f6809ba694a723b521573c2e8d34c652c31281",
      "parents": [
        "4697bdcc945c094d2c8a4876a24faeaf31a283e0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Implement generic node distance handling\n\nNode distance either used direct node comparison, ACPI PXM comparison\nor ACPI SLIT table lookup.  This patch implements generic node\ndistance handling.  NUMA init methods can call numa_set_distance() to\nset distance between nodes and the common __node_distance()\nimplementation will report the set distance.\n\nDue to the way NUMA emulation is implemented, the generic node\ndistance handling is used only when emulation is not used.  Later\npatches will update NUMA emulation to use the generic distance\nmechanism.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "4697bdcc945c094d2c8a4876a24faeaf31a283e0",
      "tree": "709191c472d60a7394ba6d775ef6548748ba621d",
      "parents": [
        "92d4a4371eeb89e1e12b9ebbed0956f499b6c2c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Kill mem_nodes_parsed\n\nWith all memory configuration information now carried in numa_meminfo,\nthere\u0027s no need to keep mem_nodes_parsed separate.  Drop it and use\nnuma_nodes_parsed for CPU / memory-less nodes.\n\nA new helper numa_nodemask_from_meminfo() is added to calculate\nmemnode mask on the fly which is currently used to set\nnode_possible_map.\n\nThis simplifies NUMA init methods a bit and removes a source of\npossible inconsistencies.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "92d4a4371eeb89e1e12b9ebbed0956f499b6c2c0",
      "tree": "11ee70801eeeac07fefe97d42c108036833b5ec0",
      "parents": [
        "91556237ec872e1029e3036174bae3b1a8df65eb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Rename cpu_nodes_parsed to numa_nodes_parsed\n\nIt\u0027s no longer necessary to keep both cpu_nodes_parsed and\nmem_nodes_parsed.  In preparation for merge, rename cpu_nodes_parsed\nto numa_nodes_parsed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "91556237ec872e1029e3036174bae3b1a8df65eb",
      "tree": "967d5fe1fedfd372f4af7e7cf79e54d074b1ee0f",
      "parents": [
        "a844ef46fa3055165c28feede6114a711b8375ad"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Kill numa_nodes[]\n\nnuma_nodes[] doesn\u0027t carry any information which isn\u0027t present in\nnuma_meminfo.  Each entry is simply min/max range of all the memblks\nfor the node.  This is not only redundant but also inaccurate when\nmemblks for different nodes interleave - for example,\nfind_node_by_addr() can return the wrong nodeid.\n\nKill numa_nodes[] and always use numa_meminfo instead.\n\n* nodes_cover_memory() is renamed to numa_meminfo_cover_memory() and\n  now operations on numa_meminfo and returns bool.\n\n* setup_node_bootmem() needs min/max range.  Compute the range on the\n  fly.  setup_node_bootmem() invocation is restructured to use outer\n  loop instead of hardcoding the double invocations.\n\n* find_node_by_addr() now operates on numa_meminfo.\n\n* setup_physnodes() builds physnodes[] from memblks.  This will go\n  away when emulation code is updated to use struct numa_meminfo.\n\nThis patch also makes the following misc changes.\n\n* Clearing of nodes_add[] clearing is converted to memset().\n\n* numa_add_memblk() in amd_numa_init() is moved down a bit for\n  consistency.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "a844ef46fa3055165c28feede6114a711b8375ad",
      "tree": "fcbe0deaa1d743bef8ebeed4d37b7089a561d91b",
      "parents": [
        "56e827fbde9a3cb886a2fe138db0d99e98efbfb1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Add common find_node_by_addr()\n\nsrat_64.c and amdtopology_64.c had their own versions of\nfind_node_by_addr() which were basically the same.  Add common one in\nnuma_64.c and remove the duplicates.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "56e827fbde9a3cb886a2fe138db0d99e98efbfb1",
      "tree": "1a5eb3631d847669179ffd97b5274dd70405c931",
      "parents": [
        "2e756be44714d0ec2f9827e4f4797c60876167a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: consolidate and improve memblk sanity checks\n\nmemblk sanity check was scattered around and incomplete.  Consolidate\nand improve.\n\n* Confliction detection and cutoff_node() logic are moved to\n  numa_cleanup_meminfo().\n\n* numa_cleanup_meminfo() clears the unused memblks before returning.\n\n* Check and warn about invalid input parameters in numa_add_memblk().\n\n* Check the maximum number of memblk isn\u0027t exceeded in\n  numa_add_memblk().\n\n* numa_cleanup_meminfo() is now called before numa_emulation() so that\n  the emulation code also uses the cleaned up version.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "2e756be44714d0ec2f9827e4f4797c60876167a1",
      "tree": "ed9857801b0c2f0d86790e78f5cb5831abb23a60",
      "parents": [
        "f9c60251c3d08777db6758cafd959a55a838abd6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: make numa_cleanup_meminfo() prettier\n\n* Factor out numa_remove_memblk_from().\n\n* Hole detection doesn\u0027t need separate start/end.  Calculate start/end\n  once.\n\n* Relocate comment.\n\n* Define iterators at the top and remove unnecessary prefix\n  increments.\n\nThis prepares for further improvements to the function.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "f9c60251c3d08777db6758cafd959a55a838abd6",
      "tree": "402f8dd50dbead965fb112060eab988aa9563907",
      "parents": [
        "97e7b78d0674882a0aae043fda428c583dbb225d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:09 2011 +0100"
      },
      "message": "x86-64, NUMA: Separate out numa_cleanup_meminfo()\n\nSeparate out numa_cleanup_meminfo() from numa_register_memblks().\nnode_possible_map initialization is moved to the top of the split\nnuma_register_memblks().\n\nThis patch doesn\u0027t cause behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "97e7b78d0674882a0aae043fda428c583dbb225d",
      "tree": "f7393c83623b2adfacc1675779901a4af2a45d78",
      "parents": [
        "8968dab8ad90ea16ef92f2406868354ea3ab6bb9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Introduce struct numa_meminfo\n\nArrays for memblks and nodeids and their length lived in separate\nvariables making things unnecessarily cumbersome.  Introduce struct\nnuma_meminfo which contains all memory configuration info.  This patch\ndoesn\u0027t cause any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "8968dab8ad90ea16ef92f2406868354ea3ab6bb9",
      "tree": "e385ef373b7ab2f5f9a1457a2910a3d57d61bad7",
      "parents": [
        "5d371b08fea80c4fb7450d31e5a4e35b438ef850"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Remove %NULL @nodeids handling from compute_hash_shift()\n\nnuma_emulation() called compute_hash_shift() with %NULL @nodeids which\nmeant identity mapping between index and nodeid.  Make\nnuma_emulation() build identity array and drop %NULL @nodeids handling\nfrom populate_memnodemap() and thus from compute_hash_shift().  This\nis to prepare for transition to using memblks instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "5d371b08fea80c4fb7450d31e5a4e35b438ef850",
      "tree": "d87e33c1b8b63bc7e50d7a5e18d0f12f8022582b",
      "parents": [
        "fd0435d8fb1d4e5771f9ae3af71f2a77c1f4bd09"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Kill {acpi|amd|dummy}_scan_nodes()\n\nThey are empty now.  Kill them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "fd0435d8fb1d4e5771f9ae3af71f2a77c1f4bd09",
      "tree": "633e662f21d47ab162d3651d7b1c527ae0f458fe",
      "parents": [
        "43a662f04f731c331706456c9852ef7146ba5d85"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Unify the rest of memblk registration\n\nMove the remaining memblk registration logic from acpi_scan_nodes() to\nnuma_register_memblks() and initmem_init().\n\nThis applies nodes_cover_memory() sanity check, memory node sorting\nand node_online() checking, which were only applied to acpi, to all\ninit methods.\n\nAs all memblk registration is moved to common code, active range\nclearing is moved to initmem_init() too and removed from bad_srat().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "43a662f04f731c331706456c9852ef7146ba5d85",
      "tree": "055e3433a69d35ad20ed405007220c28f8674f02",
      "parents": [
        "ef396ec96c1a8ffd2b0bc67f1f79c7274de02b95"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:08 2011 +0100"
      },
      "message": "x86-64, NUMA: Unify use of memblk in all init methods\n\nMake both amd and dummy use numa_add_memblk() to describe the detected\nmemory blocks.  This allows initmem_init() to call\nnuma_register_memblk() regardless of init method in use.  Drop custom\nmemory registration codes from amd and dummy.\n\nAfter this change, memblk merge/cleanup in numa_register_memblks() is\napplied to all init methods.\n\nAs this makes compute_hash_shift() and numa_register_memblks() used\nonly inside numa_64.c, make them static.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "ef396ec96c1a8ffd2b0bc67f1f79c7274de02b95",
      "tree": "c0c996ba7b3d60195beb4e4b65790df1a9d79419",
      "parents": [
        "19095548704ecd0f32fd5deba01d56430ad7a344"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:11:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Factor out memblk handling into numa_{add|register}_memblk()\n\nFactor out memblk handling from srat_64.c into two functions in\nnuma_64.c.  This patch doesn\u0027t introduce any behavior change.  The\nnext patch will make all init methods use these functions.\n\n- v2: Fixed build failure on 32bit due to misplaced NR_NODE_MEMBLKS.\n      Reported by Ingo.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "19095548704ecd0f32fd5deba01d56430ad7a344",
      "tree": "d381be4321d1755d0c79de7264b583898db572ad",
      "parents": [
        "206e42087a037fa3adca8908fd318a0cb64d4dee"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Kill {acpi|amd}_get_nodes()\n\nWith common numa_nodes[], common code in numa_64.c can access it\ndirectly.  Copy directly and kill {acpi|amd}_get_nodes().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "206e42087a037fa3adca8908fd318a0cb64d4dee",
      "tree": "044cc262b03c62064a65d13b119b6f73da5c22f4",
      "parents": [
        "45fe6c78c4ccc384044d1b4877eebe7acf359e76"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Use common numa_nodes[]\n\nACPI and amd are using separate nodes[] array.  Add numa_nodes[] and\nuse them in all NUMA init methods.  cutoff_node() cleanup is moved\nfrom srat_64.c to numa_64.c and applied in initmem_init() regardless\nof init methods.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "45fe6c78c4ccc384044d1b4877eebe7acf359e76",
      "tree": "f9b4559afd352cbb825f0116ead0557f08b8db05",
      "parents": [
        "99df738cd28cc39054cd1a77685d4a94ed2193a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Move apicid to numa mapping initialization from amd_scan_nodes() to amd_numa_init()\n\nThis brings amd initialization behavior closer to that of acpi.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "99df738cd28cc39054cd1a77685d4a94ed2193a4",
      "tree": "169dd669d3be665dd588ccc4f908e8289a5ed866",
      "parents": [
        "ec8cf29b1d39aeb6ef98bc589f0c9a33a8f94c49"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Remove local variable found from amd_numa_init()\n\nUse weight count on mem_nodes_parsed instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "ec8cf29b1d39aeb6ef98bc589f0c9a33a8f94c49",
      "tree": "096c8f6b23944e000628d245fd43719cd7a1b104",
      "parents": [
        "ffe77a4605fb2588f8666850ad3e3b196241658f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:07 2011 +0100"
      },
      "message": "x86-64, NUMA: Use common {cpu|mem}_nodes_parsed\n\nACPI and amd are using separate nodes_parsed masks.  Add\n{cpu|mem}_nodes_parsed and use them in all NUMA init methods.\nInitialization of the masks and building node_possible_map are now\nhandled commonly by initmem_init().\n\ndummy_numa_init() is updated to set node 0 on both masks.  While at\nit, move the info messages from scan to init.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "ffe77a4605fb2588f8666850ad3e3b196241658f",
      "tree": "7f4218d2658a84180e9e11d67636db27d6881f83",
      "parents": [
        "d8fc3afc49bb226c20e37f48a4ddd493cd092837"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86-64, NUMA: Restructure initmem_init()\n\nReorganize initmem_init() such that,\n\n* Different NUMA init methods are iterated in a consistent way.\n\n* Each iteration re-initializes all the parameters and different\n  method can be tried after a failure.\n\n* Dummy init is handled the same as other methods.\n\nApart from how retry after failure, this patch doesn\u0027t change the\nbehavior.  The call sequences are kept equivalent across the\nconversion.\n\nAfter the change, bad_srat() doesn\u0027t need to clear apic to node\nmapping or worry about numa_off.  Simplified accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "d8fc3afc49bb226c20e37f48a4ddd493cd092837",
      "tree": "96bf7b0f4e47e798697ea72a180da528be0d8902",
      "parents": [
        "a9aec56afac238e4ed3980bd10b22121b83866dd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86, NUMA: Move *_numa_init() invocations into initmem_init()\n\nThere\u0027s no reason for these to live in setup_arch().  Move them inside\ninitmem_init().\n\n- v2: x86-32 initmem_init() weren\u0027t updated breaking 32bit builds.\n  Fixed.  Found by Ankita.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ankita Garg \u003cankita@in.ibm.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "a9aec56afac238e4ed3980bd10b22121b83866dd",
      "tree": "77ef26c3361ebb54cbb08897c0ac2763e2c5edbe",
      "parents": [
        "940fed2e79a15cf0d006c860d7811adbe5c19882"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86-64, NUMA: Wrap acpi_numa_init() so that failure can be indicated by return value\n\nBecause of the way ACPI tables are parsed, the generic\nacpi_numa_init() couldn\u0027t return failure when error was detected by\narch hooks.  Instead, the failure state was recorded and later arch\ndependent init hook - acpi_scan_nodes() - would fail.\n\nWrap acpi_numa_init() with x86_acpi_numa_init() so that failure can be\nindicated as return value immediately.  This is in preparation for\nfurther NUMA init cleanups.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "940fed2e79a15cf0d006c860d7811adbe5c19882",
      "tree": "3a98a59f28445430ff03061c6b2566038c4c63e0",
      "parents": [
        "86ef4dbf1f736bb1a4d567e043e3dd81b8b7860c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86-64, NUMA: Unify {acpi|amd}_{numa_init|scan_nodes}() arguments and return values\n\nThe functions used during NUMA initialization - *_numa_init() and\n*_scan_nodes() - have different arguments and return values.  Unify\nthem such that they all take no argument and return 0 on success and\n-errno on failure.  This is in preparation for further NUMA init\ncleanups.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "86ef4dbf1f736bb1a4d567e043e3dd81b8b7860c",
      "tree": "2e9663ee508b410908b3c90eb84d2161072e22d3",
      "parents": [
        "13081df5dd6eae1951a3c398fa17d3ed2037a78f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86, NUMA: Drop @start/last_pfn from initmem_init()\n\ninitmem_init() extensively accesses and modifies global data\nstructures and the parameters aren\u0027t even followed depending on which\npath is being used.  Drop @start/last_pfn and let it deal with\n@max_pfn directly.  This is in preparation for further NUMA init\ncleanups.\n\n- v2: x86-32 initmem_init() weren\u0027t updated breaking 32bit builds.\n  Fixed.  Found by Yinghai.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "13081df5dd6eae1951a3c398fa17d3ed2037a78f",
      "tree": "4819da277060fff69ea7bfa13154f4648b34d477",
      "parents": [
        "7d36b7bc9022f35f95cd85cdf441846298e8f9fb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86-64, NUMA: Simplify hotplug node handling in acpi_numa_memory_affinity_init()\n\nHotplug node handling in acpi_numa_memory_affinity_init() was\nunnecessarily complicated with storing the original nodes[] entry and\nrestoring it afterwards.  Simplify it by not modifying the nodes[]\nentry for hotplug nodes from the beginning.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "7d36b7bc9022f35f95cd85cdf441846298e8f9fb",
      "tree": "2c359e138a9bfaf608babe62fde595fb5becc1e0",
      "parents": [
        "275a88d3cf0e2f08a98dc5ce9494af0cb6ed2092"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 12:13:06 2011 +0100"
      },
      "message": "x86-64, NUMA: Make dummy node initialization path similar to non-dummy ones\n\nDummy node initialization in initmem_init() didn\u0027t initialize apicid\nto node mapping and set cpu to node mapping directly by caling\nnuma_set_node(), which is different from non-dummy init paths.\n\nUpdate it such that they behave similarly.  Initialize apicid to node\nmapping and call numa_init_array().  The actual cpu to node mapping is\nhandled by init_cpu_to_node() later.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "275a88d3cf0e2f08a98dc5ce9494af0cb6ed2092",
      "tree": "785ce29ec09904fbde73c63e3aeadaf6537752a5",
      "parents": [
        "52b8b8d7251f8f7b8ed4a6c623618106d83e18b5",
        "9e81509efc4fefcdd75cc6a4121672fa71ae8745"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:45:33 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:45:47 2011 +0100"
      },
      "message": "Merge branch \u0027x86/amd-nb\u0027 into x86/mm\n\nMerge reason: consolidate it into the more generic x86/mm tree to prevent conflicts\n              with ongoing NUMA work.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52b8b8d7251f8f7b8ed4a6c623618106d83e18b5",
      "tree": "13ee81932cba73deb69cd3f386d80e45e6ac23de",
      "parents": [
        "02ac81a812fe0575a8475a93bdc22fb291ebad91",
        "14392fd329eca9b59d51c0aa5d0acfb4965424d1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:44:04 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:44:15 2011 +0100"
      },
      "message": "Merge branch \u0027x86/numa\u0027 into x86/mm\n\nMerge reason: consolidate it into the more generic x86/mm tree to prevent conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02ac81a812fe0575a8475a93bdc22fb291ebad91",
      "tree": "690f1b48b070f5e268d51c54b63943dc3b807e50",
      "parents": [
        "9a6d44b9adb777ca9549e88cd55bd8f2673c52a2",
        "d2137d5af4259f50c19addb8246a186c9ffac325"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:42:50 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 09:43:54 2011 +0100"
      },
      "message": "Merge branch \u0027x86/bootmem\u0027 into x86/mm\n\nMerge reason: the topic is ready - consolidate it into the more generic x86/mm tree\n              and prevent conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e81509efc4fefcdd75cc6a4121672fa71ae8745",
      "tree": "49326656ff61876e62cda0712b41ef99643af5cd",
      "parents": [
        "691269f0d918cd72454c254f97722f194c07b9a8"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bp@amd64.org",
        "time": "Mon Feb 14 18:14:51 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 15 03:03:19 2011 +0100"
      },
      "message": "x86, amd: Initialize variable properly\n\nCommit d518573de63f (\"x86, amd: Normalize compute unit IDs on\nmulti-node processors\") introduced compute unit normalization\nbut causes a compiler warning:\n\n arch/x86/kernel/cpu/amd.c: In function \u0027amd_detect_cmp\u0027:\n arch/x86/kernel/cpu/amd.c:268: warning: \u0027cores_per_cu\u0027 may be used uninitialized in this function\n arch/x86/kernel/cpu/amd.c:268: note: \u0027cores_per_cu\u0027 was declared here\n\nThe compiler is right - initialize it with a proper value.\n\nAlso, fix up a comment while at it.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nLKML-Reference: \u003c20110214171451.GB10076@kryptos.osrc.amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14392fd329eca9b59d51c0aa5d0acfb4965424d1",
      "tree": "8008ec19841352f00ef82cdd338bae1fd5088245",
      "parents": [
        "b366801c95bdbeda811ac9668a3943051a18c188"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Feb 07 14:08:53 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:29:27 2011 +0100"
      },
      "message": "x86, numa: Add error handling for bad cpu-to-node mappings\n\nCONFIG_DEBUG_PER_CPU_MAPS may return NUMA_NO_NODE when an\nearly_cpu_to_node() mapping hasn\u0027t been initialized.  In such a\ncase, it emits a warning and continues without an issue but\ncallers may try to use the return value to index into an array.\n\nWe can catch those errors and fail silently since a warning has\nalready been emitted.  No current user of numa_add_cpu()\nrequires this error checking to avoid a crash, but it\u0027s better\nto be proactive in case a future user happens to have a bug and\na user tries to diagnose it with CONFIG_DEBUG_PER_CPU_MAPS.\n\nReported-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003calpine.DEB.2.00.1102071407250.7812@chino.kir.corp.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b366801c95bdbeda811ac9668a3943051a18c188",
      "tree": "79f08da2ad33a3159e67df344a4c411c88da7db6",
      "parents": [
        "eff9073790e1286aa12bf1c65814d3e0132b12e1",
        "100b33c8bd8a3235fd0b7948338d6cbb3db3c63d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:28:29 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:28:31 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.38-rc4\u0027 into x86/numa\n\nMerge reason: Merge latest fixes before applying new patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a6d44b9adb777ca9549e88cd55bd8f2673c52a2",
      "tree": "c399dfe451b324fc5164b76e3eb7faf446e2b811",
      "parents": [
        "77eed821accf5dd962b1f13bed0680e217e49112"
      ],
      "author": {
        "name": "Kamal Mostafa",
        "email": "kamal@canonical.com",
        "time": "Thu Feb 03 17:38:05 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:15:43 2011 +0100"
      },
      "message": "x86: Emit \"mem\u003dnopentium ignored\" warning when not supported\n\nEmit warning when \"mem\u003dnopentium\" is specified on any arch other\nthan x86_32 (the only that arch supports it).\n\nSigned-off-by: Kamal Mostafa \u003ckamal@canonical.com\u003e\nBugLink: http://bugs.launchpad.net/bugs/553464\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nLKML-Reference: \u003c1296783486-23033-2-git-send-email-kamal@canonical.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "77eed821accf5dd962b1f13bed0680e217e49112",
      "tree": "c5df18c70df04a4265b2998b42a9394a2d453d24",
      "parents": [
        "7064d865af804b9b841e7b9a3e9b653e40c3e5ca"
      ],
      "author": {
        "name": "Kamal Mostafa",
        "email": "kamal@canonical.com",
        "time": "Thu Feb 03 17:38:04 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:15:43 2011 +0100"
      },
      "message": "x86: Fix panic when handling \"mem\u003d{invalid}\" param\n\nAvoid removing all of memory and panicing when \"mem\u003d{invalid}\"\nis specified, e.g. mem\u003dblahblah, mem\u003d0, or mem\u003dnopentium (on\nplatforms other than x86_32).\n\nSigned-off-by: Kamal Mostafa \u003ckamal@canonical.com\u003e\nBugLink: http://bugs.launchpad.net/bugs/553464\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: \u003cstable@kernel.org\u003e # .3x: as far back as it applies\nLKML-Reference: \u003c1296783486-23033-1-git-send-email-kamal@canonical.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7064d865af804b9b841e7b9a3e9b653e40c3e5ca",
      "tree": "7f4afcd7f3d9a767fe232b5455a8550c418c2898",
      "parents": [
        "70e4a369733a21e3d16b059a6ccdad22a344bf57"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jan 17 10:52:10 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:03:08 2011 +0100"
      },
      "message": "x86: Avoid tlbstate lock if not enough cpus\n\nThis one isn\u0027t related to previous patch. If online cpus are\nbelow NUM_INVALIDATE_TLB_VECTORS, we don\u0027t need the lock. The\ncomments in the code declares we don\u0027t need the check, but a hot\nlock still needs an atomic operation and expensive, so add the\ncheck here.\n\nUses nr_cpu_ids here as suggested by Eric Dumazet.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nLKML-Reference: \u003c1295232730.1949.710.camel@sli10-conroe\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70e4a369733a21e3d16b059a6ccdad22a344bf57",
      "tree": "bb103a7ea3199320dc0b7e5fdf69fe594b863e05",
      "parents": [
        "3a09fb4570a1cce11472b8e5da3f6ee409f529d5"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jan 17 10:52:07 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:03:08 2011 +0100"
      },
      "message": "x86: Scale up the number of TLB invalidate vectors with NR_CPUs, up to 32\n\nMake the maxium TLB invalidate vectors depend on NR_CPUS linearly,\nwith a maximum of 32 vectors.\n\nWe currently only have 8 vectors for TLB invalidation and that is clearly\ninadequate. If we have a lot of CPUs, the CPUs need share the 8 vectors and\ntlbstate_lock is used to protect them. flush_tlb_page() is\nheavily used in page reclaim, which will cause a lot of lock\ncontention for tlbstate_lock.\n\nAndi Kleen suggested increasing the vectors number to 32, which should be\ngood for current typical systems to reduce the tlbstate_lock contention.\n\nMy test system has 4 sockets and 64G memory, and 64 CPUs. My\nworkload creates 64 processes. Each process mmap reads a big\nempty sparse file. The total size of the files are 2*total_mem,\nso this will cause a lot of page reclaim.\n\nBelow is the result I get from perf call-graph profiling:\n\n without the patch:\n ------------------\n\n    24.25%           usemem  [kernel]                                   [k] _raw_spin_lock\n                     |\n                     --- _raw_spin_lock\n                        |\n                        |--42.15%-- native_flush_tlb_others\n\n with the patch:\n ------------------\n\n    14.96%           usemem  [kernel]                                   [k] _raw_spin_lock\n                     |\n                     --- _raw_spin_lock\n                        |--13.89%-- native_flush_tlb_others\n\nSo this heavily reduces the tlbstate_lock contention.\n\nSuggested-by: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1295232727.1949.709.camel@sli10-conroe\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3a09fb4570a1cce11472b8e5da3f6ee409f529d5",
      "tree": "494c47eea548eb03465278467877ab2b64057883",
      "parents": [
        "60f6e65d7887c257392313755f95540ef5e7ea89"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jan 17 10:52:05 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:03:08 2011 +0100"
      },
      "message": "x86: Allocate 32 tlb_invalidate_interrupt handler stubs\n\nAdd up to 32 invalidate_interrupt handlers. How many handlers are\nadded depends on NUM_INVALIDATE_TLB_VECTORS. So if\nNUM_INVALIDATE_TLB_VECTORS is smaller than 32, we reduce code\nsize.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nLKML-Reference: \u003c1295232725.1949.708.camel@sli10-conroe\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60f6e65d7887c257392313755f95540ef5e7ea89",
      "tree": "05d6a971f8e2ee639172a434deaa3bea502185cc",
      "parents": [
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jan 17 10:52:02 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 13:03:07 2011 +0100"
      },
      "message": "x86: Cleanup vector usage\n\nCleanup the vector usage and make them continuous if possible.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nLKML-Reference: \u003c1295232722.1949.707.camel@sli10-conroe\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d2137d5af4259f50c19addb8246a186c9ffac325",
      "tree": "2f7e309f9cf8ef2f2698532c226edda38021fe69",
      "parents": [
        "f005fe12b90c5b9fe180a09209a893e09affa8aa",
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 11:55:18 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 14 11:55:18 2011 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/bootmem\n\nConflicts:\n\tarch/x86/mm/numa_64.c\n\nMerge reason: fix the conflict, update to latest -rc and pick up this\n              dependent fix from Yinghai:\n\n  e6d2e2b2b1e1: memblock: don\u0027t adjust size in memblock_find_base()\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505",
      "tree": "ae7273f0234c3fc3847626266080d8cfdb072c52",
      "parents": [
        "091994cfb8e7d7a372c2d547778a91012d899e16"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 13 16:37:07 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 16:54:24 2011 -0800"
      },
      "message": "klist: Fix object alignment on 64-bit.\n\nCommit c0e69a5bbc6f (\"klist.c: bit 0 in pointer can\u0027t be used as flag\")\nintended to make sure that all klist objects were at least pointer size\naligned, but used the constant \"4\" which only works on 32-bit.\n\nUse \"sizeof(void *)\" which is correct in all cases.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "091994cfb8e7d7a372c2d547778a91012d899e16",
      "tree": "71c6d214f9287bb61d24345a93b60579937a711b",
      "parents": [
        "d8ed516f82f0f4cda11282450512310ab273637e",
        "c170093d31bd4e3bc51881cc0f123beeca7872c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:59:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:59:48 2011 -0800"
      },
      "message": "Merge branch \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  devicetree-discuss is moderated for non-subscribers\n  MAINTAINERS: Add entry for GPIO subsystem\n  dt: add documentation of ARM dt boot interface\n  dt: Remove obsolete description of powerpc boot interface\n  dt: Move device tree documentation out of powerpc directory\n  spi/spi_sh_msiof: fix wrong address calculation, which leads to an Oops\n"
    },
    {
      "commit": "d8ed516f82f0f4cda11282450512310ab273637e",
      "tree": "1a7fca8ce0280712a9dd72c7bf1b4e3d9983355a",
      "parents": [
        "f00eaeea7a42b5ea327e9ce8839cb0b53d3bdb4e",
        "61461241187c9903382f98620b26b201df521c82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:58:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:58:50 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: hda - add quirk for Ordissimo EVE using a realtek ALC662\n  ALSA: hrtimer: remove superfluous tasklet invocation\n  ALSA: hrtimer: handle delayed timer interrupts\n  ALSA: HDA: Add subwoofer quirk for Acer Aspire 8942G\n  ALSA: hda - Don\u0027t handle empty patch files\n  ALSA: hda - Fix missing CA initialization for HDMI/DP\n  ALSA: usbaudio - Enable the E-MU 0204 USB\n  ALSA: hda - switch lfe with side in mixer for 4930g\n  ASoC: Improve WM8994 digital power sequencing\n  ASoC: Create an AIF1ADCDAT signal widget to match AIF2\n  asoc: davinci: da830/omap-l137: correct cpu_dai_name\n  ASoC: fill in snd_soc_pcm_runtime.card before calling snd_soc_dai_link.init()\n"
    },
    {
      "commit": "f00eaeea7a42b5ea327e9ce8839cb0b53d3bdb4e",
      "tree": "9c87581db9131af941027f34f7504c61e632d392",
      "parents": [
        "a0dc00b430b7f515904aa6dd62296b577e94c7aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:50:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 13 07:50:50 2011 -0800"
      },
      "message": "Revert \"pci: use security_capable() when checking capablities during config space read\"\n\nThis reverts commit 47970b1b2aa64464bc0a9543e86361a622ae7c03.\n\nIt turns out it breaks several distributions.  Looks like the stricter\nselinux checks fail due to selinux policies not being set to allow the\naccess - breaking X, but also lspci.\n\nSo while the change was clearly the RightThing(tm) to do in theory, in\npractice we have backwards compatibility issues making it not work.\n\nReported-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nAcked-by: David Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Alex Riesen \u003craa.lkml@gmail.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61461241187c9903382f98620b26b201df521c82",
      "tree": "53212cb4c0f07eedac18aeda6e6b8eac61dfd082",
      "parents": [
        "965b76d23ea354848dea8d34059d04e150dcd464",
        "6ed8f1485fc82d44ac464bc84a7dcdddd1fa096f"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Feb 13 10:05:30 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Feb 13 10:05:30 2011 +0100"
      },
      "message": "Merge branch \u0027fix/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "c170093d31bd4e3bc51881cc0f123beeca7872c9",
      "tree": "d93cd280d525dd339f33be010c75b7fd0bacd690",
      "parents": [
        "557218e2d662574bc58d840fe116c7fd8d57aed8",
        "78bba987bc025a7263248501b453476e77b93331"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 23:53:34 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 23:53:34 2011 -0700"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 into spi/merge\n"
    },
    {
      "commit": "78bba987bc025a7263248501b453476e77b93331",
      "tree": "e49b1ac3c40ca1f8ba5ae024e7b7ec174bbca4c8",
      "parents": [
        "9830fcd6f6a4781d8b46d2b35c13b39f30915c63"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Sat Feb 12 12:33:59 2011 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 23:27:23 2011 -0700"
      },
      "message": "devicetree-discuss is moderated for non-subscribers\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "a0dc00b430b7f515904aa6dd62296b577e94c7aa",
      "tree": "9622c00efe5b8533802d7a5d313abc4337b904b0",
      "parents": [
        "c8e0b00ed1f4e01978601fd66180d6a1c22e8f8f"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 01:48:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 12 09:46:30 2011 -0800"
      },
      "message": "MAINTAINERS: Add entry for GPIO subsystem\n\nI\u0027ll probably regret this....\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8e0b00ed1f4e01978601fd66180d6a1c22e8f8f",
      "tree": "948b3aa9e6ad9b12eda746bfe6820acd4fee1ef2",
      "parents": [
        "3c6c0d6ca386fe7a8e44e887a51f333c2499c829",
        "e44718318004a5618d1dfe2d080e2862532d8e5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 12 09:10:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 12 09:10:24 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  jbd2: call __jbd2_log_start_commit with j_state_lock write locked\n  ext4: serialize unaligned asynchronous DIO\n  ext4: make grpinfo slab cache names static\n  ext4: Fix data corruption with multi-block writepages support\n  ext4: fix up ext4 error handling\n  ext4: unregister features interface on module unload\n  ext4: fix panic on module unload when stopping lazyinit thread\n"
    },
    {
      "commit": "e44718318004a5618d1dfe2d080e2862532d8e5f",
      "tree": "c1a6af07da3184f5785a62062510ac8e86b8050a",
      "parents": [
        "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:18:24 2011 -0500"
      },
      "message": "jbd2: call __jbd2_log_start_commit with j_state_lock write locked\n\nOn an SMP ARM system running ext4, I\u0027ve received a report that the\nfirst J_ASSERT in jbd2_journal_commit_transaction has been triggering:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nWhile investigating possible causes for this problem, I noticed that\n__jbd2_log_start_commit() is getting called with j_state_lock only\nread-locked, in spite of the fact that it\u0027s possible for it might\nj_commit_request.  Fix this by grabbing the necessary information so\nwe can test to see if we need to start a new transaction before\ndropping the read lock, and then calling jbd2_log_start_commit() which\nwill grab the write lock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d",
      "tree": "9f347a48889a00071dbe1f12be4c50ec7a45542b",
      "parents": [
        "2892c15ddda6a76dc10b7499e56c0f3b892e5a69"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "message": "ext4: serialize unaligned asynchronous DIO\n\next4 has a data corruption case when doing non-block-aligned\nasynchronous direct IO into a sparse file, as demonstrated\nby xfstest 240.\n\nThe root cause is that while ext4 preallocates space in the\nhole, mappings of that space still look \"new\" and \ndio_zero_block() will zero out the unwritten portions.  When\nmore than one AIO thread is going, they both find this \"new\"\nblock and race to zero out their portion; this is uncoordinated\nand causes data corruption.\n\nDave Chinner fixed this for xfs by simply serializing all\nunaligned asynchronous direct IO.  I\u0027ve done the same here.\nThe difference is that we only wait on conversions, not all IO.\nThis is a very big hammer, and I\u0027m not very pleased with\nstuffing this into ext4_file_write().  But since ext4 is\nDIO_LOCKING, we need to serialize it at this high level.\n\nI tried to move this into ext4_ext_direct_IO, but by then\nwe have the i_mutex already, and we will wait on the\nwork queue to do conversions - which must also take the\ni_mutex.  So that won\u0027t work.\n\nThis was originally exposed by qemu-kvm installing to\na raw disk image with a normal sector-63 alignment.  I\u0027ve\ntested a backport of this patch with qemu, and it does\navoid the corruption.  It is also quite a lot slower\n(14 min for package installs, vs. 8 min for well-aligned)\nbut I\u0027ll take slow correctness over fast corruption any day.\n\nMingming suggested that we can track outstanding\nconversions, and wait on those so that non-sparse\nfiles won\u0027t be affected, and I\u0027ve implemented that here;\nunaligned AIO to nonsparse files won\u0027t take a perf hit.\n\n[tytso@mit.edu: Keep the mutex as a hashed array instead\n of bloating the ext4 inode]\n\n[tytso@mit.edu: Fix up namespace issues so that global\n variables are protected with an \"ext4_\" prefix.]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2892c15ddda6a76dc10b7499e56c0f3b892e5a69",
      "tree": "bd2aa2add525d91991975e5678ef5bfe9175bdd8",
      "parents": [
        "d50bdd5aa55127635fd8a5c74bd2abb256bd34e3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 12 08:12:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:12:18 2011 -0500"
      },
      "message": "ext4: make grpinfo slab cache names static\n\nIn 2.6.37 I was running into oopses with repeated module\nloads \u0026 unloads.  I tracked this down to:\n\nfb1813f4 ext4: use dedicated slab caches for group_info structures\n\n(this was in addition to the features advert unload problem)\n\nThe kstrdup \u0026 subsequent kfree of the cache name was causing\na double free.  In slub, at least, if I read it right it allocates\n\u0026 frees the name itself, slab seems to do something different...\nso in slub I think we were leaking -our- cachep-\u003ename, and double\nfreeing the one allocated by slub.\n\nAfter getting lost in slab/slub/slob a bit, I just looked at other\nsized-caches that get allocated.  jbd2, biovec, sgpool all do it\nmore or less the way jbd2 does.  Below patch follows the jbd2\nmethod of dynamically allocating a cache at mount time from\na list of static names.\n\n(This might also possibly fix a race creating the caches with\nparallel mounts running).\n\n[Folded in a fix from Dan Carpenter which fixed an off-by-one error in\nthe original patch]\n\nCc: stable@kernel.org\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "557218e2d662574bc58d840fe116c7fd8d57aed8",
      "tree": "151b69a9e4d4137c97ac23a5ec5e28a00a64d53d",
      "parents": [
        "8a6afb9a950de01457a4267bcbe3292e56412326"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 01:45:55 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Feb 12 01:45:55 2011 -0700"
      },
      "message": "MAINTAINERS: Add entry for GPIO subsystem\n\nI\u0027ll probably regret this....\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "3c6c0d6ca386fe7a8e44e887a51f333c2499c829",
      "tree": "d502ba0de5d3dacb5098d677734fe2ccabd6b113",
      "parents": [
        "5b49378ec105dc104fc480fa7f4a80d77dd1360a",
        "893a5ab6ee7d51b231ed45aa844f8088642cb6bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:30:09 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:30:09 2011 -0800"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.38\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.38\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: SVM: Make sure KERNEL_GS_BASE is valid when loading gs_index\n"
    },
    {
      "commit": "5b49378ec105dc104fc480fa7f4a80d77dd1360a",
      "tree": "5c112549fe87965aa588861195bc3335896d6d20",
      "parents": [
        "d40b0c348213c8259ef1aca6e71d260ad65f5da8",
        "4d7963648f1666ce10cb52391682589af5a62f9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:30:05 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:30:05 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:\n  amd64_edac: Fix DIMMs per DCTs output\n"
    },
    {
      "commit": "d40b0c348213c8259ef1aca6e71d260ad65f5da8",
      "tree": "df8e5576d271542d31c48127691280d0e4359f78",
      "parents": [
        "3aec46c1e0be28ead67f53c2cade6453a7fba6e6",
        "6b155c8fd4d239f7d883d455bbad1be47724bbfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:29:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:29:57 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: use single thread workqueues\n"
    },
    {
      "commit": "3aec46c1e0be28ead67f53c2cade6453a7fba6e6",
      "tree": "71e697fb2639013d394c2580669daf10319b4f29",
      "parents": [
        "68c3d4b26623e92656588061405d9dbdf97c0706",
        "71823baff1978be892e7a36eddf6170e1cc6650d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:29:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:29:50 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: don\u0027t always drop malformed replies on the floor (try #3)\n  cifs: clean up checks in cifs_echo_request\n  [CIFS] Do not send SMBEcho requests on new sockets until SMBNegotiate\n"
    },
    {
      "commit": "68c3d4b26623e92656588061405d9dbdf97c0706",
      "tree": "ba48630d57d631b6cef22f48ab8581167d46f425",
      "parents": [
        "f7909fb83550573300e72d120a7d97c9f6b53a65",
        "bcf721d14d881da86a8defa96bdc9492abe191ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:16:25 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:16:25 2011 -0800"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:\n  hwmon: (emc1403) Fix I2C address range\n  hwmon: (lm63) Consider LM64 temperature offset\n"
    },
    {
      "commit": "f7909fb83550573300e72d120a7d97c9f6b53a65",
      "tree": "20810edd4c137ce011b1ef7b751440a15d4088b7",
      "parents": [
        "c41d40b53306434628b577715487810816fca885",
        "47970b1b2aa64464bc0a9543e86361a622ae7c03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:16:03 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:16:03 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  pci: use security_capable() when checking capablities during config space read\n  security: add cred argument to security_capable()\n  tpm_tis: Use timeouts returned from TPM\n"
    },
    {
      "commit": "c41d40b53306434628b577715487810816fca885",
      "tree": "83d0caf3cd2667f61d87aba6bf6e92857795e05d",
      "parents": [
        "a288465fa86731108c0ee590da505abe65480473",
        "a09e2b21cab92e98728c16f0e6f456f723dadf8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:15:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:15:15 2011 -0800"
      },
      "message": "Merge branch \u0027s5p-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung\n\n* \u0027s5p-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:\n  ARM: SAMSUNG: Ensure struct sys_device is declared in plat/pm.h\n  ARM: S5PV310: Cleanup System MMU\n  ARM: S5PV310: Add support System MMU on SMDKV310\n"
    },
    {
      "commit": "a288465fa86731108c0ee590da505abe65480473",
      "tree": "fb3ea0025fa4084dc7a5762a783f635affe39d5e",
      "parents": [
        "80d02d273641d515269c016d9e8da5882e4432e4",
        "0eb6aaf52965c14ba3ea245448c4806cfcd1d18c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:13:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:13:53 2011 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze\n\n* \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze:\n  microblaze: Fix msr instruction detection\n  microblaze: Fix pte_update function\n  microblaze: Fix asm compilation warning\n  microblaze: Fix IRQ flag handling for MSR\u003d0\n"
    },
    {
      "commit": "80d02d273641d515269c016d9e8da5882e4432e4",
      "tree": "48775b39bc9edfea0377d604f928912e3bc289fd",
      "parents": [
        "678ff896a37afdbca292c7846ec895463aed35a5"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Feb 10 15:01:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "drivers/w1/masters/omap_hdq.c: add missing clk_put\n\nThis code makes two calls to clk_get, then test both return values and\nfails if either failed.\n\nThe problem is that in the first inner if, where the first call to\nclk_get has failed, it don\u0027t know if the second call has failed as well.\nSo it don\u0027t know whether clk_get should be called on the result of the\nsecond call.  Of course, it would be possible to test that value again.\nA simpler solution is just to test the result of calling clk_get\ndirectly after each call.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r@\nposition p1,p2;\nexpression e;\nstatement S;\n@@\n\ne \u003d clk_get@p1(...)\n...\nif@p2 (IS_ERR(e)) S\n\n@@\nexpression e;\nstatement S;\nidentifier l;\nposition r.p1, p2 !\u003d r.p2;\n@@\n\n*e \u003d clk_get@p1(...)\n... when !\u003d clk_put(e)\n*if@p2 (...)\n{\n  ... when !\u003d clk_put(e)\n* return ...;\n}// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nAcked-by: Tony Lindgren \u003ctony@atomide.com\u003e\nAcked-by: Amit Kucheria \u003camit.kucheria@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "678ff896a37afdbca292c7846ec895463aed35a5",
      "tree": "40c25f8195b5291938bde28030c5c7440e504d31",
      "parents": [
        "f0fdc5e8e6f579310458aef43d1610a0bb5e81a4"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 10 15:01:36 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "memcg: fix leak of accounting at failure path of hugepage collapsing\n\nmem_cgroup_uncharge_page() should be called in all failure cases after\nmem_cgroup_charge_newpage() is called in huge_memory.c::collapse_huge_page()\n\n [ 4209.076861] BUG: Bad page state in process khugepaged  pfn:1e9800\n [ 4209.077601] page:ffffea0006b14000 count:0 mapcount:0 mapping:          (null) index:0x2800\n [ 4209.078674] page flags: 0x40000000004000(head)\n [ 4209.079294] pc:ffff880214a30000 pc-\u003eflags:2146246697418756 pc-\u003emem_cgroup:ffffc9000177a000\n [ 4209.082177] (/A)\n [ 4209.082500] Pid: 31, comm: khugepaged Not tainted 2.6.38-rc3-mm1 #1\n [ 4209.083412] Call Trace:\n [ 4209.083678]  [\u003cffffffff810f4454\u003e] ? bad_page+0xe4/0x140\n [ 4209.084240]  [\u003cffffffff810f53e6\u003e] ? free_pages_prepare+0xd6/0x120\n [ 4209.084837]  [\u003cffffffff8155621d\u003e] ? rwsem_down_failed_common+0xbd/0x150\n [ 4209.085509]  [\u003cffffffff810f5462\u003e] ? __free_pages_ok+0x32/0xe0\n [ 4209.086110]  [\u003cffffffff810f552b\u003e] ? free_compound_page+0x1b/0x20\n [ 4209.086699]  [\u003cffffffff810fad6c\u003e] ? __put_compound_page+0x1c/0x30\n [ 4209.087333]  [\u003cffffffff810fae1d\u003e] ? put_compound_page+0x4d/0x200\n [ 4209.087935]  [\u003cffffffff810fb015\u003e] ? put_page+0x45/0x50\n [ 4209.097361]  [\u003cffffffff8113f779\u003e] ? khugepaged+0x9e9/0x1430\n [ 4209.098364]  [\u003cffffffff8107c870\u003e] ? autoremove_wake_function+0x0/0x40\n [ 4209.099121]  [\u003cffffffff8113ed90\u003e] ? khugepaged+0x0/0x1430\n [ 4209.099780]  [\u003cffffffff8107c236\u003e] ? kthread+0x96/0xa0\n [ 4209.100452]  [\u003cffffffff8100dda4\u003e] ? kernel_thread_helper+0x4/0x10\n [ 4209.101214]  [\u003cffffffff8107c1a0\u003e] ? kthread+0x0/0xa0\n [ 4209.101842]  [\u003cffffffff8100dda0\u003e] ? kernel_thread_helper+0x0/0x10\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0fdc5e8e6f579310458aef43d1610a0bb5e81a4",
      "tree": "c3f9de434bf9065d2f1d7a5f4214f28efb4920c4",
      "parents": [
        "419d8c96dbfa558f00e623023917d0a5afc46129"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Feb 10 15:01:34 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "vmscan: fix zone shrinking exit when scan work is done\n\nCommit 3e7d34497067 (\"mm: vmscan: reclaim order-0 and use compaction\ninstead of lumpy reclaim\") introduced an indefinite loop in\nshrink_zone().\n\nIt meant to break out of this loop when no pages had been reclaimed and\nnot a single page was even scanned.  The way it would detect the latter\nis by taking a snapshot of sc-\u003enr_scanned at the beginning of the\nfunction and comparing it against the new sc-\u003enr_scanned after the scan\nloop.  But it would re-iterate without updating that snapshot, looping\nforever if sc-\u003enr_scanned changed at least once since shrink_zone() was\ninvoked.\n\nThis is not the sole condition that would exit that loop, but it\nrequires other processes to change the zone state, as the reclaimer that\nis stuck obviously can not anymore.\n\nThis is only happening for higher-order allocations, where reclaim is\nrun back to back with compaction.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Kent Overstreet\u003ckent.overstreet@gmail.com\u003e\nReported-by: Kent Overstreet \u003ckent.overstreet@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "419d8c96dbfa558f00e623023917d0a5afc46129",
      "tree": "74882b1ed7340d3d0e448b343c52fd12969ea518",
      "parents": [
        "e15f8c01af924e611bc7be1e45449c4a74e5dfdd"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Thu Feb 10 15:01:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "mlock: do not munlock pages in __do_fault()\n\nIf the page is going to be written to, __do_page needs to break COW.\n\nHowever, the old page (before breaking COW) was never mapped mapped into\nthe current pte (__do_fault is only called when the pte is not present),\nso vmscan can\u0027t have marked the old page as PageMlocked due to being\nmapped in __do_fault\u0027s VMA.  Therefore, __do_fault() does not need to\nworry about clearing PageMlocked() on the old page.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e15f8c01af924e611bc7be1e45449c4a74e5dfdd",
      "tree": "7319b3d6834707996b16fd8d13ab745ad9b13a91",
      "parents": [
        "e6d2e2b2b1e1455df16d68a78f4a3874c7b3ad20"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Thu Feb 10 15:01:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "mlock: fix race when munlocking pages in do_wp_page()\n\nvmscan can lazily find pages that are mapped within VM_LOCKED vmas, and\nset the PageMlocked bit on these pages, transfering them onto the\nunevictable list.  When do_wp_page() breaks COW within a VM_LOCKED vma,\nit may need to clear PageMlocked on the old page and set it on the new\npage instead.\n\nThis change fixes an issue where do_wp_page() was clearing PageMlocked\non the old page while the pte was still pointing to it (as well as\nrmap).  Therefore, we were not protected against vmscan immediately\ntransfering the old page back onto the unevictable list.  This could\ncause pages to get stranded there forever.\n\nI propose to move the corresponding code to the end of do_wp_page(),\nafter the pte (and rmap) have been pointed to the new page.\nAdditionally, we can use munlock_vma_page() instead of\nclear_page_mlock(), so that the old page stays mlocked if there are\nstill other VM_LOCKED vmas mapping it.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6d2e2b2b1e1455df16d68a78f4a3874c7b3ad20",
      "tree": "1e7ebb055743db7638269a55b890d41de2b799ae",
      "parents": [
        "de1f016f882e52facc3c8609599f827bcdd14af9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 10 15:01:30 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "memblock: don\u0027t adjust size in memblock_find_base()\n\nWhile applying patch to use memblock to find aperture for 64bit x86.\nIngo found system with 1g + force_iommu\n\n\u003e No AGP bridge found\n\u003e Node 0: aperture @ 38000000 size 32 MB\n\u003e Aperture pointing to e820 RAM. Ignoring.\n\u003e Your BIOS doesn\u0027t leave a aperture memory hole\n\u003e Please enable the IOMMU option in the BIOS setup\n\u003e This costs you 64 MB of RAM\n\u003e Cannot allocate aperture memory hole (0,65536K)\n\nthe corresponding code:\n\n\taddr \u003d memblock_find_in_range(0, 1ULL\u003c\u003c32, aper_size, 512ULL\u003c\u003c20);\n\tif (addr \u003d\u003d MEMBLOCK_ERROR || addr + aper_size \u003e 0xffffffff) {\n\t\tprintk(KERN_ERR\n\t\t\t\"Cannot allocate aperture memory hole (%lx,%uK)\\n\",\n\t\t\t\taddr, aper_size\u003e\u003e10);\n\t\treturn 0;\n\t}\n\tmemblock_x86_reserve_range(addr, addr + aper_size, \"aperture64\")\n\nfails because memblock core code align the size with 512M.  That could\nmake size way too big.\n\nSo don\u0027t align the size in that case.\n\nactually __memblock_alloc_base, the another caller already align that\nbefore calling that function.\n\nBTW. x86 does not use __memblock_alloc_base...\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de1f016f882e52facc3c8609599f827bcdd14af9",
      "tree": "0c542e3069eeb7920afaf659c46a86eeffa67fef",
      "parents": [
        "24a6f5b8589d2abfbf523c59ab1258726edc164f"
      ],
      "author": {
        "name": "Soren Hansen",
        "email": "soren@linux2go.dk",
        "time": "Thu Feb 10 15:01:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "nbd: remove module-level ioctl mutex\n\nCommit 2a48fc0ab242417 (\"block: autoconvert trivial BKL users to private\nmutex\") replaced uses of the BKL in the nbd driver with mutex\noperations.  Since then, I\u0027ve been been seeing these lock ups:\n\n INFO: task qemu-nbd:16115 blocked for more than 120 seconds.\n \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n qemu-nbd      D 0000000000000001     0 16115  16114 0x00000004\n  ffff88007d775d98 0000000000000082 ffff88007d775fd8 ffff88007d774000\n  0000000000013a80 ffff8800020347e0 ffff88007d775fd8 0000000000013a80\n  ffff880133730000 ffff880002034440 ffffea0004333db8 ffffffffa071c020\n Call Trace:\n  [\u003cffffffff815b9997\u003e] __mutex_lock_slowpath+0xf7/0x180\n  [\u003cffffffff815b93eb\u003e] mutex_lock+0x2b/0x50\n  [\u003cffffffffa071a21c\u003e] nbd_ioctl+0x6c/0x1c0 [nbd]\n  [\u003cffffffff812cb970\u003e] blkdev_ioctl+0x230/0x730\n  [\u003cffffffff811967a1\u003e] block_ioctl+0x41/0x50\n  [\u003cffffffff81175c03\u003e] do_vfs_ioctl+0x93/0x370\n  [\u003cffffffff81175f61\u003e] sys_ioctl+0x81/0xa0\n  [\u003cffffffff8100c0c2\u003e] system_call_fastpath+0x16/0x1b\n\nInstrumenting the nbd module\u0027s ioctl handler with some extra logging\nclearly shows the NBD_DO_IT ioctl being invoked which is a long-lived\nioctl in the sense that it doesn\u0027t return until another ioctl asks the\ndriver to disconnect.  However, that other ioctl blocks, waiting for the\nmodule-level mutex that replaced the BKL, and then we\u0027re stuck.\n\nThis patch removes the module-level mutex altogether.  It\u0027s clearly\nwrong, and as far as I can see, it\u0027s entirely unnecessary, since the nbd\ndriver maintains per-device mutexes, and I don\u0027t see anything that would\nrequire a module-level (or kernel-level, for that matter) mutex.\n\nSigned-off-by: Soren Hansen \u003csoren@linux2go.dk\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.37.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24a6f5b8589d2abfbf523c59ab1258726edc164f",
      "tree": "a62ac7fff1761759f32783cd0b1bfbdda396757b",
      "parents": [
        "6e20fb18054c179d7e64c0af43d855b9310a3394"
      ],
      "author": {
        "name": "Alexander Strakh",
        "email": "cromlehg@gmail.com",
        "time": "Thu Feb 10 15:01:25 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "drivers/rtc/rtc-proc.c: add module_put on error path in rtc_proc_open()\n\nIn file drivers/rtc/rtc-proc.c seq_open() can return -ENOMEM.\n\n 86        if (!try_module_get(THIS_MODULE))\n 87                return -ENODEV;\n 88\n 89        return single_open(file, rtc_proc_show, rtc);\n\nIn this case before exiting (line 89) from rtc_proc_open the\nmodule_put(THIS_MODULE) must be called.\n\nFound by Linux Device Drivers Verification Project\n\nSigned-off-by: Alexander Strakh \u003cstrakh@ispras.ru\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e20fb18054c179d7e64c0af43d855b9310a3394",
      "tree": "7fe6eda33162dbeab61afc2392229b9c57a644f1",
      "parents": [
        "01e05e9a90b8f4c3997ae0537e87720eb475e532"
      ],
      "author": {
        "name": "Roland Stigge",
        "email": "stigge@antcom.de",
        "time": "Thu Feb 10 15:01:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "drivers/gpio/pca953x.c: add a mutex to fix race condition\n\nAdd a mutex to register communication and handling.  Without the mutex,\nGPIOs didn\u0027t switch as expected when toggled in a fast sequence of\nstatus changes of multiple outputs.\n\nSigned-off-by: Roland Stigge \u003cstigge@antcom.de\u003e\nAcked-by: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Marc Zyngier \u003cmaz@misterjones.org\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01e05e9a90b8f4c3997ae0537e87720eb475e532",
      "tree": "e5bace65224c8b026cfd06a28cd00c3f3a69a0c8",
      "parents": [
        "d863b50ab01333659314c2034890cb76d9fdc3c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 10 15:01:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:19 2011 -0800"
      },
      "message": "ptrace: use safer wake up on ptrace_detach()\n\nThe wake_up_process() call in ptrace_detach() is spurious and not\ninterlocked with the tracee state.  IOW, the tracee could be running or\nsleeping in any place in the kernel by the time wake_up_process() is\ncalled.  This can lead to the tracee waking up unexpectedly which can be\ndangerous.\n\nThe wake_up is spurious and should be removed but for now reduce its\ntoxicity by only waking up if the tracee is in TRACED or STOPPED state.\n\nThis bug can possibly be used as an attack vector.  I don\u0027t think it\nwill take too much effort to come up with an attack which triggers oops\nsomewhere.  Most sleeps are wrapped in condition test loops and should\nbe safe but we have quite a number of places where sleep and wakeup\nconditions are expected to be interlocked.  Although the window of\nopportunity is tiny, ptrace can be used by non-privileged users and with\nsome loading the window can definitely be extended and exploited.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d863b50ab01333659314c2034890cb76d9fdc3c7",
      "tree": "88d27ed4717bb49ba696f2efb5ef024388412af3",
      "parents": [
        "2dab597441667d6c04451a7dcf215241ad4c74f6"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Feb 10 15:01:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:19 2011 -0800"
      },
      "message": "vfs: call rcu_barrier after -\u003ekill_sb()\n\nIn commit fa0d7e3de6d6 (\"fs: icache RCU free inodes\"), we use rcu free\ninode instead of freeing the inode directly.  It causes a crash when we\nrmmod immediately after we umount the volume[1].\n\nSo we need to call rcu_barrier after we kill_sb so that the inode is\nfreed before we do rmmod.  The idea is inspired by Aneesh Kumar.\nrcu_barrier will wait for all callbacks to end before preceding.  The\noriginal patch was done by Tao Ma, but synchronize_rcu() is not enough\nhere.\n\n1. http://marc.info/?l\u003dlinux-fsdevel\u0026m\u003d129680863330185\u0026w\u003d2\n\nTested-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dab597441667d6c04451a7dcf215241ad4c74f6",
      "tree": "f56a6f7fcabf3a9b82a5e77ef9c96268224efbd1",
      "parents": [
        "d2478521afc20227658a10a8c5c2bf1a2aa615b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 15:53:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 15:53:38 2011 -0800"
      },
      "message": "Fix possible filp_cachep memory corruption\n\nIn commit 31e6b01f4183 (\"fs: rcu-walk for path lookup\") we started doing\npath lookup using RCU, which then falls back to a careful non-RCU lookup\nin case of problems (LOOKUP_REVAL).  So do_filp_open() has this \"re-do\nthe lookup carefully\" looping case.\n\nHowever, that means that we must not release the open-intent file data\nif we are going to loop around and use it once more!\n\nFix this by moving the release of the open-intent data to the function\nthat allocates it (do_filp_open() itself) rather than the helper\nfunctions that can get called multiple times (finish_open() and\ndo_last()).  This makes the logic for the lifetime of that field much\nmore obvious, and avoids the possible double free.\n\nReported-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b155c8fd4d239f7d883d455bbad1be47724bbfc",
      "tree": "31458f5bb3119220dcd50ce569cbba040e93ae21",
      "parents": [
        "d2478521afc20227658a10a8c5c2bf1a2aa615b3"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 11 16:44:31 2011 -0600"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Feb 11 16:50:47 2011 -0600"
      },
      "message": "dlm: use single thread workqueues\n\nThe recent commit to use cmwq for send and recv threads\ndcce240ead802d42b1e45ad2fcb2ed4a399cb255 introduced problems,\napparently due to multiple workqueue threads.  Single threads\nmake the problems go away, so return to that until we fully\nunderstand the concurrency issues with multiple threads.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "965b76d23ea354848dea8d34059d04e150dcd464",
      "tree": "bceec5ae277420c79e2739b29e47f893fb6cdc23",
      "parents": [
        "2243c4d0727ad85aff3f54be9d178632cc9234b2"
      ],
      "author": {
        "name": "Anisse Astier",
        "email": "anisse@astier.eu",
        "time": "Thu Feb 10 13:14:44 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Feb 11 08:52:50 2011 +0100"
      },
      "message": "ALSA: hda - add quirk for Ordissimo EVE using a realtek ALC662\n\nThis netbook has a only one jack output and an internal mic.\n\nBy default, mic and jack sense aren\u0027t working. Using lenovo-101e\nparameters makes both work.\n\nThe device seems based on a Sharetronic Q70, so this should fix audio for\nthis model too.\n\nSigned-off-by: Anisse Astier \u003canisse@astier.eu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "47970b1b2aa64464bc0a9543e86361a622ae7c03",
      "tree": "66e5474c37ea12a28d52dc652978df0ab7a0287f",
      "parents": [
        "6037b715d6fab139742c3df8851db4c823081561"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Thu Feb 10 15:58:56 2011 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 11 17:58:11 2011 +1100"
      },
      "message": "pci: use security_capable() when checking capablities during config space read\n\nEric Paris noted that commit de139a3 (\"pci: check caps from sysfs file\nopen to read device dependent config space\") caused the capability check\nto bypass security modules and potentially auditing.  Rectify this by\ncalling security_capable() when checking the open file\u0027s capabilities\nfor config space reads.\n\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6037b715d6fab139742c3df8851db4c823081561",
      "tree": "aba9e9427debd4fa5b904daefa8e71a6320f4b93",
      "parents": [
        "deabb19ba4bd8c06ae69bc262e3594b515e3a459"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Wed Feb 09 22:11:51 2011 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 11 17:41:58 2011 +1100"
      },
      "message": "security: add cred argument to security_capable()\n\nExpand security_capable() to include cred, so that it can be usable in a\nwider range of call sites.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "deabb19ba4bd8c06ae69bc262e3594b515e3a459",
      "tree": "abcc4d7204948bdbe304bb372339903078d277ce",
      "parents": [
        "d2478521afc20227658a10a8c5c2bf1a2aa615b3",
        "9b29050f8f75916f974a2d231ae5d3cd59792296"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 11 17:34:47 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 11 17:34:47 2011 +1100"
      },
      "message": "Merge branch \u0027for-james\u0027 of git://tpmdd.git.sourceforge.net/gitroot/tpmdd/tpmdd into for-linus\n"
    },
    {
      "commit": "71823baff1978be892e7a36eddf6170e1cc6650d",
      "tree": "2cc136ce754cc5c24ed8aefde5e486fc873ae139",
      "parents": [
        "195291e68c2ad59a046fc56d32bf59635b100e5c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Feb 10 08:03:50 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 11 03:59:12 2011 +0000"
      },
      "message": "cifs: don\u0027t always drop malformed replies on the floor (try #3)\n\nSlight revision to this patch...use min_t() instead of conditional\nassignment. Also, remove the FIXME comment and replace it with the\nexplanation that Steve gave earlier.\n\nAfter receiving a packet, we currently check the header. If it\u0027s no\ngood, then we toss it out and continue the loop, leaving the caller\nwaiting on that response.\n\nIn cases where the packet has length inconsistencies, but the MID is\nvalid, this leads to unneeded delays. That\u0027s especially problematic now\nthat the client waits indefinitely for responses.\n\nInstead, don\u0027t immediately discard the packet if checkSMB fails. Try to\nfind a matching mid_q_entry, mark it as having a malformed response and\nissue the callback.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9b29050f8f75916f974a2d231ae5d3cd59792296",
      "tree": "e556ea7e22297756159a1c564ed576671c419fb8",
      "parents": [
        "d3d373e0e3f51f335d8c722dd1340ab812fdf94b"
      ],
      "author": {
        "name": "Stefan Berger",
        "email": "stefanb@linux.vnet.ibm.com",
        "time": "Tue Jan 11 14:37:29 2011 -0500"
      },
      "committer": {
        "name": "Rajiv Andrade",
        "email": "srajiv@linux.vnet.ibm.com",
        "time": "Fri Feb 11 01:30:50 2011 -0200"
      },
      "message": "tpm_tis: Use timeouts returned from TPM\n\nThe current TPM TIS driver in git discards the timeout values returned\nfrom the TPM. The check of the response packet needs to consider that\nthe return_code field is 0 on success and the size of the expected\npacket is equivalent to the header size + u32 length indicator for the\nTPM_GetCapability() result + 3 timeout indicators of type u32.\n\nI am also adding a sysfs entry \u0027timeouts\u0027 showing the timeouts that are\nbeing used.\n\nSigned-off-by: Stefan Berger \u003cstefanb@linux.vnet.ibm.com\u003e\nTested-by: Guillaume Chazarain \u003cguichaz@gmail.com\u003e\nSigned-off-by: Rajiv Andrade \u003csrajiv@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d2478521afc20227658a10a8c5c2bf1a2aa615b3",
      "tree": "4131c840f6a01061a3dd65264ed2497178960df8",
      "parents": [
        "ee24aebffb75a7f940cf52c8cf6910947b3130c0"
      ],
      "author": {
        "name": "Corey Minyard",
        "email": "minyard@acm.org",
        "time": "Thu Feb 10 16:08:38 2011 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 10 18:00:21 2011 -0800"
      },
      "message": "char/ipmi: fix OOPS caused by pnp_unregister_driver on unregistered driver\n\nThis patch fixes an OOPS triggered when calling modprobe ipmi_si a\nsecond time after the first modprobe returned without finding any ipmi\ndevices.  This can happen if you reload the module after having the\nfirst module load fail.  The driver was not deregistering from PNP in\nthat case.\n\nPeter Huewe originally reported this patch and supplied a fix, I have a\ndifferent patch based on Linus\u0027 suggestion that cleans things up a bit\nmore.\n\nCc: stable@kernel.org\nCc: openipmi-developer@lists.sourceforge.net\nReviewed-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Corey Minyard \u003ccminyard@mvista.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee24aebffb75a7f940cf52c8cf6910947b3130c0",
      "tree": "ed1eafa8b1a30b078c9fa680aafbb49632921a0d",
      "parents": [
        "67d019528e5c2693145217cf18a507689980d2a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 10 17:53:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 10 17:53:55 2011 -0800"
      },
      "message": "cap_syslog: accept CAP_SYS_ADMIN for now\n\nIn commit ce6ada35bdf7 (\"security: Define CAP_SYSLOG\") Serge Hallyn\nintroduced CAP_SYSLOG, but broke backwards compatibility by no longer\naccepting CAP_SYS_ADMIN as an override (it would cause a warning and\nthen reject the operation).\n\nRe-instate CAP_SYS_ADMIN - but keeping the warning - as an acceptable\ncapability until any legacy applications have been updated.  There are\napparently applications out there that drop all capabilities except for\nCAP_SYS_ADMIN in order to access the syslog.\n\n(This is a re-implementation of a patch by Serge, cleaning the logic up\nand making the code more readable)\n\nAcked-by: Serge Hallyn \u003cserge@hallyn.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a09e2b21cab92e98728c16f0e6f456f723dadf8b",
      "tree": "c35258c1e11eaee42678e4cd95883f2a1781481e",
      "parents": [
        "401945212b8a5c3a66218771745e6cfca16e5157"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Feb 07 10:51:04 2011 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Feb 11 10:25:57 2011 +0900"
      },
      "message": "ARM: SAMSUNG: Ensure struct sys_device is declared in plat/pm.h\n\nPreviously we were relying on it being pulled in by other headers for\nthe prototype of s3c24xx_irq_suspend() and s3c24xx_irq_resume().\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    },
    {
      "commit": "401945212b8a5c3a66218771745e6cfca16e5157",
      "tree": "24a9a81762169e6c9e3995137d91ee828221f10d",
      "parents": [
        "3de04984c62559b7d59ecb3ad010fd148f90f030"
      ],
      "author": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Tue Feb 01 15:08:53 2011 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Feb 11 10:25:56 2011 +0900"
      },
      "message": "ARM: S5PV310: Cleanup System MMU\n\nThis patch cleans following up.\n- Moved definition of System MMU IPNUM into mach/sysmmu.h\n- Removed useless SYSMMU_DEBUG configuration\n- Removed useless header file plat/sysmmu.h\n\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    }
  ],
  "next": "3de04984c62559b7d59ecb3ad010fd148f90f030"
}
