)]}'
{
  "log": [
    {
      "commit": "bd2753b2dda7bb43c7468826de75f49c6a7e8965",
      "tree": "1c3c02c226132e257aa77b2db5ae56ed78f4e02b",
      "parents": [
        "743628e868c5992354fc80b4d1e9a6143da1c0e6"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jun 06 10:55:40 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jun 08 11:40:50 2012 +0200"
      },
      "message": "x86/mm: Only add extra pages count for the first memory range during pre-allocation early page table space\n\nRobin found this regression:\n\n| I just tried to boot an 8TB system.  It fails very early in boot with:\n| Kernel panic - not syncing: Cannot find space for the kernel page tables\n\ngit bisect commit 722bc6b16771ed80871e1fd81c86d3627dda2ac8.\n\nA git revert of that commit does boot past that point on the 8TB\nconfiguration.\n\nThat commit will add up extra pages for all memory range even\nabove 4g.\n\nTry to limit that extra page count adding to first entry only.\n\nBisected-by: Robin Holt \u003cholt@sgi.com\u003e\nTested-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/CAE9FiQUj3wyzQxtq9yzBNc9u220p8JZ1FYHG7t%3DMOzJ%3D9BZMYA@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4af463d28f1a026e25c0b879fac2a0d2b7bff599",
      "tree": "f3821e052bcad9c0668437d68d8e0485a7cb31f7",
      "parents": [
        "aff5a62d52ff03956ff6992b9fe4b561fd855804"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Mon Jun 04 11:42:32 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jun 06 11:58:39 2012 +0200"
      },
      "message": "x86/numa: Set numa_nodes_parsed at acpi_numa_memory_affinity_init()\n\nWhen hot-adding a CPU, the system outputs following messages\nsince node_to_cpumask_map[2] was not allocated memory.\n\nBooting Node 2 Processor 32 APIC 0xc0\nnode_to_cpumask_map[2] NULL\nPid: 0, comm: swapper/32 Tainted: G       A     3.3.5-acd #21\nCall Trace:\n [\u003cffffffff81048845\u003e] debug_cpumask_set_cpu+0x155/0x160\n [\u003cffffffff8105e28a\u003e] ? add_timer_on+0xaa/0x120\n [\u003cffffffff8150665f\u003e] numa_add_cpu+0x1e/0x22\n [\u003cffffffff815020bb\u003e] identify_cpu+0x1df/0x1e4\n [\u003cffffffff815020d6\u003e] identify_econdary_cpu+0x16/0x1d\n [\u003cffffffff81504614\u003e] smp_store_cpu_info+0x3c/0x3e\n [\u003cffffffff81505263\u003e] smp_callin+0x139/0x1be\n [\u003cffffffff815052fb\u003e] start_secondary+0x13/0xeb\n\nThe reason is that the bit of node 2 was not set at\nnuma_nodes_parsed. numa_nodes_parsed is set by only\nacpi_numa_processor_affinity_init /\nacpi_numa_x2apic_affinity_init. Thus even if hot-added memory\nwhich is same PXM as hot-added CPU is written in ACPI SRAT\nTable, if the hot-added CPU is not written in ACPI SRAT table,\nnuma_nodes_parsed is not set.\n\nBut according to ACPI Spec Rev 5.0, it says about ACPI SRAT\ntable as follows: This optional table provides information that\nallows OSPM to associate processors and memory ranges, including\nranges of memory provided by hot-added memory devices, with\nsystem localities / proximity domains and clock domains.\n\nIt means that ACPI SRAT table only provides information for CPUs\npresent at boot time and for memory including hot-added memory.\nSo hot-added memory is written in ACPI SRAT table, but hot-added\nCPU is not written in it. Thus numa_nodes_parsed should be set\nby not only acpi_numa_processor_affinity_init /\nacpi_numa_x2apic_affinity_init but also\nacpi_numa_memory_affinity_init for the case.\n\nAdditionally, if system has cpuless memory node,\nacpi_numa_processor_affinity_init /\nacpi_numa_x2apic_affinity_init cannot set numa_nodes_parseds\nsince these functions cannot find cpu description for the node.\nIn this case, numa_nodes_parsed needs to be set by\nacpi_numa_memory_affinity_init.\n\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: liuj97@gmail.com\nCc: kosaki.motohiro@gmail.com\nLink: http://lkml.kernel.org/r/4FCC2098.4030007@jp.fujitsu.com\n[ merged it ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bbd771474ec44b516107685d77e1c80bbe09f141",
      "tree": "0cb15781539a68f27b4ea6c89f827282630cbce6",
      "parents": [
        "403e1c5b7495d7b80fae9fc4d0a7a6f5abdc3307",
        "319b6ffc6df892e4ccffff823cc5521a4a5d2dca"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed May 30 12:11:26 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed May 30 12:11:32 2012 -0700"
      },
      "message": "Merge branch \u0027x86/trampoline\u0027 into x86/urgent\n\nx86/trampoline contains an urgent commit which is necessarily on a\nnewer baseline.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "fa83523f45fbb403eba4ebc5704bf98aa4da0163",
      "tree": "35466e5e2e9e5ed8171ef596d63690ed42621fca",
      "parents": [
        "1b38a3a10f2ad96a3c0130f63b7f3610bab7090d"
      ],
      "author": {
        "name": "John Dykstra",
        "email": "jdykstra@cray.com",
        "time": "Fri May 25 16:12:46 2012 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 10:57:11 2012 +0200"
      },
      "message": "x86/mm/pat: Improve scaling of pat_pagerange_is_ram()\n\nFunction pat_pagerange_is_ram() scales poorly to large address\nranges, because it probes the resource tree for each page.\n\nOn a 2.6 GHz Opteron, this function consumes 34 ms for a 1 GB range.\n\nIt is called twice during untrack_pfn_vma(), slowing process\ncleanup and handicapping the OOM killer.\n\nThis replacement consumes less than 1ms, under the same conditions.\n\nSigned-off-by: John Dykstra \u003cjdykstra@cray.com\u003e on behalf of Cray Inc.\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1337980366.1979.6.camel@redwood\n[ Small stylistic cleanups and renames ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "365811d6f9bd98543bedc02b72d94f0f0faf3670",
      "tree": "531515ad2280d898d5b4074c49952f562d2de0e5",
      "parents": [
        "91eb0f67c38c7104766faa49c5aaee2b4876511e"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Tue May 29 15:06:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:21 2012 -0700"
      },
      "message": "x86: print physical addresses consistently with other parts of kernel\n\nPrint physical address info in a style consistent with the %pR style used\nelsewhere in the kernel.  For example:\n\n    -found SMP MP-table at [ffff8800000fce90] fce90\n    +found SMP MP-table at [mem 0x000fce90-0x000fce9f] mapped at [ffff8800000fce90]\n    -initial memory mapped : 0 - 20000000\n    +initial memory mapped: [mem 0x00000000-0x1fffffff]\n    -Base memory trampoline at [ffff88000009c000] 9c000 size 8192\n    +Base memory trampoline [mem 0x0009c000-0x0009dfff] mapped at [ffff88000009c000]\n    -SRAT: Node 0 PXM 0 0-80000000\n    +SRAT: Node 0 PXM 0 [mem 0x00000000-0x7fffffff]\n\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "02171b4a7c5b555d08c3321332e0c45776518276",
      "tree": "63f10cdab2a8c1bd9fe5ff29319323ff59419ef8",
      "parents": [
        "70311aaa8afb9790fb91886749cbf80e7e6cd8d0",
        "20167d3421a089a1bf1bd680b150dc69c9506810"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 11:06:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 11:06:59 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 mm changes from Ingo Molnar:\n \"This tree includes a micro-optimization that avoids cr3 switches\n  during idling; it fixes corner cases and there\u0027s also small cleanups\"\n\nFix up trivial context conflict with the percpu_xx -\u003e this_cpu_xx\nchanges.\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86-64: Fix accounting in kernel_physical_mapping_init()\n  x86/tlb: Clean up and unify TLB_FLUSH_ALL definition\n  x86: Drop obsolete ARCH_BOOTMEM support\n  x86, tlb: Switch cr3 in leave_mm() only when needed\n  x86/mm: Fix the size calculation of mapping tables\n"
    },
    {
      "commit": "269af9a1a08d368b46d72e74126564d04c354f7e",
      "tree": "f0f2a8dd54075edebbb728602822e2b7378588d0",
      "parents": [
        "8ca038dc10eec80f280d9d483f1835ac2763a787",
        "8b5ad472991796b2347464922c72de2ca5a028f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 10:44:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 10:44:35 2012 -0700"
      },
      "message": "Merge branch \u0027x86-extable-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull exception table generation updates from Ingo Molnar:\n \"The biggest change here is to allow the build-time sorting of the\n  exception table, to speed up booting.  This is achieved by the\n  architecture enabling BUILDTIME_EXTABLE_SORT.  This option is enabled\n  for x86 and MIPS currently.\n\n  On x86 a number of fixes and changes were needed to allow build-time\n  sorting of the exception table, in particular a relocation invariant\n  exception table format was needed.  This required the abstracting out\n  of exception table protocol and the removal of 20 years of accumulated\n  assumptions about the x86 exception table format.\n\n  While at it, this tree also cleans up various other aspects of\n  exception handling, such as early(er) exception handling for\n  rdmsr_safe() et al.\n\n  All in one, as the result of these changes the x86 exception code is\n  now pretty nice and modern.  As an added bonus any regressions in this\n  code will be early and violent crashes, so if you see any of those,\n  you\u0027ll know whom to blame!\"\n\nFix up trivial conflicts in arch/{mips,x86}/Kconfig files due to nearby\nmodifications of other core architecture options.\n\n* \u0027x86-extable-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)\n  Revert \"x86, extable: Disable presorted exception table for now\"\n  scripts/sortextable: Handle relative entries, and other cleanups\n  x86, extable: Switch to relative exception table entries\n  x86, extable: Disable presorted exception table for now\n  x86, extable: Add _ASM_EXTABLE_EX() macro\n  x86, extable: Remove open-coded exception table entries in arch/x86/ia32/ia32entry.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/xsave.h\n  x86, extable: Remove open-coded exception table entries in arch/x86/include/asm/kvm_host.h\n  x86, extable: Remove the now-unused __ASM_EX_SEC macros\n  x86, extable: Remove open-coded exception table entries in arch/x86/xen/xen-asm_32.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/um/checksum_32.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/usercopy_32.c\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/putuser.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/getuser.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/csum-copy_64.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_nocache_64.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/copy_user_64.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/lib/checksum_32.S\n  x86, extable: Remove open-coded exception table entries in arch/x86/kernel/test_rodata.c\n  x86, extable: Remove open-coded exception table entries in arch/x86/kernel/entry_64.S\n  ...\n"
    },
    {
      "commit": "d79ee93de909dfb252279b9a95978bbda9a814a9",
      "tree": "bfccca60fd36259ff4bcc5e78a2c272fbd680065",
      "parents": [
        "2ff2b289a695807e291e1ed9f639d8a3ba5f4254",
        "1c2927f18576d65631d8e0ddd19e1d023183222e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 18:27:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 18:27:32 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"The biggest change is the cleanup/simplification of the load-balancer:\n  instead of the current practice of architectures twiddling scheduler\n  internal data structures and providing the scheduler domains in\n  colorfully inconsistent ways, we now have generic scheduler code in\n  kernel/sched/core.c:sched_init_numa() that looks at the architecture\u0027s\n  node_distance() parameters and (while not fully trusting it) deducts a\n  NUMA topology from it.\n\n  This inevitably changes balancing behavior - hopefully for the better.\n\n  There are various smaller optimizations, cleanups and fixlets as well\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Taint kernel with TAINT_WARN after sleep-in-atomic bug\n  sched: Remove stale power aware scheduling remnants and dysfunctional knobs\n  sched/debug: Fix printing large integers on 32-bit platforms\n  sched/fair: Improve the -\u003egroup_imb logic\n  sched/nohz: Fix rq-\u003ecpu_load[] calculations\n  sched/numa: Don\u0027t scale the imbalance\n  sched/fair: Revert sched-domain iteration breakage\n  sched/x86: Rewrite set_cpu_sibling_map()\n  sched/numa: Fix the new NUMA topology bits\n  sched/numa: Rewrite the CONFIG_NUMA sched domain support\n  sched/fair: Propagate \u0027struct lb_env\u0027 usage into find_busiest_group\n  sched/fair: Add some serialization to the sched_domain load-balance walk\n  sched/fair: Let minimally loaded cpu balance the group\n  sched: Change rq-\u003enr_running to unsigned int\n  x86/numa: Check for nonsensical topologies on real hw as well\n  x86/numa: Hard partition cpu topology masks on node boundaries\n  x86/numa: Allow specifying node_distance() for numa\u003dfake\n  x86/sched: Make mwait_usable() heed to \"idle\u003d\" kernel parameters properly\n  sched: Update documentation and comments\n  sched_rt: Avoid unnecessary dequeue and enqueue of pushable tasks in set_cpus_allowed_rt()\n"
    },
    {
      "commit": "20167d3421a089a1bf1bd680b150dc69c9506810",
      "tree": "3338cb5455b31473630679061fcd96addc8ac7e2",
      "parents": [
        "3e7f3db001de6133db1c385c92eec944409a8b4f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Wed May 16 14:06:26 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri May 18 10:13:37 2012 +0200"
      },
      "message": "x86-64: Fix accounting in kernel_physical_mapping_init()\n\nWhen finding a present and acceptable 2M/1G mapping, the number\nof pages mapped this way shouldn\u0027t be incremented (as it was\nalready incremented when the earlier part of the mapping was\nestablished). Instead, last_map_addr needs to be updated in this\ncase.\n\nFurther, address increments were wrong in one place each in both\nphys_pmd_init() and phys_pud_init() (lacking the aligning down\nto the respective page boundary).\n\nAs we\u0027re now doing the same calculation several times, fold it\ninto a single instance using a local variable (matching how\nkernel_physical_mapping_init() itself does it at the PGD level).\n\nObserved during code inspection, not because of an actual\nproblem.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4FB3C27202000078000841A0@nat28.tlf.novell.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c6ae41e7d469f00d9c92a2b2887c7235d121c009",
      "tree": "b16d65641c1e99a622ab460aee9f5b13e1948a25",
      "parents": [
        "19e8d69c543f8f62050099892b138e981db952cc"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Fri May 11 15:35:27 2012 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 14 14:15:31 2012 -0700"
      },
      "message": "x86: replace percpu_xxx funcs with this_cpu_xxx\n\nSince percpu_xxx() serial functions are duplicated with this_cpu_xxx().\nRemoving percpu_xxx() definition and replacing them by this_cpu_xxx()\nin code. There is no function change in this patch, just preparation for\nlater percpu_xxx serial function removing.\n\nOn x86 machine the this_cpu_xxx() serial functions are same as\n__this_cpu_xxx() without no unnecessary premmpt enable/disable.\n\nThanks for Stephen Rothwell, he found and fixed a i386 build error in\nthe patch.\n\nAlso thanks for Andrew Morton, he kept updating the patchset in Linus\u0027\ntree.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nAcked-by: Christoph Lameter \u003ccl@gentwo.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "94c0dd3278dd3eae52eabf0fb77d472d0dd3e373",
      "tree": "23c1dbe8b96f8e7d2b8349442d24907da862ba70",
      "parents": [
        "19209bbb8612004bc20a1f70ff12926f99fe2643"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 18 19:04:17 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 09 13:28:59 2012 +0200"
      },
      "message": "x86/numa: Allow specifying node_distance() for numa\u003dfake\n\nAllows emulating more interesting NUMA configurations like a quad\nsocket AMD Magny-Cour:\n\n \"numa\u003dfake\u003d8:10,16,16,22,16,22,16,22,\n              16,10,22,16,22,16,22,16,\n              16,22,10,16,16,22,16,22,\n              22,16,16,10,22,16,22,16,\n              16,22,16,22,10,16,16,22,\n              22,16,22,16,16,10,22,16,\n              16,22,16,22,16,22,10,16,\n              22,16,22,16,22,16,16,10\"\n\nWhich has a non-fully-connected topology.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: x86@kernel.org\nLink: http://lkml.kernel.org/n/tip-e1136ef7kdffj7yf9tjhydln@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "078de5f706ece36afd73bb4b8283314132d2dfdf",
      "tree": "0dee00713f9cb5e2516260a66b8df99ef7d03e4d",
      "parents": [
        "ae2975bc3476243b45a1e2344236d7920c268f38"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 08 07:00:08 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 03 03:28:38 2012 -0700"
      },
      "message": "userns: Store uid and gid values in struct cred with kuid_t and kgid_t types\n\ncred.h and a few trivial users of struct cred are changed.  The rest of the users\nof struct cred are left for other patches as there are too many changes to make\nin one go and leave the change reviewable.  If the user namespace is disabled and\nCONFIG_UIDGID_STRICT_TYPE_CHECKS are disabled the code will contiue to compile\nand behave correctly.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "706276543b699d80f546e45f8b12574e7b18d952",
      "tree": "fc0fd24bf22517086685aa470a0fb596a71026ab",
      "parents": [
        "fa574a48a1e9706bba38188d3bf61ecb66546a77"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Apr 20 17:12:48 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Apr 20 17:22:34 2012 -0700"
      },
      "message": "x86, extable: Switch to relative exception table entries\n\nSwitch to using relative exception table entries on x86.  On i386,\nthis has the advantage that the exception table entries don\u0027t need to\nbe relocated; on x86-64 this means the exception table entries take up\nonly half the space.\n\nIn either case, a 32-bit delta is sufficient, as the range of kernel\ncode addresses is limited.\n\nSince part of the goal is to avoid needing to adjust the entries when\nthe kernel is relocated, the old trick of using addresses in the NULL\npointer range to indicate uaccess_err no longer works (and unlike RISC\narchitectures we can\u0027t use a flag bit); instead use an delta just\nbelow +2G to indicate these special entries.  The reach is still\nlimited to a single instruction.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: David Daney \u003cdavid.daney@cavium.com\u003e\nLink: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A\u003d9EyR\u003dJtyqfq_cQ@mail.gmail.com\n"
    },
    {
      "commit": "6a1ea279c210e7dc05de86dc29c0d4f577f484fb",
      "tree": "d27b32e788ad5391f0457f939752c8900ac45222",
      "parents": [
        "ffc4bc9c6fa4eaf935d96d139bfa7443cac0b88e"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Apr 19 15:24:20 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Apr 19 15:31:04 2012 -0700"
      },
      "message": "x86, extable: Add early_fixup_exception()\n\nAdd a restricted version of fixup_exception() to be used during early\nboot only.  In particular, this doesn\u0027t support the try..catch variant\nsince we may not have a thread_info set up yet.\n\nThis relies on the exception table being sorted already at build time.\n\nLink: http://lkml.kernel.org/r/1334794610-5546-1-git-send-email-hpa@zytor.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "eb05df9e7e793f3134dbb574c7ccc05f7932bc59",
      "tree": "6373858c571902eece2761fe2b0d9cc84e7a66fe",
      "parents": [
        "a591afc01d9e48affbacb365558a31e53c85af45",
        "ef334a20d84f52407a8a2afd02ddeaecbef0ad3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:21:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:21:35 2012 -0700"
      },
      "message": "Merge branch \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 cleanups from Peter Anvin:\n \"The biggest textual change is the cleanup to use symbolic constants\n  for x86 trap values.\n\n  The only *functional* change and the reason for the x86/x32 dependency\n  is the move of is_ia32_task() into \u003casm/thread_info.h\u003e so that it can\n  be used in other code that needs to understand if a system call comes\n  from the compat entry point (and therefore uses i386 system call\n  numbers) or not.  One intended user for that is the BPF system call\n  filter.  Moving it out of \u003casm/compat.h\u003e means we can define it\n  unconditionally, returning always true on i386.\"\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Move is_ia32_task to asm/thread_info.h from asm/compat.h\n  x86: Rename trap_no to trap_nr in thread_struct\n  x86: Use enum instead of literals for trap values\n"
    },
    {
      "commit": "6b8212a313dae341ef3a2e413dfec5c4dea59617",
      "tree": "bbca09d88f61f999c7714fe82710bdfe6ee0e98b",
      "parents": [
        "bcd550745fc54f789c14e7526e0633222c505faa",
        "8abc3122aa02567bfe626cd13f4d34853c9b1225"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 updates from Ingo Molnar.\n\nThis touches some non-x86 files due to the sanitized INLINE_SPIN_UNLOCK\nconfig usage.\n\nFixed up trivial conflicts due to just header include changes (removing\nheaders due to cpu_idle() merge clashing with the \u003casm/system.h\u003e split).\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/apic/amd: Be more verbose about LVT offset assignments\n  x86, tls: Off by one limit check\n  x86/ioapic: Add io_apic_ops driver layer to allow interception\n  x86/olpc: Add debugfs interface for EC commands\n  x86: Merge the x86_32 and x86_64 cpu_idle() functions\n  x86/kconfig: Remove CONFIG_TR\u003dy from the defconfigs\n  x86: Stop recursive fault in print_context_stack after stack overflow\n  x86/io_apic: Move and reenable irq only when CONFIG_GENERIC_PENDING_IRQ\u003dy\n  x86/apic: Add separate apic_id_valid() functions for selected apic drivers\n  locking/kconfig: Simplify INLINE_SPIN_UNLOCK usage\n  x86/kconfig: Update defconfigs\n  x86: Fix excessive MSR print out when show_msr is not specified\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "f05e798ad4c09255f590f5b2c00a7ca6c172f983",
      "tree": "6b7125d3f086a63a0f571bda568c9b62cc25609d",
      "parents": [
        "778aae84ef694325662447eceba1a5f7d3eebdbb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:11:12 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:11:12 2012 +0100"
      },
      "message": "Disintegrate asm/system.h for X86\n\nDisintegrate asm/system.h for X86.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\ncc: x86@kernel.org\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "b7157acf429e6aef690646ba964b9ebd25049ec2",
      "tree": "50e14ff23bde509e429ac9545909c02367a75146",
      "parents": [
        "e335e3eb82dada2765297f6ba501afc7555aba10"
      ],
      "author": {
        "name": "Steffen Persvold",
        "email": "sp@numascale.com",
        "time": "Fri Mar 16 20:25:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 13:28:43 2012 +0100"
      },
      "message": "x86/apic: Add separate apic_id_valid() functions for selected apic drivers\n\nAs suggested by Suresh Siddha and Yinghai Lu:\n\nFor x2apic pre-enabled systems, apic driver is set already early\nthrough early_acpi_boot_init()/early_acpi_process_madt()/\nacpi_parse_madt()/default_acpi_madt_oem_check() path so that\napic_id_valid() checking will be sufficient during MADT and SRAT\nparsing.\n\nFor non-x2apic pre-enabled systems, all apic ids should be less\nthan 255.\n\nThis allows us to substitute the checks in\narch/x86/kernel/acpi/boot.c::acpi_parse_x2apic() and\narch/x86/mm/srat.c::acpi_numa_x2apic_affinity_init() with\napic-\u003eapic_id_valid().\n\nIn addition we can avoid feigning the x2apic cpu feature in the\nNumaChip apic code.\n\nThe following apic drivers have separate apic_id_valid()\nfunctions which will accept x2apic type IDs :\n\n x2apic_phys\n x2apic_cluster\n x2apic_uv_x\n apic_numachip\n\nSigned-off-by: Steffen Persvold \u003csp@numascale.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Daniel J Blueman \u003cdaniel@numascale-asia.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nLink: http://lkml.kernel.org/r/1331925935-13372-1-git-send-email-sp@numascale.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a6fca40f1d7f3e232c9de27c1cebbb9f787fbc4f",
      "tree": "53206c42ab7bdc85e026d2023203209ef43e689d",
      "parents": [
        "722bc6b16771ed80871e1fd81c86d3627dda2ac8"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Mar 22 17:01:25 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Mar 22 17:23:48 2012 -0700"
      },
      "message": "x86, tlb: Switch cr3 in leave_mm() only when needed\n\nCurrently leave_mm() unconditionally switches the cr3 to swapper_pg_dir.\nBut there is no need to change the cr3, if we already left that mm.\n\nintel_idle() for example calls leave_mm() on every deep c-state entry where\nthe CPU flushes the TLB for us. Similarly flush_tlb_all() was also calling\nleave_mm() whenever the TLB is in LAZY state. Both these paths will be\nimproved with this change.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1332460885.16101.147.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "28f23d1f3b6a6078312b6e9585e583cc7326fe22",
      "tree": "db366c75c2e2d12a2a2c3b7299c35ef7c72928a4",
      "parents": [
        "23904815461ba223a8baf7490051597fa054299b",
        "c7b738351ba92f48b943ac59aff6b5b0f17f37c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:44:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:44:50 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 \"urgent\" leftovers from Ingo Molnar:\n \"Pending x86/urgent bits that were not high prio enough to warrant\n  -rc-less v3.3-final inclusion.\"\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Fix pointer math issue in handle_ramdisks()\n  x86/ioapic: Add register level checks to detect bogus io-apic entries\n  x86, mce: Fix rcu splat in drain_mce_log_buffer()\n  x86, memblock: Move mem_hole_size() to .init\n"
    },
    {
      "commit": "d71b5a73fe9af42752c4329b087f7911b35f8f79",
      "tree": "9399922a83a31a87ddfb5abe137be689580a2f9a",
      "parents": [
        "b224ef856b1a5b949daff5937a9e187fe622b8f5"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 21 16:34:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "numa_emulation: fix cpumask_of_node()\n\nWithout this fix the cpumask_of_node() for a fake\u003dnuma\u003d2 is:\n\n    cpumask 0 ff\n    cpumask 1 ff\n\nwith the fix it\u0027s correct and it\u0027s set to:\n\n    cpumask 0 55\n    cpumask 1 aa\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b69add218d32450d6604bc9080f6e33e19b06f5e",
      "tree": "67c91d3534c2f7bf01b03a49be7543abe77d16a6",
      "parents": [
        "40716e29243de46720e5773797791466c28904ec"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlb: remove prev_vma from hugetlb_get_unmapped_area_topdown()\n\nAfter looking up the vma which covers or follows the cached search\naddress, the following condition is always true:\n\n\t!prev_vma || (addr \u003e\u003d prev_vma-\u003evm_end)\n\nso we can stop checking the previous VMA altogether.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbde83e21c4fd50bfc4240408355c1e5d393063d",
      "tree": "21899d4db2dadcdaea04b019c7d9f1d62344f5b4",
      "parents": [
        "4bfc130d5afa28395288d1b57092906349604b41"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "hugetlb: try to search again if it is really needed\n\nSearch again only if some holes may be skipped in the first pass.\n\n[akpm@linux-foundation.org: clean up crazy compound definition]\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a24401bcf4a67c8fe17e649e74eeb09b08b79ef5",
      "tree": "c4b1be87e0a63057e85ae82076d54c437313b1f8",
      "parents": [
        "589973a7042f5a91a5b8bf78a32c97ae073e2c72"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Sat Nov 26 10:53:39 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:30 2012 +0800"
      },
      "message": "highmem: kill all __kmap_atomic()\n[swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "51e7dc7011c99e1e5294658c7b551b92ca069985",
      "tree": "cef8f1aa1f9ef67e5e00e2a5346d5754791a81ac",
      "parents": [
        "e898c6706869fdcbd68b1e7fb0ac7461d98710fe"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Mon Mar 12 14:55:55 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 06:24:09 2012 +0100"
      },
      "message": "x86: Rename trap_no to trap_nr in thread_struct\n\nThere are precedences of trap number being referred to as\ntrap_nr. However thread struct refers trap number as trap_no.\nChange it to trap_nr.\n\nAlso use enum instead of left-over literals for trap values.\n\nThis is pure cleanup, no functional change intended.\n\nSuggested-by: Ingo Molnar \u003cmingo@eltu.hu\u003e\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120312092555.5379.942.sendpatchset@srdronam.in.ibm.com\n[ Fixed the math-emu build ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "55062d061790b43aee01ab3f9ac57b8596254f19",
      "tree": "482f3f8ddf93c5d432b9a9fc3d0090ae71642597",
      "parents": [
        "097d59106a8e4b42d07c9892fdd7790f1659c6ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 18:48:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 18:48:13 2012 -0800"
      },
      "message": "x86: fix typo in recent find_vma_prev purge\n\nIt turns out that test-compiling this file on x86-64 doesn\u0027t really\nhelp, because much of it is x86-32-specific.  And so I hadn\u0027t noticed\nthe slightly over-eager removal of the \u0027r\u0027 from \u0027addr\u0027 variable despite\nthinking I had tested it.\n\nSigned-off-by: Linus \"oopsie\" Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "097d59106a8e4b42d07c9892fdd7790f1659c6ff",
      "tree": "babf61a0287b0f09f80580847274877831ed6869",
      "parents": [
        "71fece9511717750d86691e0f517ad04f3c8a801"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 18:23:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 18:23:36 2012 -0800"
      },
      "message": "vm: avoid using find_vma_prev() unnecessarily\n\nSeveral users of \"find_vma_prev()\" were not in fact interested in the\nprevious vma if there was no primary vma to be found either.  And in\nthose cases, we\u0027re much better off just using the regular \"find_vma()\",\nand then \"prev\" can be looked up by just checking vma-\u003evm_prev.\n\nThe find_vma_prev() semantics are fairly subtle (see Mikulas\u0027 recent\ncommit 83cd904d271b: \"mm: fix find_vma_prev\"), and the whole \"return\nprev by reference\" means that it generates worse code too.\n\nThus this \"let\u0027s avoid using this inconvenient and clearly too subtle\ninterface when we don\u0027t really have to\" patch.\n\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "722bc6b16771ed80871e1fd81c86d3627dda2ac8",
      "tree": "cfad3c8a90d44a548603c28fb9387bd2021f7a34",
      "parents": [
        "550cf00dbc8ee402bef71628cb71246493dd4500"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Mar 05 15:05:13 2012 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 06 09:38:26 2012 +0100"
      },
      "message": "x86/mm: Fix the size calculation of mapping tables\n\nFor machines that enable PSE, the first 2/4M memory region still uses\n4K pages, so needs more PTEs in this case, but\nfind_early_table_space() doesn\u0027t count this.\n\nThis patch fixes it.\n\nThe bug was found via code review, no misbehavior of the kernel\nwas observed.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cianfang.cn@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-kq6a00qe33h7c7ais2xsywnh@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e37aade31601cdb9f078f6663cbf887f391bb110",
      "tree": "1ba9b909ff5ebb238af5bfaabe82091061b443ac",
      "parents": [
        "001f3a48877a24afa7dfead84eb4678c68ab062e"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 28 16:16:33 2012 +0100"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sat Mar 03 15:51:20 2012 -0800"
      },
      "message": "x86, memblock: Move mem_hole_size() to .init\n\nmem_hole_size() is being called only from __init-marked functions, and as\nsuch should be moved to .init section as well. Fixes this warning:\n\nWARNING: vmlinux.o(.text+0x35511): Section mismatch in reference from the function mem_hole_size() to the function .init.text:absent_pages_in_range()\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1202281614450.31150@pobox.suse.cz\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480",
      "tree": "e53d8e0b0bd2cf2134e48d3441b91ac41c6c3721",
      "parents": [
        "b116ee4d772565d204db057a10fcd81d7a2513a8"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 20 18:35:53 2012 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Feb 29 17:15:08 2012 -0500"
      },
      "message": "bug.h: add include of it to various implicit C users\n\nWith bug.h currently living right in linux/kernel.h there\nare files that use BUG_ON and friends but are not including\nthe header explicitly.  Fix them up so we can remove the\npresence in kernel.h file.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "2f2fde927243bde5fd106da692efef34be12f81c",
      "tree": "28e69ca8fa227b1ba53e3bf4ddd42340499e7fe7",
      "parents": [
        "bd3ce7d57c380af110c86d19e256115d0e7053ca",
        "b0f4c4b32c8e3aa0d44fc4dd6c40a9a9a8d66b63",
        "45179fec946dd554f74e950d2278dabd5ad23fd3",
        "cb297a3e433dbdcf7ad81e0564e7b804c941ff0d",
        "e6d36a653becc7bbc643c399a77882e02bf552cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 11:11:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 02 11:11:13 2012 -0800"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027, \u0027sched-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  bugs, x86: Fix printk levels for panic, softlockups and stack dumps\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf top: Fix number of samples displayed\n  perf tools: Fix strlen() bug in perf_event__synthesize_event_type()\n  perf tools: Fix broken build by defining _GNU_SOURCE in Makefile\n  x86/dumpstack: Remove unneeded check in dump_trace()\n  perf: Fix broken interrupt rate throttling\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched/rt: Fix task stack corruption under __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: Fix ancient race in do_exit()\n  sched/nohz: Fix nohz cpu idle load balancing state with cpu hotplug\n  sched/s390: Fix compile error in sched/core.c\n  sched: Fix rq-\u003enr_uninterruptible update race\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/reboot: Remove VersaLogic Menlow reboot quirk\n  x86/reboot: Skip DMI checks if reboot set by user\n  x86: Properly parenthesize cmpxchg() macro arguments\n"
    },
    {
      "commit": "b0f4c4b32c8e3aa0d44fc4dd6c40a9a9a8d66b63",
      "tree": "7387d97d5b69c587ae67a46de025468d474e0eb4",
      "parents": [
        "b64b223aed5f8aeeb6c046f1b050a8f976b87de0"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Thu Jan 26 08:55:34 2012 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 26 21:28:45 2012 +0100"
      },
      "message": "bugs, x86: Fix printk levels for panic, softlockups and stack dumps\n\nrsyslog will display KERN_EMERG messages on a connected\nterminal.  However, these messages are useless/undecipherable\nfor a general user.\n\nFor example, after a softlockup we get:\n\n Message from syslogd@intel-s3e37-04 at Jan 25 14:18:06 ...\n kernel:Stack:\n\n Message from syslogd@intel-s3e37-04 at Jan 25 14:18:06 ...\n kernel:Call Trace:\n\n Message from syslogd@intel-s3e37-04 at Jan 25 14:18:06 ...\n kernel:Code: ff ff a8 08 75 25 31 d2 48 8d 86 38 e0 ff ff 48 89\n d1 0f 01 c8 0f ae f0 48 8b 86 38 e0 ff ff a8 08 75 08 b1 01 4c 89 e0 0f 01 c9 \u003ce8\u003e ea 69 dd ff 4c 29 e8 48 89 c7 e8 0f bc da ff 49 89 c4 49 89\n\nThis happens because the printk levels for these messages are\nincorrect. Only an informational message should be displayed on\na terminal.\n\nI modified the printk levels for various messages in the kernel\nand tested the output by using the drivers/misc/lkdtm.c kernel\nmodules (ie, softlockups, panics, hard lockups, etc.) and\nconfirmed that the console output was still the same and that\nthe output to the terminals was correct.\n\nFor example, in the case of a softlockup we now see the much\nmore informative:\n\n Message from syslogd@intel-s3e37-04 at Jan 25 10:18:06 ...\n BUG: soft lockup - CPU4 stuck for 60s!\n\ninstead of the above confusing messages.\n\nAFAICT, the messages no longer have to be KERN_EMERG.  In the\nmost important case of a panic we set console_verbose().  As for\nthe other less severe cases the correct data is output to the\nconsole and /var/log/messages.\n\nSuccessfully tested by me using the drivers/misc/lkdtm.c module.\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: dzickus@redhat.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1327586134-11926-1-git-send-email-prarit@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "507a03c1cba0e32309223d23d19a1bfc0916c140",
      "tree": "8da15f9c635733948a73bfe35cb50e1195702952",
      "parents": [
        "be405411f712489f2f780ab085e1069e8fb85f19",
        "79ba0db69c5887f1ad4ed51d58894e7e889084b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nThis includes initial support for the recently published ACPI 5.0 spec.\nIn particular, support for the \"hardware-reduced\" bit that eliminates\nthe dependency on legacy hardware.\n\nAPEI has patches resulting from testing on real hardware.\n\nPlus other random fixes.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)\n  acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec\n  intel_idle: Split up and provide per CPU initialization func\n  ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2\n  ACPI processor: Remove unneeded cpuidle_unregister_driver call\n  intel idle: Make idle driver more robust\n  intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle\n  ACPI: kernel-parameters.txt : Add intel_idle.max_cstate\n  intel_idle: remove redundant local_irq_disable() call\n  ACPI processor: Fix error path, also remove sysdev link\n  ACPI: processor: fix acpi_get_cpuid for UP processor\n  intel_idle: fix API misuse\n  ACPI APEI: Convert atomicio routines\n  ACPI: Export interfaces for ioremapping/iounmapping ACPI registers\n  ACPI: Fix possible alignment issues with GAS \u0027address\u0027 references\n  ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)\n  ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)\n  ACPI: Store SRAT table revision\n  ACPI, APEI, Resolve false conflict between ACPI NVS and APEI\n  ACPI, Record ACPI NVS regions\n  ACPI, APEI, EINJ, Refine the fix of resource conflict\n  ...\n"
    },
    {
      "commit": "cd298f60a2451a16e0f077404bf69b62ec868733",
      "tree": "af8d374fb7e953c1cb6fb567f8d6385c3af03a3f",
      "parents": [
        "8df0eb7c9d96f9e82f233ee8b74e0f0c8471f868"
      ],
      "author": {
        "name": "Kurt Garloff",
        "email": "kurt@garloff.de",
        "time": "Tue Jan 17 04:20:31 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 17 04:20:31 2012 -0500"
      },
      "message": "ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)\n\nIn SRAT v1, we had 8bit proximity domain (PXM) fields; SRAT v2 provides\n32bits for these. The new fields were reserved before.\nAccording to the ACPI spec, the OS must disregrard reserved fields.\n\nx86/x86-64 was rather inconsistent prior to this patch; it used 8 bits\nfor the pxm field in cpu_affinity, but 32 bits in mem_affinity.\nThis patch makes it consistent: Either use 8 bits consistently (SRAT\nrev 1 or lower) or 32 bits (SRAT rev 2 or higher).\n\ncc: x86@kernel.org\nSigned-off-by: Kurt Garloff \u003ckurt@garloff.de\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0a80939b3e6af4b0dc93bf88ec02fd7e90a16f1b",
      "tree": "a112335f2b2b2a51e90531c6c67e8a3b54dcf0ef",
      "parents": [
        "0b48d42235caf627121f440b57d376f48a9af8b6",
        "72db395ffadb1d33233fd123c2bf87ba0198c6c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux\n\nAutogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999  BFCB D920 0E6C D1AD B8F1\n\n* tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux:\n  module_param: check that bool parameters really are bool.\n  intelfbdrv.c: bailearly is an int module_param\n  paride/pcd: fix bool verbose module parameter.\n  module_param: make bool parameters really bool (drivers \u0026 misc)\n  module_param: make bool parameters really bool (arch)\n  module_param: make bool parameters really bool (core code)\n  kernel/async: remove redundant declaration.\n  printk: fix unnecessary module_param_name.\n  lirc_parallel: fix module parameter description.\n  module_param: avoid bool abuse, add bint for special cases.\n  module_param: check type correctness for module_param_array\n  modpost: use linker section to generate table.\n  modpost: use a table rather than a giant if/else statement.\n  modules: sysfs - export: taint, coresize, initsize\n  kernel/params: replace DEBUGP with pr_debug\n  module: replace DEBUGP with pr_debug\n  module: struct module_ref should contains long fields\n  module: Fix performance regression on modules with large symbol tables\n  module: Add comments describing how the \"strmap\" logic works\n\nFix up conflicts in scripts/mod/file2alias.c due to the new linker-\ngenerated table approach to adding __mod_*_device_table entries.  The\nARM sa11x0 mcp bus needed to be converted to that too.\n"
    },
    {
      "commit": "9512938b885304f72c847379611d6018064af840",
      "tree": "92d1018ff67959cf465e0ec1df9c9c4617afdf83",
      "parents": [
        "f1db7afd917e54711798c64d78f8f5fb090f950d"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Thu Jan 12 17:20:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:11 2012 -0800"
      },
      "message": "cpumask: update setup_node_to_cpumask_map() comments\n\nnode_to_cpumask() has been replaced by cpumask_of_node(), and wholly\nremoved since commit 29c337a0 (\"cpumask: remove obsolete node_to_cpumask\nnow everyone uses cpumask_of_node\").\n\nSo update the comments for setup_node_to_cpumask_map().\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "476bc0015bf09dad39d36a8b19f76f0c181d1ec9",
      "tree": "054f322e639affab256cf7849f59f1dcdf117094",
      "parents": [
        "2329abfa344a9a824bc4c71f2415528777265510"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:18 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:18 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (arch)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
      "tree": "436e89246fd5ebcf737cae27e135a1995155329b",
      "parents": [
        "02d929502ce7b57f4835d8bb7c828d36e6d9e8ce",
        "54eed6cb16ec315565aaaf8e34252ca253a68b7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/numa: Add constraints check for nid parameters\n  mm, x86: Remove debug_pagealloc_enabled\n  x86/mm: Initialize high mem before free_all_bootmem()\n  arch/x86/kernel/e820.c: quiet sparse noise about plain integer as NULL pointer\n  arch/x86/kernel/e820.c: Eliminate bubble sort from sanitize_e820_map()\n  x86: Fix mmap random address range\n  x86, mm: Unify zone_sizes_init()\n  x86, mm: Prepare zone_sizes_init() for unification\n  x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit\n  x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32\n  x86, mm: Use max_pfn instead of highend_pfn\n  x86, mm: Move zone init from paging_init() on 64-bit\n  x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit\n"
    },
    {
      "commit": "cf3f33551b6d0acf8d21a53c9aa9cf8a0d73afa3",
      "tree": "b657e1b85befbcdff5b2ee39e5ff026d6342e694",
      "parents": [
        "69734b644bf19f20d2989e1a8e5bf59c837ee5c1",
        "1affc46cffad9f2bc7c9ffec85726446903a58f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 14:00:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 14:00:12 2012 -0800"
      },
      "message": "Merge branch \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Use \"do { } while(0)\" for empty lock_cmos()/unlock_cmos() macros\n  x86: Use \"do { } while(0)\" for empty flush_tlb_fix_spurious_fault() macro\n  x86, CPU: Drop superfluous get_cpu_cap() prototype\n  arch/x86/mm/pageattr.c: Quiet sparse noise; local functions should be static\n  arch/x86/kernel/ptrace.c: Quiet sparse noise\n  x86: Use kmemdup() in copy_thread(), rather than duplicating its implementation\n  x86: Replace the EVT_TO_HPET_DEV() macro with an inline function\n"
    },
    {
      "commit": "69734b644bf19f20d2989e1a8e5bf59c837ee5c1",
      "tree": "b1afd22d6e84db04516e466c223d67c1c340e6d9",
      "parents": [
        "67b0243131150391125d8d0beb5359d7aec78b55",
        "ceb7b40b65539a771d1bfaf47660ac0ee57e0c4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:59:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:59:14 2012 -0800"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)\n  x86: Fix atomic64_xxx_cx8() functions\n  x86: Fix and improve cmpxchg_double{,_local}()\n  x86_64, asm: Optimise fls(), ffs() and fls64()\n  x86, bitops: Move fls64.h inside __KERNEL__\n  x86: Fix and improve percpu_cmpxchg{8,16}b_double()\n  x86: Report cpb and eff_freq_ro flags correctly\n  x86/i386: Use less assembly in strlen(), speed things up a bit\n  x86: Use the same node_distance for 32 and 64-bit\n  x86: Fix rflags in FAKE_STACK_FRAME\n  x86: Clean up and extend do_int3()\n  x86: Call do_notify_resume() with interrupts enabled\n  x86/div64: Add a micro-optimization shortcut if base is power of two\n  x86-64: Cleanup some assembly entry points\n  x86-64: Slightly shorten line system call entry and exit paths\n  x86-64: Reduce amount of redundant code generated for invalidate_interruptNN\n  x86-64: Slightly shorten int_ret_from_sys_call\n  x86, efi: Convert efi_phys_get_time() args to physical addresses\n  x86: Default to vsyscall\u003demulate\n  x86-64: Set siginfo and context on vsyscall emulation faults\n  x86: consolidate xchg and xadd macros\n  ...\n"
    },
    {
      "commit": "67b0243131150391125d8d0beb5359d7aec78b55",
      "tree": "ce1299f3a6e5bb75e89ccf003095be4942cd5e29",
      "parents": [
        "376613e81ddc68f545fd5c87ffc3ad222b7abe5f",
        "c284b42abadbb22083bfde24d308899c08d44ffa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:58:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:58:21 2012 -0800"
      },
      "message": "Merge branch \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Skip cpus with apic-ids \u003e\u003d 255 in !x2apic_mode\n  x86, x2apic: Allow \"nox2apic\" to disable x2apic mode setup by BIOS\n  x86, x2apic: Fallback to xapic when BIOS doesn\u0027t setup interrupt-remapping\n  x86, acpi: Skip acpi x2apic entries if the x2apic feature is not present\n  x86, apic: Add probe() for apic_flat\n  x86: Simplify code by removing a !SMP #ifdefs from \u0027struct cpuinfo_x86\u0027\n  x86: Convert per-cpu counter icr_read_retry_count into a member of irq_stat\n  x86: Add per-cpu stat counter for APIC ICR read tries\n  pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86\n  x86: Fix the !CONFIG_NUMA build of the new CPU ID fixup code support\n  x86: Add NumaChip support\n  x86: Add x86_init platform override to fix up NUMA core numbering\n  x86: Make flat_init_apic_ldr() available\n"
    },
    {
      "commit": "adaf4ed2abbd285c93808060924eeec3af483aee",
      "tree": "425c6c37c08af0b69efaa7457c9b428eda347c36",
      "parents": [
        "ca3d30cc02f780f68771087040ce935add6ba2b7",
        "5f0a6e2d503896062f641639dacfe5055c2f593b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 04 15:00:43 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 04 15:01:28 2012 +0100"
      },
      "message": "Merge commit \u0027v3.2-rc7\u0027 into x86/asm\n\nMerge reason: Update from -rc4 to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a35fd28256e7736cc84af8931a16224f0bfaaf6c",
      "tree": "637b536f651b756ce3a83478ef5a42c15b67709f",
      "parents": [
        "e8524b2f43ab6747518aef81c709d104c478b1cd"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Dec 21 17:45:16 2011 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri Dec 23 11:00:50 2011 -0800"
      },
      "message": "x86, acpi: Skip acpi x2apic entries if the x2apic feature is not present\n\nIf the x2apic feature is not present (either the cpu is not capable of it\nor the user has disabled the feature using boot-parameter etc), ignore the\nx2apic MADT and SRAT entries provided by the ACPI tables.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20111222014632.540896503@sbsiddha-desk.sc.intel.com\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "45aa0663cc408617b79a2b53f0a5f50e94688a48",
      "tree": "0a53931c317c3c72a3555bd2fbb70a881ee870f2",
      "parents": [
        "511585a28e5b5fd1cac61e601e42efc4c5dd64b5",
        "7bd0b0f0da3b1ec11cbcc798eb0ef747a1184077"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 12:14:26 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 12:14:26 2011 +0100"
      },
      "message": "Merge branch \u0027memblock-kill-early_node_map\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/memblock\n"
    },
    {
      "commit": "b6999b19120931ede364fa3b685e698a61fed31d",
      "tree": "cadfc55786baf45ae05b02523d61e476eaf18154",
      "parents": [
        "09dc3cf93f7d16fdd37a0ad8486faebb5e2769ec"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Thu Dec 08 14:34:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 07:50:28 2011 -0800"
      },
      "message": "thp: add compound tail page _mapcount when mapped\n\nWith the 3.2-rc kernel, IOMMU 2M pages in KVM works.  But when I tried\nto use IOMMU 1GB pages in KVM, I encountered an oops and the 1GB page\nfailed to be used.\n\nThe root cause is that 1GB page allocation calls gup_huge_pud() while 2M\npage calls gup_huge_pmd.  If compound pages are used and the page is a\ntail page, gup_huge_pmd() increases _mapcount to record tail page are\nmapped while gup_huge_pud does not do that.\n\nSo when the mapped page is relesed, it will result in kernel oops\nbecause the page is not marked mapped.\n\nThis patch add tail process for compound page in 1GB huge page which\nkeeps the same process as 2M page.\n\nReproduce like:\n1. Add grub boot option: hugepagesz\u003d1G hugepages\u003d8\n2. mount -t hugetlbfs -o pagesize\u003d1G hugetlbfs /dev/hugepages\n3. qemu-kvm -m 2048 -hda os-kvm.img -cpu kvm64 -smp 4 -mem-path /dev/hugepages\n\t-net none -device pci-assign,host\u003d07:00.1\n\n  kernel BUG at mm/swap.c:114!\n  invalid opcode: 0000 [#1] SMP\n  Call Trace:\n    put_page+0x15/0x37\n    kvm_release_pfn_clean+0x31/0x36\n    kvm_iommu_put_pages+0x94/0xb1\n    kvm_iommu_unmap_memslots+0x80/0xb6\n    kvm_assign_device+0xba/0x117\n    kvm_vm_ioctl_assigned_device+0x301/0xa47\n    kvm_vm_ioctl+0x36c/0x3a2\n    do_vfs_ioctl+0x49e/0x4e4\n    sys_ioctl+0x5a/0x7c\n    system_call_fastpath+0x16/0x1b\n  RIP  put_compound_page+0xd4/0x168\n\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54eed6cb16ec315565aaaf8e34252ca253a68b7b",
      "tree": "281cc87a1fd838255b02e39887e49596d8a1fa58",
      "parents": [
        "54c29c635ae91f5d75ced7bffeaa77ba37ca02bb"
      ],
      "author": {
        "name": "Petr Holasek",
        "email": "pholasek@redhat.com",
        "time": "Thu Dec 08 13:16:41 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 09 08:03:34 2011 +0100"
      },
      "message": "x86/numa: Add constraints check for nid parameters\n\nThis patch adds constraint checks to the numa_set_distance()\nfunction.\n\nWhen the check triggers (this should not happen normally) it\nemits a warning and avoids a store to a negative index in\nnuma_distance[] array - i.e. avoids memory corruption.\n\nNegative ids can be passed when the pxm-to-nids mapping is not\nproperly filled while parsing the SRAT.\n\nSigned-off-by: Petr Holasek \u003cpholasek@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20111208121640.GA2229@dhcp-27-244.brq.redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "54c29c635ae91f5d75ced7bffeaa77ba37ca02bb",
      "tree": "cddf131b5e70809ec5c282f619de0635e45c1cfa",
      "parents": [
        "855c743a27bb58a9a521bdc485ef5acfdb69badc"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Nov 29 17:05:11 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:24:07 2011 +0100"
      },
      "message": "mm, x86: Remove debug_pagealloc_enabled\n\nWhen (no)bootmem finish operation, it pass pages to buddy\nallocator. Since debug_pagealloc_enabled is not set, we will do\nnot protect pages, what is not what we want with\nCONFIG_DEBUG_PAGEALLOC\u003dy.\n\nTo fix remove debug_pagealloc_enabled. That variable was\nintroduced by commit 12d6f21e \"x86: do not PSE on\nCONFIG_DEBUG_PAGEALLOC\u003dy\" to get more CPA (change page\nattribude) code testing. But currently we have CONFIG_CPA_DEBUG,\nwhich test CPA.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: linux-mm@kvack.org\nLink: http://lkml.kernel.org/r/1322582711-14571-1-git-send-email-sgruszka@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "855c743a27bb58a9a521bdc485ef5acfdb69badc",
      "tree": "0b53ae9a389f64a6f4c10492786d45d0453c6c25",
      "parents": [
        "706d9a9c8b5758390036b9980a2b12d809599777"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Dec 06 09:08:34 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:23:53 2011 +0100"
      },
      "message": "x86/mm: Initialize high mem before free_all_bootmem()\n\nPatch fixes a boot crash with pagealloc debugging enabled:\n\n  Initializing HighMem for node 0 (000377fe:0003fff0)\n  BUG: unable to handle kernel paging request at f6fefe80\n  IP: [\u003cc1621ab5\u003e] find_range_array+0x5e/0x69\n  [...]\n  Call Trace:\n   [\u003cc1622064\u003e] __get_free_all_memory_range+0x39/0xb4\n   [\u003cc1620dd0\u003e] add_highpages_with_active_regions+0x18/0x9b\n   [\u003cc1621a2e\u003e] set_highmem_pages_init+0x70/0x90\n   [\u003cc162122b\u003e] mem_init+0x50/0x21b\n   [\u003cc16155bd\u003e] start_kernel+0x1bf/0x31c\n   [\u003cc1615065\u003e] i386_start_kernel+0x65/0x67\n\nThe crash happens when memblock wants to allocate big area for\ntemporary \"struct range\" array and reuses pages from top of low\nmemory, which were already passed to the buddy allocator.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: linux-mm@kvack.org\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nLink: http://lkml.kernel.org/r/20111206080833.GB3105@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d070eff6bbbea6137ac14190805f9549c0a8b01",
      "tree": "81d9ba5a4a595bf21c9269e6b8e176edd4fad8c8",
      "parents": [
        "98b8b99ae1233a5408b136544e900a9cfb46e08f"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Nov 15 14:49:00 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 05 17:11:05 2011 +0100"
      },
      "message": "arch/x86/mm/pageattr.c: Quiet sparse noise; local functions should be static\n\nLocal functions should be marked static.  This also quiets the\nfollowing sparse noise:\n\n  warning: symbol \u0027_set_memory_array\u0027 was not declared. Should it be static?\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: hartleys@visionengravers.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9af0c7a6fa860698d080481f24a342ba74b68982",
      "tree": "51d5b388fc86379193bcdbba16fa6cd44dcb16ec",
      "parents": [
        "176239153049a023d060ce95b05f7ef31667e362"
      ],
      "author": {
        "name": "Ludwig Nussel",
        "email": "ludwig.nussel@suse.de",
        "time": "Tue Nov 15 14:46:46 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 05 17:07:23 2011 +0100"
      },
      "message": "x86: Fix mmap random address range\n\nOn x86_32 casting the unsigned int result of get_random_int() to\nlong may result in a negative value.  On x86_32 the range of\nmmap_rnd() therefore was -255 to 255.  The 32bit mode on x86_64\nused 0 to 255 as intended.\n\nThe bug was introduced by 675a081 (\"x86: unify mmap_{32|64}.c\")\nin January 2008.\n\nSigned-off-by: Ludwig Nussel \u003cludwig.nussel@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: harvey.harrison@gmail.com\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/201111152246.pAFMklOB028527@wpaz5.hot.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cd1c8d4dc7ecca9e9431e2dabe41ae9c7d89e51",
      "tree": "7ab077a7854d5f2371030d2080ee8db10ded9a69",
      "parents": [
        "f1b23714cb578c88ea051768bf26b459e1264411"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Nov 15 14:49:09 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 05 17:06:34 2011 +0100"
      },
      "message": "x86/paravirt: PTE updates in k(un)map_atomic need to be synchronous, regardless of lazy_mmu mode\n\nFix an outstanding issue that has been reported since 2.6.37.\nUnder a heavy loaded machine processing \"fork()\" calls could\ncrash with:\n\nBUG: unable to handle kernel paging request at f573fc8c\nIP: [\u003cc01abc54\u003e] swap_count_continued+0x104/0x180\n*pdpt \u003d 000000002a3b9027 *pde \u003d 0000000001bed067 *pte \u003d 0000000000000000 Oops: 0000 [#1] SMP\nModules linked in:\nPid: 1638, comm: apache2 Not tainted 3.0.4-linode37 #1\nEIP: 0061:[\u003cc01abc54\u003e] EFLAGS: 00210246 CPU: 3\nEIP is at swap_count_continued+0x104/0x180\n.. snip..\nCall Trace:\n [\u003cc01ac222\u003e] ? __swap_duplicate+0xc2/0x160\n [\u003cc01040f7\u003e] ? pte_mfn_to_pfn+0x87/0xe0\n [\u003cc01ac2e4\u003e] ? swap_duplicate+0x14/0x40\n [\u003cc01a0a6b\u003e] ? copy_pte_range+0x45b/0x500\n [\u003cc01a0ca5\u003e] ? copy_page_range+0x195/0x200\n [\u003cc01328c6\u003e] ? dup_mmap+0x1c6/0x2c0\n [\u003cc0132cf8\u003e] ? dup_mm+0xa8/0x130\n [\u003cc013376a\u003e] ? copy_process+0x98a/0xb30\n [\u003cc013395f\u003e] ? do_fork+0x4f/0x280\n [\u003cc01573b3\u003e] ? getnstimeofday+0x43/0x100\n [\u003cc010f770\u003e] ? sys_clone+0x30/0x40\n [\u003cc06c048d\u003e] ? ptregs_clone+0x15/0x48\n [\u003cc06bfb71\u003e] ? syscall_call+0x7/0xb\n\nThe problem is that in copy_page_range() we turn lazy mode on,\nand then in swap_entry_free() we call swap_count_continued()\nwhich ends up in:\n\n         map \u003d kmap_atomic(page, KM_USER0) + offset;\n\nand then later we touch *map.\n\nSince we are running in batched mode (lazy) we don\u0027t actually\nset up the PTE mappings and the kmap_atomic is not done\nsynchronously and ends up trying to dereference a page that has\nnot been set.\n\nLooking at kmap_atomic_prot_pfn(), it uses\n\u0027arch_flush_lazy_mmu_mode\u0027 and doing the same in\nkmap_atomic_prot() and __kunmap_atomic() makes the problem go\naway.\n\nInterestingly, commit b8bcfe997e4615 (\"x86/paravirt: remove lazy\nmode in interrupts\") removed part of this to fix an interrupt\nissue - but it went to far and did not consider this scenario.\n\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4fc3490114bb159bd4fff1b3c96f4320fe6fb08f",
      "tree": "71941c92c7352b1b78c169020946fecf1eae8f4a",
      "parents": [
        "01acc269083015e2f78407f59dc8d6378fce22ee"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@amacapital.net",
        "time": "Mon Nov 07 16:33:40 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 05 12:17:27 2011 +0100"
      },
      "message": "x86-64: Set siginfo and context on vsyscall emulation faults\n\nTo make this work, we teach the page fault handler how to send\nsignals on failed uaccess.  This only works for user addresses\n(kernel addresses will never hit the page fault handler in the\nfirst place), so we need to generate signals for those\nseparately.\n\nThis gets the tricky case right: if the user buffer spans\nmultiple pages and only the second page is invalid, we set\ncr2 and si_addr correctly.  UML relies on this behavior to\n\"fault in\" pages as needed.\n\nWe steal a bit from thread_info.uaccess_err to enable this.\nBefore this change, uaccess_err was a 32-bit boolean value.\n\nThis fixes issues with UML when vsyscall\u003demulate.\n\nReported-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: richard -rw- weinberger \u003crichard.weinberger@gmail.com\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/4c8f91de7ec5cd2ef0f59521a04e1015f11e42b4.1320712291.git.luto@amacapital.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d4bbf7e7759afc172e2bfbc5c416324590049cdd",
      "tree": "7eab5ee5481cd3dcf1162329fec827177640018a",
      "parents": [
        "a150439c4a97db379f0ed6faa46fbbb6e7bf3cb2",
        "401d0069cb344f401bc9d264c31db55876ff78c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 into x86/memblock\n\nConflicts \u0026 resolutions:\n\n* arch/x86/xen/setup.c\n\n\tdc91c728fd \"xen: allow extra memory to be in multiple regions\"\n\t24aa07882b \"memblock, x86: Replace memblock_x86_reserve/free...\"\n\n\tconflicted on xen_add_extra_mem() updates.  The resolution is\n\ttrivial as the latter just want to replace\n\tmemblock_x86_reserve_range() with memblock_reserve().\n\n* drivers/pci/intel-iommu.c\n\n\t166e9278a3f \"x86/ia64: intel-iommu: move to drivers/iommu/\"\n\t5dfe8660a3d \"bootmem: Replace work_with_active_regions() with...\"\n\n\tconflicted as the former moved the file under drivers/iommu/.\n\tResolved by applying the chnages from the latter on the moved\n\tfile.\n\n* mm/Kconfig\n\n\t6661672053a \"memblock: add NO_BOOTMEM config symbol\"\n\tc378ddd53f9 \"memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option\"\n\n\tconflicted trivially.  Both added config options.  Just\n\tletting both add their own options resolves the conflict.\n\n* mm/memblock.c\n\n\td1f0ece6cdc \"mm/memblock.c: small function definition fixes\"\n\ted7b56a799c \"memblock: Remove memblock_memory_can_coalesce()\"\n\n\tconfliected.  The former updates function removed by the\n\tlatter.  Resolution is trivial.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "176239153049a023d060ce95b05f7ef31667e362",
      "tree": "fce64421a695752fc9dfa9fa2331c11f95083146",
      "parents": [
        "248b52b97da7a712d2263a51d8d84c959f38ef75"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:22 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:55 2011 +0100"
      },
      "message": "x86, mm: Unify zone_sizes_init()\n\nNow that zone_sizes_init() is identical on 32-bit and 64-bit,\nmove the code to arch/x86/mm/init.c and use it for both\narchitectures.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-7-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "248b52b97da7a712d2263a51d8d84c959f38ef75",
      "tree": "f6ee6323459627ae37287b19d5794fc25fde62ca",
      "parents": [
        "ece838b6257412647197c072fe59dfc6615df144"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:21 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:53 2011 +0100"
      },
      "message": "x86, mm: Prepare zone_sizes_init() for unification\n\nMake 32-bit and 64-bit zone_sizes_init() identical in\npreparation for unification.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-6-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ece838b6257412647197c072fe59dfc6615df144",
      "tree": "91c8b9a50bff70d99a3a46a50be4f274cce15161",
      "parents": [
        "80b3cac97bc14fdf839d967602e599cbf82ea336"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:50 2011 +0100"
      },
      "message": "x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit\n\n64-bit has no highmem so max_low_pfn is always the same as\n\u0027max_pfn\u0027.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-5-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80b3cac97bc14fdf839d967602e599cbf82ea336",
      "tree": "d273ef1d4096b77679ce4e69df0fa2a065dfeaaa",
      "parents": [
        "e4794640ca408acda18eb31b126f58a58803b9c9"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:19 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:48 2011 +0100"
      },
      "message": "x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32\n\nIn preparation for unifying 32-bit and 64-bit zone_sizes_init()\nmake sure ZONE_DMA32 is wrapped in CONFIG_ZONE_DMA32.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-4-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e4794640ca408acda18eb31b126f58a58803b9c9",
      "tree": "44d964d5df7d1cddaf9ef817daa734abbac78fb5",
      "parents": [
        "4c0b2e5f8940fec7cbeafcf641fecd5e746329c5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:45 2011 +0100"
      },
      "message": "x86, mm: Use max_pfn instead of highend_pfn\n\nThe \u0027highend_pfn\u0027 variable is always set to \u0027max_pfn\u0027 so just\nuse the latter directly.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-3-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4c0b2e5f8940fec7cbeafcf641fecd5e746329c5",
      "tree": "a4e4e8e9e3f59500a142e51a157530891d4479b0",
      "parents": [
        "ff14c1d01576fb839a925a42596582f6c68a1a1a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:17 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:43 2011 +0100"
      },
      "message": "x86, mm: Move zone init from paging_init() on 64-bit\n\nThis patch introduces a zone_sizes_init() helper function on\n64-bit to make it more similar to 32-bit init.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-2-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ff14c1d01576fb839a925a42596582f6c68a1a1a",
      "tree": "aaeb66880b5da8a7bb358f8d7b419ba284fe6317",
      "parents": [
        "5e442a493fc59fa536c76db1fff5b49ca36a88c5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Nov 01 15:58:16 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 10:22:41 2011 +0100"
      },
      "message": "x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit\n\nUse MAX_DMA_PFN which represents the 16 MB ISA DMA limit on\n32-bit x86 just like we do on 64-bit.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1320155902-10424-1-git-send-email-penberg@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b35a35b556f5e6b7993ad0baf20173e75c09ce8c",
      "tree": "85ea46dde6e97d4c73b724698fd65a403529953e",
      "parents": [
        "e0d85a366c2300efd230ef82a9b22110b0658331"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:37:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:58 2011 -0700"
      },
      "message": "thp: share get_huge_page_tail()\n\nThis avoids duplicating the function in every arch gup_fast.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70b50f94f1644e2aa7cb374819cfd93f3c28d725",
      "tree": "79198cd9a92600140827a670d1ed5eefdcd23d79",
      "parents": [
        "994c0e992522c123298b4a91b72f5e67ba2d1123"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:36:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:57 2011 -0700"
      },
      "message": "mm: thp: tail page refcounting fix\n\nMichel while working on the working set estimation code, noticed that\ncalling get_page_unless_zero() on a random pfn_to_page(random_pfn)\nwasn\u0027t safe, if the pfn ended up being a tail page of a transparent\nhugepage under splitting by __split_huge_page_refcount().\n\nHe then found the problem could also theoretically materialize with\npage_cache_get_speculative() during the speculative radix tree lookups\nthat uses get_page_unless_zero() in SMP if the radix tree page is freed\nand reallocated and get_user_pages is called on it before\npage_cache_get_speculative has a chance to call get_page_unless_zero().\n\nSo the best way to fix the problem is to keep page_tail-\u003e_count zero at\nall times.  This will guarantee that get_page_unless_zero() can never\nsucceed on any tail page.  page_tail-\u003e_mapcount is guaranteed zero and\nis unused for all tail pages of a compound page, so we can simply\naccount the tail page references there and transfer them to\ntail_page-\u003e_count in __split_huge_page_refcount() (in addition to the\nhead_page-\u003e_mapcount).\n\nWhile debugging this s/_count/_mapcount/ change I also noticed get_page is\ncalled by direct-io.c on pages returned by get_user_pages.  That wasn\u0027t\nentirely safe because the two atomic_inc in get_page weren\u0027t atomic.  As\nopposed to other get_user_page users like secondary-MMU page fault to\nestablish the shadow pagetables would never call any superflous get_page\nafter get_user_page returns.  It\u0027s safer to make get_page universally safe\nfor tail pages and to use get_page_foll() within follow_page (inside\nget_user_pages()).  get_page_foll() is safe to do the refcounting for tail\npages without taking any locks because it is run within PT lock protected\ncritical sections (PT lock for pte and page_table_lock for\npmd_trans_huge).\n\nThe standard get_page() as invoked by direct-io instead will now take\nthe compound_lock but still only for tail pages.  The direct-io paths\nare usually I/O bound and the compound_lock is per THP so very\nfinegrined, so there\u0027s no risk of scalability issues with it.  A simple\ndirect-io benchmarks with all lockdep prove locking and spinlock\ndebugging infrastructure enabled shows identical performance and no\noverhead.  So it\u0027s worth it.  Ideally direct-io should stop calling\nget_page() on pages returned by get_user_pages().  The spinlock in\nget_page() is already optimized away for no-THP builds but doing\nget_page() on tail pages returned by GUP is generally a rare operation\nand usually only run in I/O paths.\n\nThis new refcounting on page_tail-\u003e_mapcount in addition to avoiding new\nRCU critical sections will also allow the working set estimation code to\nwork without any further complexity associated to the tail page\nrefcounting with THP.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca836a25435ef1b9914840ed0a310c9b6ac261d1",
      "tree": "13c94f7e2fff14eb526608c2884b5faa3dab1f90",
      "parents": [
        "d630ba565f3d806d64df4415d4a8457b4ab23db6",
        "664ef2123f4abc05857bf9b2dcccb800fa6fce26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:46:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:46:02 2011 -0700"
      },
      "message": "Merge branch \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86-64, doc: Remove int 0xcc from entry_64.S documentation\n  x86, vsyscall: Add missing \u003casm/fixmap.h\u003e to arch/x86/mm/fault.c\n\nFix up trivial conflicts in arch/x86/mm/fault.c (asm/fixmap.h vs\nasm/vsyscall.h: both work, which to use? Whatever..)\n"
    },
    {
      "commit": "e34eb39c1c791fe79da6aae0d9057f0c74c2f0ed",
      "tree": "cfc27d987b2c888f189f35326702220b694596cc",
      "parents": [
        "396e6e49c58bb23d1814d3c240c736c9f01523c5",
        "910b2c5122ab787179a790ca1dec616fc80f0173"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:03:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 05:03:12 2011 -0700"
      },
      "message": "Merge branch \u0027x86-cpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-cpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, amd: Include linux/elf.h since we use stuff from asm/elf.h\n  x86: cache_info: Update calculation of AMD L3 cache indices\n  x86: cache_info: Kill the atomic allocation in amd_init_l3_cache()\n  x86: cache_info: Kill the moronic shadow struct\n  x86: cache_info: Remove bogus free of amd_l3_cache data\n  x86, amd: Include elf.h explicitly, prepare the code for the module.h split\n  x86-32, amd: Move va_align definition to unbreak 32-bit build\n  x86, amd: Move BSP code to cpu_dev helper\n  x86: Add a BSP cpu_dev helper\n  x86, amd: Avoid cache aliasing penalties on AMD family 15h\n"
    },
    {
      "commit": "7b86572a7a920e3181b041b8d1a01582e4610b66",
      "tree": "d0c76905c962ebf1a36c58b70cd24dbb6ba51d3d",
      "parents": [
        "0791e98dd1cd1833547f814188b25b6c8c711ad5",
        "eab9e6137f237681a04649e786cc4d942bedd6d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:42:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:42:03 2011 +0200"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86-64: Fix CFI data for interrupt frames\n  x86-64: Don\u0027t apply destructive erratum workaround on unaffected CPUs\n"
    },
    {
      "commit": "59e52534172d845ebffb0d7e85fc56fb7b857051",
      "tree": "49552e03f1bdb413cd8b5f7542e91770688d7047",
      "parents": [
        "73692d9bb58ecc2fa73f4b2bfcf6eadaa6d49a26",
        "0d89e54c8249645404283436d952afc261a04e1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (59 commits)\n  MAINTAINERS: linux-m32r is moderated for non-subscribers\n  linux@lists.openrisc.net is moderated for non-subscribers\n  Drop default from \"DM365 codec select\" choice\n  parisc: Kconfig: cleanup Kernel page size default\n  Kconfig: remove redundant CONFIG_ prefix on two symbols\n  cris: remove arch/cris/arch-v32/lib/nand_init.S\n  microblaze: add missing CONFIG_ prefixes\n  h8300: drop puzzling Kconfig dependencies\n  MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers\n  tty: drop superfluous dependency in Kconfig\n  ARM: mxc: fix Kconfig typo \u0027i.MX51\u0027\n  Fix file references in Kconfig files\n  aic7xxx: fix Kconfig references to READMEs\n  Fix file references in drivers/ide/\n  thinkpad_acpi: Fix printk typo \u0027bluestooth\u0027\n  bcmring: drop commented out line in Kconfig\n  btmrvl_sdio: fix typo \u0027btmrvl_sdio_sd6888\u0027\n  doc: raw1394: Trivial typo fix\n  CIFS: Don\u0027t free volume_info-\u003eUNC until we are entirely done with it.\n  treewide: Correct spelling of successfully in comments\n  ...\n"
    },
    {
      "commit": "8548c84da2f47e71bbbe300f55edb768492575f7",
      "tree": "dee4aead0c592f64829bb1211c463ad86cce0dfe",
      "parents": [
        "1bf1aacedcda23c75e70fa3394e1caa6d4b5ee49"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sun Oct 23 23:19:12 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 24 06:55:20 2011 +0200"
      },
      "message": "x86: Fix S4 regression\n\nCommit 4b239f458 (\"x86-64, mm: Put early page table high\") causes a S4\nregression since 2.6.39, namely the machine reboots occasionally at S4\nresume.  It doesn\u0027t happen always, overall rate is about 1/20.  But,\nlike other bugs, once when this happens, it continues to happen.\n\nThis patch fixes the problem by essentially reverting the memory\nassignment in the older way.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Yinghai Lu \u003cyinghai.lu@oracle.com\u003e\n[ We\u0027ll hopefully find the real fix, but that\u0027s too late for 3.1 now ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e05139f2569ecf699b229a6473a86cdffed62956",
      "tree": "58882e5b22d9f309c8748f72d25e92ee8de883b7",
      "parents": [
        "a102a9ece5489e1718cd7543aa079082450ac3a2"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Wed Sep 28 16:56:51 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 28 19:04:48 2011 +0200"
      },
      "message": "x86-64: Don\u0027t apply destructive erratum workaround on unaffected CPUs\n\nErratum 93 applies to AMD K8 CPUs only, and its workaround\n(forcing the upper 32 bits of %rip to all get set under certain\nconditions) is actually getting in the way of analyzing page\nfaults occurring during EFI physical mode runtime calls (in\nparticular the page table walk shown is completely unrelated to\nthe actual fault). This is because typically EFI runtime code\nlives in the space between 2G and 4G, which - modulo the above\nmanipulation - is likely to overlap with the kernel or modules\narea.\n\nWhile even for the other errata workarounds their taking effect\ncould be limited to just the affected CPUs, none of them appears\nto be destructive, and they\u0027re generally getting called only\noutside of performance critical paths, so they\u0027re being left\nuntouched.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nLink: http://lkml.kernel.org/r/4E835FE30200007800058464@nat28.tlf.novell.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e060c38434b2caa78efe7cedaff4191040b65a15",
      "tree": "407361230bf6733f63d8e788e4b5e6566ee04818",
      "parents": [
        "10e4ac572eeffe5317019bd7330b6058a400dfc2",
        "cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:05 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:18 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forward merge with Linus to be able to merge patches\nbased on more recent version of the tree.\n"
    },
    {
      "commit": "469bfb4a50954c7c1ec506e5399fdb1dbf230650",
      "tree": "d12498366ce9c411df8986b76f15293d93fab0cf",
      "parents": [
        "e81b15168e2d3d1ab56b13782fe8ad0cb362379d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Aug 01 23:07:51 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:57:06 2011 +0200"
      },
      "message": "Remove unneeded version.h include from arch/x86/\n\nIt was pointed out by \u0027make versioncheck\u0027 that the include of\nlinux/version.h is not needed in arch/x86/mm/mmio-mod.c .\nThis patch removes it.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "fab1167c4698e3ff11ebb06281d78def6c53728b",
      "tree": "31066232c037d6a2c06b21b8beaca4f335d64dcb",
      "parents": [
        "93ee7a9340d64f20295aacc3fb6a22b759323280"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Aug 15 22:28:56 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Aug 16 08:04:02 2011 -0700"
      },
      "message": "x86, vsyscall: Add missing \u003casm/fixmap.h\u003e to arch/x86/mm/fault.c\n\narch/x86/mm/fault.c now depend on having the symbol VSYSCALL_START\ndefined, which is best handled by including \u003casm/fixmap.h\u003e (it isn\u0027t\nunreasonable we may want other fixed addresses in this file in the\nfuture, and so it is cleaner than including \u003casm/vsyscall.h\u003e\ndirectly.)\n\nThis addresses an x86-64 allnoconfig build failure.  On other\nconfigurations it was masked by an indirect path:\n\n\u003casm/smp.h\u003e -\u003e \u003casm/apic.h\u003e -\u003e \u003casm/fixmap.h\u003e -\u003e \u003casm/vsyscall.h\u003e\n\n... however, the first such include is conditional on CONFIG_X86_LOCAL_APIC.\n\nOriginally-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/CA%2B55aFxsOMc9\u003dp02r8-QhJ\u003dh\u003dMqwckk4_Pnx9LQt5%2BfqMp_exQ@mail.gmail.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "cedf03bd9aa54d1d7a9065dddc9e76505f476b12",
      "tree": "1c44a02dabb741b539ea543b6f8bb7079e48ae96",
      "parents": [
        "2f6a123821a7feaba7cee787ef0f21d2354d1730"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Aug 15 10:18:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 15 19:10:50 2011 -0700"
      },
      "message": "x86: fix mm/fault.c build\n\narch/x86/mm/fault.c needs to include asm/vsyscall.h to fix a\nbuild error:\n\n  arch/x86/mm/fault.c: In function \u0027__bad_area_nosemaphore\u0027:\n  arch/x86/mm/fault.c:728: error: \u0027VSYSCALL_START\u0027 undeclared (first use in this function)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06e727d2a5d9d889fabad35223ad77205a9bebb9",
      "tree": "2a2d4ec9ed95c95f044c8d69e87ab47195a1d2ed",
      "parents": [
        "e68ff9cd15552e46e0f993eace25af0947b1222d",
        "3ae36655b97a03fa1decf72f04078ef945647c1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 12 20:46:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 12 20:46:24 2011 -0700"
      },
      "message": "Merge branch \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip\n\n* \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip:\n  x86-64: Rework vsyscall emulation and add vsyscall\u003d parameter\n  x86-64: Wire up getcpu syscall\n  x86: Remove unnecessary compile flag tweaks for vsyscall code\n  x86-64: Add vsyscall:emulate_vsyscall trace event\n  x86-64: Add user_64bit_mode paravirt op\n  x86-64, xen: Enable the vvar mapping\n  x86-64: Work around gold bug 13023\n  x86-64: Move the \"user\" vsyscall segment out of the data segment.\n  x86-64: Pad vDSO to a page boundary\n"
    },
    {
      "commit": "3ae36655b97a03fa1decf72f04078ef945647c1a",
      "tree": "f6f5fbc743909d66e6823c9325ddba9d9d3646ad",
      "parents": [
        "fce8dc06423d6fb2709469dc5c55b04e09c1d126"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@mit.edu",
        "time": "Wed Aug 10 11:15:32 2011 -0400"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Aug 10 19:26:46 2011 -0500"
      },
      "message": "x86-64: Rework vsyscall emulation and add vsyscall\u003d parameter\n\nThere are three choices:\n\nvsyscall\u003dnative: Vsyscalls are native code that issues the\ncorresponding syscalls.\n\nvsyscall\u003demulate (default): Vsyscalls are emulated by instruction\nfault traps, tested in the bad_area path.  The actual contents of\nthe vsyscall page is the same as the vsyscall\u003dnative case except\nthat it\u0027s marked NX.  This way programs that make assumptions about\nwhat the code in the page does will not be confused when they read\nthat code.\n\nvsyscall\u003dnone: Trying to execute a vsyscall will segfault.\n\nSigned-off-by: Andy Lutomirski \u003cluto@mit.edu\u003e\nLink: http://lkml.kernel.org/r/8449fb3abf89851fd6b2260972666a6f82542284.1312988155.git.luto@mit.edu\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "9387f774d61b01ab71bade85e6d0bfab0b3419bd",
      "tree": "951ee27408fe07ac9907059eef430502cd45c1db",
      "parents": [
        "8fa8b035085e7320c15875c1f6b03b290ca2dd66"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Sat Aug 06 14:31:38 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sat Aug 06 11:44:57 2011 -0700"
      },
      "message": "x86-32, amd: Move va_align definition to unbreak 32-bit build\n\nhpa reported that dfb09f9b7ab03fd367740e541a5caf830ed56726 breaks 32-bit\nbuilds with the following error message:\n\n/home/hpa/kernel/linux-tip.cpu/arch/x86/kernel/cpu/amd.c:437: undefined\nreference to `va_align\u0027\n/home/hpa/kernel/linux-tip.cpu/arch/x86/kernel/cpu/amd.c:436: undefined\nreference to `va_align\u0027\n\nThis is due to the fact that va_align is a global in a 64-bit only\ncompilation unit. Move it to mmap.c where it is visible to both\nsubarches.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nLink: http://lkml.kernel.org/r/1312633899-1131-1-git-send-email-bp@amd64.org\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "dfb09f9b7ab03fd367740e541a5caf830ed56726",
      "tree": "8bd8fdbbf3fb67f7d0aed73a1e8e1c7034ed2d54",
      "parents": [
        "13f9a3737c903ace57d8aaebe81a3bbaeb0aa0a2"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Fri Aug 05 15:15:08 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri Aug 05 12:26:44 2011 -0700"
      },
      "message": "x86, amd: Avoid cache aliasing penalties on AMD family 15h\n\nThis patch provides performance tuning for the \"Bulldozer\" CPU. With its\nshared instruction cache there is a chance of generating an excessive\nnumber of cache cross-invalidates when running specific workloads on the\ncores of a compute module.\n\nThis excessive amount of cross-invalidations can be observed if cache\nlines backed by shared physical memory alias in bits [14:12] of their\nvirtual addresses, as those bits are used for the index generation.\n\nThis patch addresses the issue by clearing all the bits in the [14:12]\nslice of the file mapping\u0027s virtual address at generation time, thus\nforcing those bits the same for all mappings of a single shared library\nacross processes and, in doing so, avoids instruction cache aliases.\n\nIt also adds the command line option \"align_va_addr\u003d(32|64|on|off)\" with\nwhich virtual address alignment can be enabled for 32-bit or 64-bit x86\nindividually, or both, or be completely disabled.\n\nThis change leaves virtual region address allocation on other families\nand/or vendors unaffected.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nLink: http://lkml.kernel.org/r/1312550110-24160-2-git-send-email-bp@amd64.org\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "318f5a2a672152328c9fb4dead504b89ec738a43",
      "tree": "d37bcc93c8c1b29c057c44dac13148531706631e",
      "parents": [
        "5d5791af4c0d4fd32093882357506355c3357503"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@MIT.EDU",
        "time": "Wed Aug 03 09:31:53 2011 -0400"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Aug 04 16:13:49 2011 -0700"
      },
      "message": "x86-64: Add user_64bit_mode paravirt op\n\nThree places in the kernel assume that the only long mode CPL 3\nselector is __USER_CS.  This is not true on Xen -- Xen\u0027s sysretq\nchanges cs to the magic value 0xe033.\n\nTwo of the places are corner cases, but as of \"x86-64: Improve\nvsyscall emulation CS and RIP handling\"\n(c9712944b2a12373cb6ff8059afcfb7e826a6c54), vsyscalls will segfault\nif called with Xen\u0027s extra CS selector.  This causes a panic when\nolder init builds die.\n\nIt seems impossible to make Xen use __USER_CS reliably without\ntaking a performance hit on every system call, so this fixes the\ntests instead with a new paravirt op.  It\u0027s a little ugly because\nptrace.h can\u0027t include paravirt.h.\n\nSigned-off-by: Andy Lutomirski \u003cluto@mit.edu\u003e\nLink: http://lkml.kernel.org/r/f4fcb3947340d9e96ce1054a432f183f9da9db83.1312378163.git.luto@mit.edu\nReported-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e39264ed4f687251632c0a6f4a70c2e51719662",
      "tree": "27651ca028328ac5e7b5a030312ad113b6cb8b2b",
      "parents": [
        "dc43d9fa73d82083656fb9c02f4823bcdcfb9f91",
        "1e01979c8f502ac13e3cdece4f38712c5944e6e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:04:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:04:18 2011 -0700"
      },
      "message": "Merge branch \u0027x86-numa-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-numa-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, numa: Implement pfn -\u003e nid mapping granularity check\n  x86, mm: s/PAGES_PER_ELEMENT/PAGES_PER_SECTION/\n"
    },
    {
      "commit": "0a613b647bac0cfab7b7d81f11271883209a70ef",
      "tree": "e08bc77eb987ef8f4560c0c46cd4ed54784b23c0",
      "parents": [
        "eb47418dc56baaca33d270a868d8ddaa81150952",
        "a6c23905ff0d6bbddf590ef0838489ee0f6c74ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:02:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:02:38 2011 -0700"
      },
      "message": "Merge branch \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, smpboot: Mark the names[] array in __inquire_remote_apic() as const\n  x86: Convert vmalloc()+memset() to vzalloc()\n"
    },
    {
      "commit": "4d4abdcb1dee03a4f9d6d2021622ed07e14dfd17",
      "tree": "4ed4c74b70240451065165fda5fb2059f8c6b1e5",
      "parents": [
        "0342cbcfced2ee937d7c8e1c63f3d3082da7c7dc",
        "7fcfd1abd6480d3b9ef17f5759c175e036e835cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:39 2011 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (123 commits)\n  perf: Remove the nmi parameter from the oprofile_perf backend\n  x86, perf: Make copy_from_user_nmi() a library function\n  perf: Remove perf_event_attr::type check\n  x86, perf: P4 PMU - Fix typos in comments and style cleanup\n  perf tools: Make test use the preset debugfs path\n  perf tools: Add automated tests for events parsing\n  perf tools: De-opt the parse_events function\n  perf script: Fix display of IP address for non-callchain path\n  perf tools: Fix endian conversion reading event attr from file header\n  perf tools: Add missing \u0027node\u0027 alias to the hw_cache[] array\n  perf probe: Support adding probes on offline kernel modules\n  perf probe: Add probed module in front of function\n  perf probe: Introduce debuginfo to encapsulate dwarf information\n  perf-probe: Move dwarf library routines to dwarf-aux.{c, h}\n  perf probe: Remove redundant dwarf functions\n  perf probe: Move strtailcmp to string.c\n  perf probe: Rename DIE_FIND_CB_FOUND to DIE_FIND_CB_END\n  tracing/kprobe: Update symbol reference when loading module\n  tracing/kprobes: Support module init function probing\n  kprobes: Return -ENOENT if probe point doesn\u0027t exist\n  ...\n"
    },
    {
      "commit": "24aa07882b672fff2da2f5c955759f0bd13d32d5",
      "tree": "e6dad38048ede1dbb9ad3c7fffcc4b37e72274a8",
      "parents": [
        "c378ddd53f9b8832a46fd4fec050a97fc2269858"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:06 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:53 2011 -0700"
      },
      "message": "memblock, x86: Replace memblock_x86_reserve/free_range() with generic ones\n\nOther than sanity check and debug message, the x86 specific version of\nmemblock reserve/free functions are simple wrappers around the generic\nversions - memblock_reserve/free().\n\nThis patch adds debug messages with caller identification to the\ngeneric versions and replaces x86 specific ones and kills them.\narch/x86/include/asm/memblock.h and arch/x86/mm/memblock.c are empty\nafter this change and removed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-14-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "474b881bf4ee86aba55d46a4fdf293de32cba91b",
      "tree": "bd197e7989ec4d76445a393679ca1f18727825b6",
      "parents": [
        "6b5d41a1b97f5529284f16170211b87fd60264c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:04 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:51 2011 -0700"
      },
      "message": "x86: Use absent_pages_in_range() instead of memblock_x86_hole_size()\n\nmemblock_x86_hole_size() calculates the total size of holes in a given\nrange according to memblock and is used by numa emulation code and\nnuma_meminfo_cover_memory().\n\nSince conversion to MEMBLOCK_NODE_MAP, absent_pages_in_range() also\nuses memblock and gives the same result.  This patch replaces\nmemblock_x86_hole_size() uses with absent_pages_in_range().  After the\nconversion the x86 function doesn\u0027t have any user left and is killed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-12-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "6b5d41a1b97f5529284f16170211b87fd60264c0",
      "tree": "4c11da3e2876e8e5d981bbad8d658cdf268a9203",
      "parents": [
        "8a9ca34c11e1695dab7aff3cfa7780fbfe76b2f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:03 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:50 2011 -0700"
      },
      "message": "memblock, x86: Reimplement memblock_find_dma_reserve() using iterators\n\nmemblock_find_dma_reserve() wants to find out how much memory is\nreserved under MAX_DMA_PFN.  memblock_x86_memory_[free_]in_range() are\nused to find out the amounts of all available and free memory in the\narea, which are then subtracted to find out the amount of reservation.\n\nmemblock_x86_memblock_[free_]in_range() are implemented using\n__memblock_x86_memory_in_range() which builds ranges from memblock and\nthen count them, which is rather unnecessarily complex.\n\nThis patch open codes the counting logic directly in\nmemblock_find_dma_reserve() using memblock iterators and removes now\nunused __memblock_x86_memory_in_range() and find_range_array().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-11-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "8a9ca34c11e1695dab7aff3cfa7780fbfe76b2f8",
      "tree": "5bd341215c7e829b89d1fcb481cfff71ef81f0f5",
      "parents": [
        "64a02daacbc880bac1d6b3aeefbcd226a9341fa7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:02 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:49 2011 -0700"
      },
      "message": "memblock, x86: Replace __get_free_all_memory_range() with for_each_free_mem_range()\n\n__get_free_all_memory_range() walks memblock, calculates free memory\nareas and fills in the specified range.  It can be easily replaced\nwith for_each_free_mem_range().\n\nConvert free_low_memory_core_early() and\nadd_highpages_with_active_regions() to for_each_free_mem_range().\nThis leaves __get_free_all_memory_range() without any user.  Kill it\nand related functions.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-10-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "64a02daacbc880bac1d6b3aeefbcd226a9341fa7",
      "tree": "d87b71baee631aaeb7b34b53ed24f716ad06f056",
      "parents": [
        "8d89ac808417e92a33fb5fa3c86352016643775a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:01 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:49 2011 -0700"
      },
      "message": "memblock, x86: Make free_all_memory_core_early() explicitly free lowmem only\n\nnomemblock is currently used only by x86 and on x86_32\nfree_all_memory_core_early() silently freed only the low mem because\nget_free_all_memory_range() in arch/x86/mm/memblock.c implicitly\nlimited range to max_low_pfn.\n\nRename free_all_memory_core_early() to free_low_memory_core_early()\nand make it call __get_free_all_memory_range() and limit the range to\nmax_low_pfn explicitly.  This makes things clearer and also is\nconsistent with the bootmem behavior.\n\nThis leaves get_free_all_memory_range() without any user.  Kill it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-9-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "8d89ac808417e92a33fb5fa3c86352016643775a",
      "tree": "ead40e5d1310460e20a837e4171ada2ac9d5f5cd",
      "parents": [
        "35fd0808d7d8d001cd72f112e3bca84664b596a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:00 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:48 2011 -0700"
      },
      "message": "x86: Replace memblock_x86_find_in_range_size() with for_each_free_mem_range()\n\nsetup_bios_corruption_check() and memtest do_one_pass() open code\nmemblock free area iteration using memblock_x86_find_in_range_size().\nConvert them to use for_each_free_mem_range() instead.\n\nThis leaves memblock_x86_find_in_range_size() and\nmemblock_x86_check_reserved_size() unused.  Kill them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-8-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "0608f70c78a384c2f225f2de226ca057a196f108",
      "tree": "a5ffb473cc55ca8bb538b9869cb61d2982d99f5e",
      "parents": [
        "7c0caeb866b0f648d91bb75b8bc6f86af95bb033"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 11:44:23 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:43 2011 -0700"
      },
      "message": "x86: Use HAVE_MEMBLOCK_NODE_MAP\n\nFrom 5732e1247898d67cbf837585150fe9f68974671d Mon Sep 17 00:00:00 2001\nFrom: Tejun Heo \u003ctj@kernel.org\u003e\nDate: Thu, 14 Jul 2011 11:22:16 +0200\n\nConvert x86 to HAVE_MEMBLOCK_NODE_MAP.  The only difference in memory\nhandling is that allocations can\u0027t no longer cross node boundaries\nwhether they\u0027re node affine or not, which shouldn\u0027t matter at all.\n\nThis conversion will enable further simplification of boot memory\nhandling.\n\n-v2: Fix build failure on !NUMA configurations discovered by hpa.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714094423.GG3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "eb40c4c27f1722f058e4713ccfedebac577d5190",
      "tree": "b471a4451c7cab125b3aafced4c77c7958fd711d",
      "parents": [
        "e64980405cc6aa74ef178d8d9aa4018c867ceed1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:35 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:35 2011 -0700"
      },
      "message": "memblock, x86: Replace memblock_x86_find_in_range_node() with generic memblock calls\n\nWith the previous changes, generic NUMA aware memblock API has feature\nparity with memblock_x86_find_in_range_node().  There currently are\ntwo users - x86 setup_node_data() and __alloc_memory_core_early() in\nnobootmem.c.\n\nThis patch converts the former to use memblock_alloc_nid() and the\nlatter memblock_find_range_in_node(), and kills\nmemblock_x86_find_in_range_node() and related functions including\nfind_memory_early_core_early() in page_alloc.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-9-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "5dfe8660a3d7f1ee1265c3536433ee53da3f98a3",
      "tree": "c58232b88741ba1d8cce417b62f3f658369ad9c2",
      "parents": [
        "fc769a8e70a3348d5de49e5f69f6aff810157360"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 09:46:10 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:29 2011 -0700"
      },
      "message": "bootmem: Replace work_with_active_regions() with for_each_mem_pfn_range()\n\nCallback based iteration is cumbersome and much less useful than\nfor_each_*() iterator.  This patch implements for_each_mem_pfn_range()\nwhich replaces work_with_active_regions().  All the current users of\nwork_with_active_regions() are converted.\n\nThis simplifies walking over early_node_map and will allow converting\ninternal logics in page_alloc to use iterator instead of walking\nearly_node_map directly, which in turn will enable moving node\ninformation to memblock.\n\npowerpc change is only compile tested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714074610.GD3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1f5026a7e21e409c2b9dd54f6dfb9446511fb7c5",
      "tree": "bcf0529d5f05ea8b685d6c0fddcb3197c2fab49c",
      "parents": [
        "348968eb151e2569ad0ebe19b2f9c3c25b5c816a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:58:09 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Jul 13 16:36:01 2011 -0700"
      },
      "message": "memblock: Kill MEMBLOCK_ERROR\n\n25818f0f28 (memblock: Make MEMBLOCK_ERROR be 0) thankfully made\nMEMBLOCK_ERROR 0 and there already are codes which expect error return\nto be 0.  There\u0027s no point in keeping MEMBLOCK_ERROR around.  End its\nmisery.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310457490-3356-6-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1e01979c8f502ac13e3cdece4f38712c5944e6e8",
      "tree": "d47c4700bfdcffc3f7f68b19d50c588c20689b48",
      "parents": [
        "d0ead157387f19801beb1b419568723b2e9b7c79"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:45:34 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Jul 12 21:58:29 2011 -0700"
      },
      "message": "x86, numa: Implement pfn -\u003e nid mapping granularity check\n\nSPARSEMEM w/o VMEMMAP and DISCONTIGMEM, both used only on 32bit, use\nsections array to map pfn to nid which is limited in granularity.  If\nNUMA nodes are laid out such that the mapping cannot be accurate, boot\nwill fail triggering BUG_ON() in mminit_verify_page_links().\n\nOn 32bit, it\u0027s 512MiB w/ PAE and SPARSEMEM.  This seems to have been\ngranular enough until commit 2706a0bf7b (x86, NUMA: Enable\nCONFIG_AMD_NUMA on 32bit too).  Apparently, there is a machine which\naligns NUMA nodes to 128MiB and has only AMD NUMA but not SRAT.  This\nled to the following BUG_ON().\n\n On node 0 totalpages: 2096615\n   DMA zone: 32 pages used for memmap\n   DMA zone: 0 pages reserved\n   DMA zone: 3927 pages, LIFO batch:0\n   Normal zone: 1740 pages used for memmap\n   Normal zone: 220978 pages, LIFO batch:31\n   HighMem zone: 16405 pages used for memmap\n   HighMem zone: 1853533 pages, LIFO batch:31\n BUG: Int 6: CR2   (null)\n      EDI   (null)  ESI 00000002  EBP 00000002  ESP c1543ecc\n      EBX f2400000  EDX 00000006  ECX   (null)  EAX 00000001\n      err   (null)  EIP c16209aa   CS 00000060  flg 00010002\n Stack: f2400000 00220000 f7200800 c1620613 00220000 01000000 04400000 00238000\n          (null) f7200000 00000002 f7200b58 f7200800 c1620929 000375fe   (null)\n        f7200b80 c16395f0 00200a02 f7200a80   (null) 000375fe 00000002   (null)\n Pid: 0, comm: swapper Not tainted 2.6.39-rc5-00181-g2706a0b #17\n Call Trace:\n  [\u003cc136b1e5\u003e] ? early_fault+0x2e/0x2e\n  [\u003cc16209aa\u003e] ? mminit_verify_page_links+0x12/0x42\n  [\u003cc1620613\u003e] ? memmap_init_zone+0xaf/0x10c\n  [\u003cc1620929\u003e] ? free_area_init_node+0x2b9/0x2e3\n  [\u003cc1607e99\u003e] ? free_area_init_nodes+0x3f2/0x451\n  [\u003cc1601d80\u003e] ? paging_init+0x112/0x118\n  [\u003cc15f578d\u003e] ? setup_arch+0x791/0x82f\n  [\u003cc15f43d9\u003e] ? start_kernel+0x6a/0x257\n\nThis patch implements node_map_pfn_alignment() which determines\nmaximum internode alignment and update numa_register_memblks() to\nreject NUMA configuration if alignment exceeds the pfn -\u003e nid mapping\ngranularity of the memory model as determined by PAGES_PER_SECTION.\n\nThis makes the problematic machine boot w/ flatmem by rejecting the\nNUMA config and provides protection against crazy NUMA configurations.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110712074534.GB2872@htj.dyndns.org\nLKML-Reference: \u003c20110628174613.GP478@escobedo.osrc.amd.com\u003e\nReported-and-Tested-by: Hans Rosenfeld \u003chans.rosenfeld@amd.com\u003e\nCc: Conny Seidel \u003cconny.seidel@amd.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "d0ead157387f19801beb1b419568723b2e9b7c79",
      "tree": "0615789f48d6ccd91036ddb5cb8fcdb3048ebe8a",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:44:22 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Jul 12 21:58:11 2011 -0700"
      },
      "message": "x86, mm: s/PAGES_PER_ELEMENT/PAGES_PER_SECTION/\n\nDISCONTIGMEM on x86-32 implements pfn -\u003e nid mapping similarly to\nSPARSEMEM; however, it calls each mapping unit ELEMENT instead of\nSECTION.  This patch renames it to SECTION so that PAGES_PER_SECTION\nis valid for both DISCONTIGMEM and SPARSEMEM.  This will be used by\nthe next patch to implement mapping granularity check.\n\nThis patch is trivial constant rename.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110712074422.GA2872@htj.dyndns.org\nCc: Hans Rosenfeld \u003chans.rosenfeld@amd.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "a63fdc5156f2ef5690b6cf03d72b0c4917efbba7",
      "tree": "03d9b67a5d07ab9d805ea39db2f331740eba1d4c",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jun 14 10:57:50 2011 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 12 11:08:01 2011 +1000"
      },
      "message": "mm: Move definition of MIN_MEMORY_BLOCK_SIZE to a header\n\nThe macro MIN_MEMORY_BLOCK_SIZE is currently defined twice in two .c\nfiles, and I need it in a third one to fix a powerpc bug, so let\u0027s\nfirst move it into a header\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "931da6137e8e8c622f59251e8b645467aea293f1",
      "tree": "2169cbd29d5d9a4cbc7104b2a744a95ba746c50d",
      "parents": [
        "5d67be97f8903d05ce53597fb5f3bc25a45e8026",
        "1fd8df2c3970c9e7e4e262354154ee39e58bdd7c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "a8b0ca17b80e92faab46ee7179ba9e99ccb61233",
      "tree": "a4a6282139f26458f80dcbe21c709a9290e84143",
      "parents": [
        "1880c4ae182afb5650c5678949ecfe7ff66a724e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 27 14:41:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:35 2011 +0200"
      },
      "message": "perf: Remove the nmi parameter from the swevent and overflow interface\n\nThe nmi parameter indicated if we could do wakeups from the current\ncontext, if not, we would set some state and self-IPI and let the\nresulting interrupt do the wakeup.\n\nFor the various event classes:\n\n  - hardware: nmi\u003d0; PMI is in fact an NMI or we run irq_work_run from\n    the PMI-tail (ARM etc.)\n  - tracepoint: nmi\u003d0; since tracepoint could be from NMI context.\n  - software: nmi\u003d[0,1]; some, like the schedule thing cannot\n    perform wakeups, and hence need 0.\n\nAs one can see, there is very little nmi\u003d1 usage, and the down-side of\nnot using it is that on some platforms some software events can have a\njiffy delay in wakeup (when arch_irq_work_raise isn\u0027t implemented).\n\nThe up-side however is that we can remove the nmi parameter and save a\nbunch of conditionals in fast paths.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nLink: http://lkml.kernel.org/n/tip-agjev8eu666tvknpb3iaj0fg@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d68dc3f1003a38948c55c803c32d1989dd49198",
      "tree": "3c93edddda1ee71b9ce4aeeaa133bf627f7d691e",
      "parents": [
        "c11760c6d80ab6aa20e383cf378a7287305f591c"
      ],
      "author": {
        "name": "Maarten Lankhorst",
        "email": "m.b.lankhorst@gmail.com",
        "time": "Tue Jun 14 19:53:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 18 22:48:49 2011 +0200"
      },
      "message": "x86, efi: Do not reserve boot services regions within reserved areas\n\nCommit 916f676f8dc started reserving boot service code since some systems\nrequire you to keep that code around until SetVirtualAddressMap is called.\n\nHowever, in some cases those areas will overlap with reserved regions.\nThe proper medium-term fix is to fix the bootloader to prevent the\nconflicts from occurring by moving the kernel to a better position,\nbut the kernel should check for this possibility, and only reserve regions\nwhich can be reserved.\n\nSigned-off-by: Maarten Lankhorst \u003cm.b.lankhorst@gmail.com\u003e\nLink: http://lkml.kernel.org/r/4DF7A005.1050407@gmail.com\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "395810627b6a43c8d0ec948884043946fa162308"
}
