)]}'
{
  "log": [
    {
      "commit": "a7f5aaf36ded825477c4d7167cc6eb1bcdc63191",
      "tree": "27701b57c086ef09e05234a73f487e34577f6f9a",
      "parents": [
        "bba595255fa70af175f6ce4dc0cb3e7cf91f53d7",
        "1b72691ce35812ff865d778f303779e774d2b098"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 18 12:10:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 18 12:10:14 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: fix build warnings in real mode code\n  x86, calgary: fix section mismatch warning - get_tce_space_from_tar\n  x86: silence section mismatch warning - get_local_pda\n  x86, percpu: silence section mismatch warnings related to EARLY_PER_CPU variables\n  x86: fix i486 suspend to disk CR4 oops\n  x86: mpparse.c: fix section mismatch warning\n  x86: mmconf: fix section mismatch warning\n  x86: fix MP_processor_info section mismatch warning\n  x86, tsc: fix section mismatch warning\n  x86: correct register constraints for 64-bit atomic operations\n"
    },
    {
      "commit": "c6a92a2501b35880d2e357dbd7f2cbc9a06f1058",
      "tree": "d1bd8ebb75bcba533c1a55860d153d9449dd43f3",
      "parents": [
        "e532c06f2a835b5cc4f4166f467437d9b09c1d0e"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun Aug 17 17:50:50 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 18 09:10:55 2008 +0200"
      },
      "message": "x86, percpu: silence section mismatch warnings related to EARLY_PER_CPU variables\n\nQuoting Mike Travis in \"x86: cleanup early per cpu variables/accesses v4\"\n(23ca4bba3e20c6c3cb11c1bb0ab4770b724d39ac):\n\n    The DEFINE macro defines the per_cpu variable as well as the early\n    map and pointer.  It also initializes the per_cpu variable and map\n    elements to \"_initvalue\".  The early_* macros provide access to\n    the initial map (usually setup during system init) and the early\n    pointer.  This pointer is initialized to point to the early map\n    but is then NULL\u0027ed when the actual per_cpu areas are setup.  After\n    that the per_cpu variable is the correct access to the variable.\n\nAs these variables are NULL\u0027ed before __init sections are dropped\n(in setup_per_cpu_maps), they can be safely annotated as __ref.\n\nThis change silences following section mismatch warnings:\n\nWARNING: vmlinux.o(.data+0x46c0): Section mismatch in reference from the variable x86_cpu_to_apicid_early_ptr to the variable .init.data:x86_cpu_to_apicid_early_map\nThe variable x86_cpu_to_apicid_early_ptr references\nthe variable __initdata x86_cpu_to_apicid_early_map\nIf the reference is valid then annotate the\nvariable with __init* (see linux/init.h) or name the variable:\n*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,\n\nWARNING: vmlinux.o(.data+0x46c8): Section mismatch in reference from the variable x86_bios_cpu_apicid_early_ptr to the variable .init.data:x86_bios_cpu_apicid_early_map\nThe variable x86_bios_cpu_apicid_early_ptr references\nthe variable __initdata x86_bios_cpu_apicid_early_map\nIf the reference is valid then annotate the\nvariable with __init* (see linux/init.h) or name the variable:\n*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,\n\nWARNING: vmlinux.o(.data+0x46d0): Section mismatch in reference from the variable x86_cpu_to_node_map_early_ptr to the variable .init.data:x86_cpu_to_node_map_early_map\nThe variable x86_cpu_to_node_map_early_ptr references\nthe variable __initdata x86_cpu_to_node_map_early_map\nIf the reference is valid then annotate the\nvariable with __init* (see linux/init.h) or name the variable:\n*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c72a5efec1193faa2ef34c0bd48d7251a70ec934",
      "tree": "1c882704a9f4ddbb7a94bb3950500e3215b0948b",
      "parents": [
        "67d0c9ebdc9f5f356657146b4e862b2d745e9e78"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Mon Aug 11 00:11:13 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 18 07:49:06 2008 +0200"
      },
      "message": "x86: mmconf: fix section mismatch warning\n\nWARNING: arch/x86/kernel/built-in.o(.cpuinit.text+0x1591): Section mismatch in reference from the function init_amd() to the function .init.text:check_enable_amd_mmconf_dmi()\nThe function __cpuinit init_amd() references\na function __init check_enable_amd_mmconf_dmi().\nIf check_enable_amd_mmconf_dmi is only used by init_amd then\nannotate check_enable_amd_mmconf_dmi with a matching annotation.\n\ncheck_enable_amd_mmconf_dmi is only called from init_amd which is __cpuinit\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3c3b5c3b0bf798316a410e27e3d7e6f015663602",
      "tree": "a774ddfd39dace35a85316ee69da4055f8ebde51",
      "parents": [
        "2fdc86901d2ab30a12402b46238951d2a7891590"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Sat Aug 16 03:39:26 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 18 07:47:30 2008 +0200"
      },
      "message": "x86: correct register constraints for 64-bit atomic operations\n\nx86_64 add/sub atomic ops does not seems to accept integer values bigger\nthan 32 bits as immediates. Intel\u0027s add/sub documentation specifies they\nhave to be passed as registers.\n\nThe only operations in the x86-64 architecture which accept arbitrary\n64-bit immediates is \"movq\" to any register; similarly, the only\noperation which accept arbitrary 64-bit displacement is \"movabs\" to or\nfrom al/ax/eax/rax.\n\nhttp://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Machine-Constraints.html\n\nstates :\n\ne\n    32-bit signed integer constant, or a symbolic reference known to fit\n    that range (for immediate operands in sign-extending x86-64\n    instructions).\nZ\n    32-bit unsigned integer constant, or a symbolic reference known to\n    fit that range (for immediate operands in zero-extending x86-64\n    instructions).\n\nSince add/sub does sign extension, using the \"e\" constraint seems appropriate.\n\nIt applies to 2.6.27-rc, 2.6.26, 2.6.25...\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0473b7992943ee7b182aa4afeb602ba5d37d36e0",
      "tree": "87487edbdd9c7ecc6c4f06ddf50cede10523e65e",
      "parents": [
        "9e94cd325bb8ed8abe13f29b64fb54c1dec633a8",
        "2fdc86901d2ab30a12402b46238951d2a7891590"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 16 17:14:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 16 17:14:07 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (32 commits)\n  x86: add MAP_STACK mmap flag\n  x86: fix section mismatch warning - spp_getpage()\n  x86: change init_gdt to update the gdt via write_gdt, rather than a direct write.\n  x86-64: fix overlap of modules and fixmap areas\n  x86, geode-mfgpt: check IRQ before using MFGPT as clocksource\n  x86, acpi: cleanup, temp_stack is used only when CONFIG_SMP is set\n  x86: fix spin_is_contended()\n  x86, nmi: clean UP NMI watchdog failure message\n  x86, NMI: fix watchdog failure message\n  x86: fix /proc/meminfo DirectMap\n  x86: fix readb() et al compile error with gcc-3.2.3\n  arch/x86/Kconfig: clean up, experimental adjustement\n  x86: invalidate caches before going into suspend\n  x86, perfctr: don\u0027t use CCCR_OVF_PMI1 on Pentium 4Ds\n  x86, AMD IOMMU: initialize dma_ops after sysfs registration\n  x86m AMD IOMMU: cleanup: replace LOW_U32 macro with generic lower_32_bits\n  x86, AMD IOMMU: initialize device table properly\n  x86, AMD IOMMU: use status bit instead of memory write-back for completion wait\n  x86: silence mmconfig printk\n  x86, msr: fix NULL pointer deref due to msr_open on nonexistent CPUs\n  ...\n"
    },
    {
      "commit": "cd98a04a59e2f94fa64d5bf1e26498d27427d5e7",
      "tree": "a6e9c7996612e52eb4ac2dc0d03046120965efc1",
      "parents": [
        "45edb89ffd6386f95a7a9e1e5461b0e61c76aa14"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 18:02:18 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 11:45:19 2008 -0700"
      },
      "message": "x86: add MAP_STACK mmap flag\n\nas per this discussion:\n\n   http://lkml.org/lkml/2008/8/12/423\n\nPardo reported that 64-bit threaded apps, if their stacks exceed the\ncombined size of ~4GB, slow down drastically in pthread_create() - because\nglibc uses MAP_32BIT to allocate the stacks. The use of MAP_32BIT is\na legacy hack - to speed up context switching on certain early model\n64-bit P4 CPUs.\n\nSo introduce a new flag to be used by glibc instead, to not constrain\n64-bit apps like this.\n\nglibc can switch to this new flag straight away - it will be ignored\nby the kernel. If those old CPUs ever matter to anyone, support for\nit can be implemented.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2fdc86901d2ab30a12402b46238951d2a7891590",
      "tree": "8f514c642a9b541ba474c68272c8a38104d8a1cd",
      "parents": [
        "8d6ea9674cb12b90c800dc572214bf06f6ce8340"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 18:02:18 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 19:17:33 2008 +0200"
      },
      "message": "x86: add MAP_STACK mmap flag\n\nas per this discussion:\n\n   http://lkml.org/lkml/2008/8/12/423\n\nPardo reported that 64-bit threaded apps, if their stacks exceed the\ncombined size of ~4GB, slow down drastically in pthread_create() - because\nglibc uses MAP_32BIT to allocate the stacks. The use of MAP_32BIT is\na legacy hack - to speed up context switching on certain early model\n64-bit P4 CPUs.\n\nSo introduce a new flag to be used by glibc instead, to not constrain\n64-bit apps like this.\n\nglibc can switch to this new flag straight away - it will be ignored\nby the kernel. If those old CPUs ever matter to anyone, support for\nit can be implemented.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@gmail.com\u003e\n"
    },
    {
      "commit": "529d0e402eee62b7bfc89ec5b763a9a875bb49fb",
      "tree": "8dc654ba972df155f8d5246f485027cbc252bf44",
      "parents": [
        "66d4bdf22b8652cda215e2653c8bbec7a767ed57",
        "0d5cdc97e242a5589e5dca23277675f4b4482490"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 17:53:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 17:53:07 2008 +0200"
      },
      "message": "Merge branch \u0027x86/geode\u0027 into x86/urgent\n"
    },
    {
      "commit": "fb45daa69d287b394eca1619b3fadff7c0215c71",
      "tree": "aeb5a247b105d3b7e7ef2cdb0db5743574d9c480",
      "parents": [
        "163f6876f5c3ff8215e900b93779e960a56b3694"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Aug 15 00:40:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:42 2008 -0700"
      },
      "message": "kexec jump: check code size in control page\n\nKexec/Kexec-jump require code size in control page is less than\nPAGE_SIZE/2.  This patch add link-time checking for this.\n\nASSERT() of ld link script is used as the link-time checking mechanism.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "163f6876f5c3ff8215e900b93779e960a56b3694",
      "tree": "9ba2df8417dedd3a17cf3ba4cba5a2acd578ee3a",
      "parents": [
        "7ade3fcc1fe2801336112027a884070c9ca451af"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Aug 15 00:40:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:42 2008 -0700"
      },
      "message": "kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE\n\nRename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE, because control\npage is used for not only code on some platform.  For example in kexec\njump, it is used for data and stack too.\n\n[akpm@linux-foundation.org: unbreak powerpc and arm, finish conversion]\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66d4bdf22b8652cda215e2653c8bbec7a767ed57",
      "tree": "bb351489a17d8ae8c597e94a8b1b1f860416f98c",
      "parents": [
        "9744f5a32853642f8ed0749a1c9ed8cf9c9c9dc4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Thu Jul 31 16:48:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 17:31:50 2008 +0200"
      },
      "message": "x86-64: fix overlap of modules and fixmap areas\n\nPlus add a build time check so this doesn\u0027t go unnoticed again.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d5cdc97e242a5589e5dca23277675f4b4482490",
      "tree": "8eea2c2db4541a05114dd9fb61e782a0e5d13458",
      "parents": [
        "b635acec48bcaa9183fcbf4e3955616b0d4119b5"
      ],
      "author": {
        "name": "Jens Rottmann",
        "email": "JRottmann@LiPPERTEmbedded.de",
        "time": "Mon Aug 04 14:40:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 17:12:32 2008 +0200"
      },
      "message": "x86, geode-mfgpt: check IRQ before using MFGPT as clocksource\n\nAdds a simple IRQ autodetection to the AMD Geode MFGPT driver, and more\nimportantly, adds some checks, if IRQs can actually be received on the\nchosen line.  This fixes cases where MFGPT is selected as clocksource\nthough not producing any ticks, so the kernel simply starves during\nboot.\n\nSigned-off-by: Jens Rottmann \u003cJRottmann@LiPPERTEmbedded.de\u003e\nCc: Andres Salomon \u003cdilinger@debian.org\u003e\nCc: linux-geode@bombadil.infradead.org\nCc: Jordan Crouse \u003cjordan.crouse@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bc069c6bc4ede519a7116be1b9e149a1dbf787a",
      "tree": "6f3506469c33869126df962b743c2899efe1ec00",
      "parents": [
        "8bb851900f5d0a79d3fddac808cc670d9894ef67"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon Aug 04 14:38:54 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 16:26:51 2008 +0200"
      },
      "message": "x86: fix spin_is_contended()\n\nThe masked difference is what needs to be compared against 1, rather\nthan the difference of masked values (which can be negative).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c5b0eb66d74683e2be5da0c53e33c1f4ca982fd",
      "tree": "688b345892d4b7d8aa5465393fa9a2e791340b6a",
      "parents": [
        "04b69447f79eade34e92f3117a39e8fa6ecb519b"
      ],
      "author": {
        "name": "Mikael Pettersson",
        "email": "mikpe@it.uu.se",
        "time": "Wed Aug 13 21:07:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 14:30:32 2008 +0200"
      },
      "message": "x86: fix readb() et al compile error with gcc-3.2.3\n\nBuilding 2.6.27-rc1 on x86 with gcc-3.2.3 fails with:\n\nIn file included from include/asm/dma.h:12,\n                 from include/linux/bootmem.h:8,\n                 from init/main.c:26:\ninclude/asm/io.h: In function `readb\u0027:\ninclude/asm/io.h:32: syntax error before string constant\ninclude/asm/io.h: In function `readw\u0027:\ninclude/asm/io.h:33: syntax error before string constant\ninclude/asm/io.h: In function `readl\u0027:\ninclude/asm/io.h:34: syntax error before string constant\ninclude/asm/io.h: In function `__readb\u0027:\ninclude/asm/io.h:36: syntax error before string constant\ninclude/asm/io.h: In function `__readw\u0027:\ninclude/asm/io.h:37: syntax error before string constant\ninclude/asm/io.h: In function `__readl\u0027:\ninclude/asm/io.h:38: syntax error before string constant\nmake[1]: *** [init/main.o] Error 1\nmake: *** [init] Error 2\n\nStarting with 2.6.27-rc1 readb() et al are generated by a\nbuild_mmio_read() macro, which generates asm() statements with\noutput register constraints like \"\u003d\" \"q\", i.e. as two adjacent\nstring literals. This doesn\u0027t work with gcc-3.2.3.\n\nFixed by moving the \"\u003d\" part into the callers\u0027 reg parameter\n(as suggested by Ingo).\n\nBuild and boot-tested with gcc-3.2.3 on 32 and 64-bit x86.\n\nFixes \u003chttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11205\u003e.\n\nSigned-off-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "394a15051c33f2b18e72f42283b36a9388fa414b",
      "tree": "3e0b4acbd9e940758b184991d78bfe8f3a168050",
      "parents": [
        "dcc984166870150709f0c645b521a47becd9a047"
      ],
      "author": {
        "name": "Mark Langsdorf",
        "email": "mark.langsdorf@amd.com",
        "time": "Thu Aug 14 09:11:26 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 14:04:30 2008 +0200"
      },
      "message": "x86: invalidate caches before going into suspend\n\nWhen a CPU core is shut down, all of its caches need to be flushed\nto prevent stale data from causing errors if the core is resumed.\nCurrent Linux suspend code performs an assignment after the flush,\nwhich can add dirty data back to the cache.  On some AMD platforms,\nadditional speculative reads have caused crashes on resume because\nof this dirty data.\n\nRelocate the cache flush to be the very last thing done before\nhalting.  Tie into an assembly line so the compile will not\nreorder it.  Add some documentation explaining what is going\non and why we\u0027re doing this.\n\nSigned-off-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\u003e\nAcked-by: Mark Borden \u003cmark.borden@amd.com\u003e\nAcked-by: Michael Hohmuth \u003cmichael.hohmuth@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "975439fe73d1f0f7ce8c235c66783bd34dc459c3",
      "tree": "84e29852d96283b13c6e603f86bd506a631343c5",
      "parents": [
        "ef31023743e66de7184e9aad432291c842a6384b",
        "129d6aba444d1e99d4cbfb9866a4652912426b65"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 13:57:32 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 13:57:32 2008 +0200"
      },
      "message": "Merge branch \u0027x86/amd-iommu\u0027 into x86/urgent\n"
    },
    {
      "commit": "8a456695c5020d6317f9c7af190999e9414b0d3e",
      "tree": "18b7cfbc0f4fcc67aff3574f57331fd70da10a4d",
      "parents": [
        "9f5f5fb35d2934fe7dc0cb019854a030efd10cd7"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Aug 14 19:55:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 13:56:56 2008 +0200"
      },
      "message": "x86m AMD IOMMU: cleanup: replace LOW_U32 macro with generic lower_32_bits\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f5f5fb35d2934fe7dc0cb019854a030efd10cd7",
      "tree": "061412d890a702fddb46ac259080a963dce939f4",
      "parents": [
        "519c31bacf78a969efa8d2e55ed8862848f28590"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Aug 14 19:55:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 13:56:54 2008 +0200"
      },
      "message": "x86, AMD IOMMU: initialize device table properly\n\nThis patch adds device table initializations which forbids memory accesses\nfor devices per default and disables all page faults.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "519c31bacf78a969efa8d2e55ed8862848f28590",
      "tree": "bbeb4cd9f810536beb3bb1c5e6a827fa35a37633",
      "parents": [
        "b635acec48bcaa9183fcbf4e3955616b0d4119b5"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Aug 14 19:55:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 13:56:46 2008 +0200"
      },
      "message": "x86, AMD IOMMU: use status bit instead of memory write-back for completion wait\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31677619650cac2bcc9f50920824323b005e3d8a",
      "tree": "9735dbf085ed0cb4a37eb3c285099850e0fb3742",
      "parents": [
        "c2dcfde8274883e1f6050784dcbd34b01e824b91",
        "6ffac1e90a17ea0aded5c581204397421eec91b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 14 11:18:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 14 11:18:08 2008 +0200"
      },
      "message": "Merge branch \u0027x86/fpu\u0027 into x86/urgent\n"
    },
    {
      "commit": "e49140120c88eb99db1a9172d9ac224c0f2bbdd2",
      "tree": "2436693f64f185f45d67d4299b879091b2301f4b",
      "parents": [
        "318e5313923197e71a94f7b18835151649384b7f"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Aug 13 22:02:26 2008 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Wed Aug 13 22:02:26 2008 +1000"
      },
      "message": "crypto: padlock - fix VIA PadLock instruction usage with irq_ts_save/restore()\n\nWolfgang Walter reported this oops on his via C3 using padlock for\nAES-encryption:\n\n##################################################################\n\nBUG: unable to handle kernel NULL pointer dereference at 000001f0\nIP: [\u003cc01028c5\u003e] __switch_to+0x30/0x117\n*pde \u003d 00000000\nOops: 0002 [#1] PREEMPT\nModules linked in:\n\nPid: 2071, comm: sleep Not tainted (2.6.26 #11)\nEIP: 0060:[\u003cc01028c5\u003e] EFLAGS: 00010002 CPU: 0\nEIP is at __switch_to+0x30/0x117\nEAX: 00000000 EBX: c0493300 ECX: dc48dd00 EDX: c0493300\nESI: dc48dd00 EDI: c0493530 EBP: c04cff8c ESP: c04cff7c\n DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\nProcess sleep (pid: 2071, ti\u003dc04ce000 task\u003ddc48dd00 task.ti\u003dd2fe6000)\nStack: dc48df30 c0493300 00000000 00000000 d2fe7f44 c03b5b43 c04cffc8 00000046\n       c0131856 0000005a dc472d3c c0493300 c0493470 d983ae00 00002696 00000000\n       c0239f54 00000000 c04c4000 c04cffd8 c01025fe c04f3740 00049800 c04cffe0\nCall Trace:\n [\u003cc03b5b43\u003e] ? schedule+0x285/0x2ff\n [\u003cc0131856\u003e] ? pm_qos_requirement+0x3c/0x53\n [\u003cc0239f54\u003e] ? acpi_processor_idle+0x0/0x434\n [\u003cc01025fe\u003e] ? cpu_idle+0x73/0x7f\n [\u003cc03a4dcd\u003e] ? rest_init+0x61/0x63\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nWolfgang also found out that adding kernel_fpu_begin() and kernel_fpu_end()\naround the padlock instructions fix the oops.\n\nSuresh wrote:\n\nThese padlock instructions though don\u0027t use/touch SSE registers, but it behaves\nsimilar to other SSE instructions. For example, it might cause DNA faults\nwhen cr0.ts is set. While this is a spurious DNA trap, it might cause\noops with the recent fpu code changes.\n\nThis is the code sequence  that is probably causing this problem:\n\na) new app is getting exec\u0027d and it is somewhere in between\n   start_thread() and flush_old_exec() in the load_xyz_binary()\n\nb) At pont \"a\", task\u0027s fpu state (like TS_USEDFPU, used_math() etc) is\n   cleared.\n\nc) Now we get an interrupt/softirq which starts using these encrypt/decrypt\n   routines in the network stack. This generates a math fault (as\n   cr0.ts is \u00271\u0027) which sets TS_USEDFPU and restores the math that is\n   in the task\u0027s xstate.\n\nd) Return to exec code path, which does start_thread() which does\n   free_thread_xstate() and sets xstate pointer to NULL while\n   the TS_USEDFPU is still set.\n\ne) At the next context switch from the new exec\u0027d task to another task,\n   we have a scenarios where TS_USEDFPU is set but xstate pointer is null.\n   This can cause an oops during unlazy_fpu() in __switch_to()\n\nNow:\n\n1) This should happen with or with out pre-emption. Viro also encountered\n   similar problem with out CONFIG_PREEMPT.\n\n2) kernel_fpu_begin() and kernel_fpu_end() will fix this problem, because\n   kernel_fpu_begin() will manually do a clts() and won\u0027t run in to the\n   situation of setting TS_USEDFPU in step \"c\" above.\n\n3) This was working before the fpu changes, because its a spurious\n   math fault  which doesn\u0027t corrupt any fpu/sse registers and the task\u0027s\n   math state was always in an allocated state.\n\nWith out the recent lazy fpu allocation changes, while we don\u0027t see oops,\nthere is a possible race still present in older kernels(for example,\nwhile kernel is using kernel_fpu_begin() in some optimized clear/copy\npage and an interrupt/softirq happens which uses these padlock\ninstructions generating DNA fault).\n\nThis is the failing scenario that existed even before the lazy fpu allocation\nchanges:\n\n0. CPU\u0027s TS flag is set\n\n1. kernel using FPU in some optimized copy  routine and while doing\nkernel_fpu_begin() takes an interrupt just before doing clts()\n\n2. Takes an interrupt and ipsec uses padlock instruction. And we\ntake a DNA fault as TS flag is still set.\n\n3. We handle the DNA fault and set TS_USEDFPU and clear cr0.ts\n\n4. We complete the padlock routine\n\n5. Go back to step-1, which resumes clts() in kernel_fpu_begin(), finishes\nthe optimized copy routine and does kernel_fpu_end(). At this point,\nwe have cr0.ts again set to \u00271\u0027 but the task\u0027s TS_USEFPU is stilll\nset and not cleared.\n\n6. Now kernel resumes its user operation. And at the next context\nswitch, kernel sees it has do a FP save as TS_USEDFPU is still set\nand then will do a unlazy_fpu() in __switch_to(). unlazy_fpu()\nwill take a DNA fault, as cr0.ts is \u00271\u0027 and now, because we are\nin __switch_to(), math_state_restore() will get confused and will\nrestore the next task\u0027s FP state and will save it in prev tasks\u0027s FP state.\nRemember, in __switch_to() we are already on the stack of the next task\nbut take a DNA fault for the prev task.\n\nThis causes the fpu leakage.\n\nFix the padlock instruction usage by calling them inside the\ncontext of new routines irq_ts_save/restore(), which clear/restore cr0.ts\nmanually in the interrupt context. This will not generate spurious DNA\nin the  context of the interrupt which will fix the oops encountered and\nthe possible FPU leakage issue.\n\nReported-and-bisected-by: Wolfgang Walter \u003cwolfgang.walter@stwm.de\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "a12e61df4fa1cfae7a6b76976fa65a6fcb048e3f",
      "tree": "957c915298b299902aa80afa7c78e94c71b3dc25",
      "parents": [
        "7b27718bdb1b70166383dec91391df5534d449ee",
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 13:08:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 13:08:47 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc3\u0027 into x86/urgent\n"
    },
    {
      "commit": "0ed89b06e49c326bff81d81f24b9ba955eb912d5",
      "tree": "7e54e48c84d6aa4a067ee67c4d688145b1303258",
      "parents": [
        "b74548e76a0eab1f29546e7c5a589429c069a680"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Aug 13 10:17:24 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 11:57:18 2008 +0200"
      },
      "message": "x86: propagate new nonpanic bootmem macros to CONFIG_HAVE_ARCH_BOOTMEM_NODE\n\nCommit 74768ed833344b \"page allocator: use no-panic variant of\nalloc_bootmem() in alloc_large_system_hash()\" introduced two new\n_nopanic macros which are undefined for CONFIG_HAVE_ARCH_BOOTMEM_NODE.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nAcked-by: \"Jan Beulich\" \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7019b1b50097a94d0f8a77b81bee0b19b108c634",
      "tree": "4213c3fc8a1459894c49eae167744fa96be1e93e",
      "parents": [
        "f08c0761d6ff79e2f4c81f95fd01b761e0410785",
        "b74548e76a0eab1f29546e7c5a589429c069a680"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 11 16:44:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 11 16:44:35 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: fix 2.6.27rc1 cannot boot more than 8CPUs\n  x86: make \"apic\" an early_param() on 32-bit, NULL check\n  EFI, x86: fix function prototype\n  x86, pci-calgary: fix function declaration\n  x86: work around gcc 3.4.x bug\n  x86: make \"apic\" an early_param() on 32-bit\n  x86, debug: tone down arch/x86/kernel/mpparse.c debugging printk\n  x86_64: restore the proper NR_IRQS define so larger systems work.\n  x86: Restore proper vector locking during cpu hotplug\n  x86: Fix broken VMI in 2.6.27-rc..\n  x86: fdiv bug detection fix\n"
    },
    {
      "commit": "b0fbaa6b5976962434349849673b9ff63631b6d4",
      "tree": "4bc19d6c321643be89684102a5fdae567702d02d",
      "parents": [
        "9b0094f7f289d752868aae1a3984517d712cbb22"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Aug 07 15:12:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 18:50:19 2008 +0200"
      },
      "message": "EFI, x86: fix function prototype\n\nFix function prototype in header file to match source code:\n\nlinux-next-20080807/arch/x86/kernel/efi_64.c:100:14: error: symbol \u0027efi_ioremap\u0027 redeclared with different type (originally declared at include2/asm/efi.h:89) - different address spaces\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3c7569b284e1be55d086b61a70d9f545326f6d74",
      "tree": "18b36c05d17bc92441d1f007084fa4b98b7e9f9b",
      "parents": [
        "d388e5fdc461344d04307a3fa83862b9ed429647"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Aug 10 00:35:50 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 10:39:04 2008 +0200"
      },
      "message": "x86_64: restore the proper NR_IRQS define so larger systems work.\n\nAs pointed out and tracked by Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e:\n\n Dhaval Giani got:\n kernel BUG at arch/x86/kernel/io_apic_64.c:357!\n invalid opcode: 0000 [1] SMP\n CPU 24\n ...\n\nhis system (x3950) has 8 ioapic, irq \u003e 256\n\nThis was caused by:\n\n       commit 9b7dc567d03d74a1fbae84e88949b6a60d922d82\n       Author: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n       Date:   Fri May 2 20:10:09 2008 +0200\n\n          x86: unify interrupt vector defines\n\n          The interrupt vector defines are copied 4 times around with minimal\n          differences. Move them all into asm-x86/irq_vectors.h\n\nIt appears that Thomas did not notice that x86_64 does something\ncompletely different when he merge irq_vectors.h\n\nWe can solve this for 2.6.27 by simply reintroducing the old heuristic\nfor setting NR_IRQS on x86_64 to a usable value, which trivially removes\nthe regression.\n\nLong term it would be nice to harmonize the handling of ioapic interrupts\nof x86_32 and x86_64 so we don\u0027t have this kind of confusion.\n\nDhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e tested an earlier version of\nthis patch by YH which confirms simply increasing NR_IRQS fixes the\nproblem.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d388e5fdc461344d04307a3fa83862b9ed429647",
      "tree": "61a9a4311b165038423a0f3412e93b8811796c6b",
      "parents": [
        "31343d8a5079cda57ffd539fcf4f00cea344fe98"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Aug 09 15:09:02 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 10:37:34 2008 +0200"
      },
      "message": "x86: Restore proper vector locking during cpu hotplug\n\nHaving cpu_online_map change during assign_irq_vector can result\nin some really nasty and weird things happening.  The one that\nbit me last time was accessing non existent per cpu memory for non\nexistent cpus.\n\nThis locking was removed in a sloppy x86_64 and x86_32 merge patch.\n\nGuys can we please try and avoid subtly breaking x86 when we are\nmerging files together?\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "84ff7a001270258f71d6ab0d164f351e32c9718a",
      "tree": "6b2f33a9ad492186062de247d3572fa5efebe4bd",
      "parents": [
        "478735e42bfa047384afa72dceb408035532db20",
        "1f4170e12db06fdde5279d665a7e6e2976b2b623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 12:48:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 12:48:16 2008 -0700"
      },
      "message": "Merge branch \u0027kvm-updates-2.6.27\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm\n\n* \u0027kvm-updates-2.6.27\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:\n  KVM: s390: Fix kvm on IBM System z10\n  KVM: Advertise synchronized mmu support to userspace\n  KVM: Synchronize guest physical memory map to host virtual memory map\n  KVM: Allow browsing memslots with mmu_lock\n  KVM: Allow reading aliases with mmu_lock\n"
    },
    {
      "commit": "8978b74253280d59e97cf49a3ec2c0cbccd5b801",
      "tree": "7cecd6951437f01f541178c1afc14d4e1d2e2b23",
      "parents": [
        "35780c8ea7ad5c6d5483244d5f5bf37176fda86a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jul 29 13:38:53 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 12:12:48 2008 +0200"
      },
      "message": "generic, x86: fix add iommu_num_pages helper function\n\nThis IOMMU helper function doesn\u0027t work for some architectures:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d121699304403202\u0026w\u003d2\n\nIt also breaks POWER and SPARC builds:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d121730388001890\u0026w\u003d2\n\nCurrently, only x86 IOMMUs use this so let\u0027s move it to x86 for\nnow.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e930bffe95e1e886a1ede80726ea38df5838d067",
      "tree": "d39227c3de8e7d4a70737c78693f6d7f458066af",
      "parents": [
        "604b38ac0369bd50fcbb33344aa5553c071009f7"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Fri Jul 25 16:24:52 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue Jul 29 12:33:53 2008 +0300"
      },
      "message": "KVM: Synchronize guest physical memory map to host virtual memory map\n\nSynchronize changes to host virtual addresses which are part of\na KVM memory slot to the KVM shadow mmu.  This allows pte operations\nlike swapping, page migration, and madvise() to transparently work\nwith KVM.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "cb28a1bbdb4790378e7366d6c9ee1d2340b84f92",
      "tree": "316436f77dac75335fd2c3ef5f109e71606c50d3",
      "parents": [
        "b6d4f7e3ef25beb8c658c97867d98883e69dc544",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/generic-dma-coherent\n\nConflicts:\n\n\tarch/x86/Kconfig\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f4cb662a0a2533b45656607471571460310a5ca",
      "tree": "19f3f431f75f7103a1b98e1eea56978712399c6b",
      "parents": [
        "8be1a6d6c77ab4532e4476fdb8177030ef48b52c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jul 14 20:36:36 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 27 11:34:09 2008 +0300"
      },
      "message": "KVM: SVM: allow enabling/disabling NPT by reloading only the architecture module\n\nIf NPT is enabled after loading both KVM modules on AMD and it should be\ndisabled, both KVM modules must be reloaded. If only the architecture module is\nreloaded the behavior is undefined. With this patch it is possible to disable\nNPT only by reloading the kvm_amd module.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7f2da1e7d0330395e5e9e350b879b98a1ea495df",
      "tree": "adc01ced45bb1de10fe58511e7143bbbd138a192",
      "parents": [
        "8bb79224b87aab92071e94d46e70bd160d89bf34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 20:44:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:20 2008 -0400"
      },
      "message": "[PATCH] kill altroot\n\nlong overdue...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb3b80614438f8b73b3879a19350439d6aa402da",
      "tree": "8397dc4dd85b3ecc8d3cb3f56d143843a6346b8c",
      "parents": [
        "7f268a2ba7c884a239713696238dd4207a57dd9a",
        "3a61ec387c9092dfc91a5959145d36835a72fc4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:05 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, AMD IOMMU: include amd_iommu_last_bdf in device initialization\n  x86: fix IBM Summit based systems\u0027 phys_cpu_present_map on 32-bit kernels\n  x86, RDC321x: remove gpio.h complications\n  x86, RDC321x: add to mach-default\n  crashdump: fix undefined reference to `elfcorehdr_addr\u0027\n  flag parameters: fix compile error of sys_epoll_create1\n"
    },
    {
      "commit": "8174c430e445a93016ef18f717fe570214fa38bf",
      "tree": "f1b4426eae7401425e9102c7b3e141be86f0930c",
      "parents": [
        "21cc199baa815d7b3f1ace4be20b9558cbddc00f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "x86: lockless get_user_pages_fast()\n\nImplement get_user_pages_fast without locking in the fastpath on x86.\n\nDo an optimistic lockless pagetable walk, without taking mmap_sem or any\npage table locks or even mmap_sem.  Page table existence is guaranteed by\nturning interrupts off (combined with the fact that we\u0027re always looking\nup the current mm, means we can do the lockless page table walk within the\nconstraints of the TLB shootdown design).  Basically we can do this\nlockless pagetable walk in a similar manner to the way the CPU\u0027s pagetable\nwalker does not have to take any locks to find present ptes.\n\nThis patch (combined with the subsequent ones to convert direct IO to use\nit) was found to give about 10% performance improvement on a 2 socket 8\ncore Intel Xeon system running an OLTP workload on DB2 v9.5\n\n \"To test the effects of the patch, an OLTP workload was run on an IBM\n  x3850 M2 server with 2 processors (quad-core Intel Xeon processors at\n  2.93 GHz) using IBM DB2 v9.5 running Linux 2.6.24rc7 kernel.  Comparing\n  runs with and without the patch resulted in an overall performance\n  benefit of ~9.8%.  Correspondingly, oprofiles showed that samples from\n  __up_read and __down_read routines that is seen during thread contention\n  for system resources was reduced from 2.8% down to .05%.  Monitoring the\n  /proc/vmstat output from the patched run showed that the counter for\n  fast_gup contained a very high number while the fast_gup_slow value was\n  zero.\"\n\n(fast_gup is the old name for get_user_pages_fast, fast_gup_slow is a\ncounter we had for the number of times the slowpath was invoked).\n\nThe main reason for the improvement is that DB2 has multiple threads each\nissuing direct-IO.  Direct-IO uses get_user_pages, and thus the threads\ncontend the mmap_sem cacheline, and can also contend on page table locks.\n\nI would anticipate larger performance gains on larger systems, however I\nthink DB2 uses an adaptive mix of threads and processes, so it could be\nthat thread contention remains pretty constant as machine size increases.\nIn which case, we stuck with \"only\" a 10% gain.\n\nThe downside of using get_user_pages_fast is that if there is not a pte\nwith the correct permissions for the access, we end up falling back to\nget_user_pages and so the get_user_pages_fast is a bit of extra work.\nHowever this should not be the common case in most performance critical\ncode.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: Kconfig fix]\n[akpm@linux-foundation.org: Makefile fix/cleanup]\n[akpm@linux-foundation.org: warning fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0a8f5364a5ad248aec6cb705e0092ff563edc2f",
      "tree": "fe942b13adc527f66103d529c2ee91da05086d1c",
      "parents": [
        "2682497245e7d22160ae63032c378745a7f2cfe5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:05 2008 -0700"
      },
      "message": "x86: implement pte_special\n\nImplement the pte_special bit for x86.  This is required to support\nlockless get_user_pages, because we need to know whether or not we can\nrefcount a particular page given only its pte (and no vma).\n\n[hugh@veritas.com: fix a BUG]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ab83521378268044a448113c6aa9a9e245f4d2f",
      "tree": "e9e8496577e4b2e994edf204e9a8ae7c026eec95",
      "parents": [
        "7fccf0326536c1b245b98740d489abb9aab69a12"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Jul 25 19:45:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "kexec jump\n\nThis patch provides an enhancement to kexec/kdump.  It implements the\nfollowing features:\n\n- Backup/restore memory used by the original kernel before/after\n  kexec.\n\n- Save/restore CPU state before/after kexec.\n\nThe features of this patch can be used as a general method to call program in\nphysical mode (paging turning off).  This can be used to call BIOS code under\nLinux.\n\nkexec-tools needs to be patched to support kexec jump. The patches and\nthe precompiled kexec can be download from the following URL:\n\n       source: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-src_git_kh10.tar.bz2\n       patches: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-patches_git_kh10.tar.bz2\n       binary: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec_git_kh10\n\nUsage example of calling some physical mode code and return:\n\n1. Compile and install patched kernel with following options selected:\n\nCONFIG_X86_32\u003dy\nCONFIG_KEXEC\u003dy\nCONFIG_PM\u003dy\nCONFIG_KEXEC_JUMP\u003dy\n\n2. Build patched kexec-tool or download the pre-built one.\n\n3. Build some physical mode executable named such as \"phy_mode\"\n\n4. Boot kernel compiled in step 1.\n\n5. Load physical mode executable with /sbin/kexec. The shell command\n   line can be as follow:\n\n   /sbin/kexec --load-preserve-context --args-none phy_mode\n\n6. Call physical mode executable with following shell command line:\n\n   /sbin/kexec -e\n\nImplementation point:\n\nTo support jumping without reserving memory.  One shadow backup page (source\npage) is allocated for each page used by kexeced code image (destination\npage).  When do kexec_load, the image of kexeced code is loaded into source\npages, and before executing, the destination pages and the source pages are\nswapped, so the contents of destination pages are backupped.  Before jumping\nto the kexeced code image and after jumping back to the original kernel, the\ndestination pages and the source pages are swapped too.\n\nC ABI (calling convention) is used as communication protocol between\nkernel and called code.\n\nA flag named KEXEC_PRESERVE_CONTEXT for sys_kexec_load is added to\nindicate that the loaded kernel image is used for jumping back.\n\nNow, only the i386 architecture is supported.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "1956a96de488feb05e95c08c9d5e80f63a4be2b1",
      "tree": "fd361f464386607e3d753e062ae7956e94c022e3",
      "parents": [
        "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06"
      ],
      "author": {
        "name": "Alexis Bruemmer",
        "email": "alexisb@us.ibm.com",
        "time": "Fri Jul 25 19:44:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "x86 calgary: fix handling of devices that aren\u0027t behind the Calgary\n\nThe calgary code can give drivers addresses above 4GB which is very bad\nfor hardware that is only 32bit DMA addressable.\n\nWith this patch, the calgary code sets the global dma_ops to swiotlb or\nnommu properly, and the dma_ops of devices behind the Calgary/CalIOC2\nto calgary_dma_ops.  So the calgary code can handle devices safely that\naren\u0027t behind the Calgary/CalIOC2.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexis Bruemmer \u003calexisb@us.ibm.com\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ffac1e90a17ea0aded5c581204397421eec91b6",
      "tree": "c5ae5b695f1306f5415b5bf3968b4fcf69e823a1",
      "parents": [
        "024e8ac04453b3525448c31ef39848cf675ba6db"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jul 24 18:07:56 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:37:04 2008 +0200"
      },
      "message": "x64, fpu: fix possible FPU leakage in error conditions\n\nOn Thu, Jul 24, 2008 at 03:43:44PM -0700, Linus Torvalds wrote:\n\u003e So how about this patch as a starting point? This is the RightThing(tm) to\n\u003e do regardless, and if it then makes it easier to do some other cleanups,\n\u003e we should do it first. What do you think?\n\nrestore_fpu_checking() calls init_fpu() in error conditions.\n\nWhile this is wrong(as our main intention is to clear the fpu state of\nthe thread), this was benign before commit 92d140e21f1 (\"x86: fix taking\nDNA during 64bit sigreturn\").\n\nPost commit 92d140e21f1, live FPU registers may not belong to this\nprocess at this error scenario.\n\nIn the error condition for restore_fpu_checking() (especially during the\n64bit signal return), we are doing init_fpu(), which saves the live FPU\nregister state (possibly belonging to some other process context) into\nthe thread struct (through unlazy_fpu() in init_fpu()). This is wrong\nand can leak the FPU data.\n\nFor the signal handler restore error condition in restore_i387(), clear\nthe fpu state present in the thread struct(before ultimately sending a\nSIGSEGV for badframe).\n\nFor the paranoid error condition check in math_state_restore(), send a\nSIGSEGV, if we fail to restore the state.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ca9fda4b2f3413e4bc748b983f5585629ca0560",
      "tree": "377de3a94e8e42dbf33ff3e87041dcb3c7818429",
      "parents": [
        "071375bc76ee86e58592f4682030c81d410ddfd9"
      ],
      "author": {
        "name": "Chris McDermott",
        "email": "lcm@linux.vnet.ibm.com",
        "time": "Thu Jul 24 19:06:09 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 14:58:39 2008 +0200"
      },
      "message": "x86: fix IBM Summit based systems\u0027 phys_cpu_present_map on 32-bit kernels\n\nx86 kernels on IBM Summit based systems will only online 1 CPU because the\nphys_cpu_present_map is not set up correctly. Patch below applied to\n2.6.26-git10.\n\nSigned-off-by: Chris McDermott \u003clcm@linux.vnet.ibm.com\u003e\nTested-by: Tim Pepper \u003clnxninga@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "071375bc76ee86e58592f4682030c81d410ddfd9",
      "tree": "caa744ef6a873ffdd14befff35c58826f6c1f9a0",
      "parents": [
        "1f972768a1df1518f45adb6b8ffbf04fa1c99737"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 14:52:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 14:50:51 2008 +0200"
      },
      "message": "x86, RDC321x: remove gpio.h complications\n\nRemove the include/asm-x86/gpio.h specials, just use the generic\nversion.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "762b8291be6944bd891fbe2c8976a2b2e5bbc726",
      "tree": "4ce2572c050d473bd8dcde8bfbaad0ab830b1b1c",
      "parents": [
        "c6af5e9f8a57467df2e55e428316a43480174521",
        "7dcf2a9fced59e58e4694cdcf15850c01fdba89b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 12:01:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 12:01:37 2008 -0700"
      },
      "message": "Merge git://git.infradead.org/~dwmw2/random-2.6\n\n* git://git.infradead.org/~dwmw2/random-2.6:\n  remove dummy asm/kvm.h files\n  firmware: create firmware binaries during \u0027make modules\u0027.\n"
    },
    {
      "commit": "7dcf2a9fced59e58e4694cdcf15850c01fdba89b",
      "tree": "635476803ae017229f4a3dfaf7288d770b0dc1bf",
      "parents": [
        "44463f7dd6c8039904333e4374e5c6e9ad83006f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 01 19:27:16 2008 +0300"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Jul 25 14:35:50 2008 -0400"
      },
      "message": "remove dummy asm/kvm.h files\n\nThis patch removes the dummy asm/kvm.h files on architectures not (yet)\nsupporting KVM and uses the same conditional headers installation as\nalready used for a.out.h .\n\nAlso removed are superfluous install rules in the s390 and x86 Kbuild\nfiles (they are already in Kbuild.asm).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "f22ab814a24e654b1de24db0c5f8b57b5ab2026a",
      "tree": "827f3fe1c94ba9cfd180f199ea6d2dc2dfa885df",
      "parents": [
        "bc64efd220dcd4449aef8dd2564d73127b583b09"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:47:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "include/asm/ptrace.h userspace headers cleanup\n\nThis patch contains the following cleanups for the asm/ptrace.h\nuserspace headers:\n\n- include/asm-generic/Kbuild.asm already lists ptrace.h, remove\n  the superfluous listings in the Kbuild files of the following\n  architectures:\n  - cris\n  - frv\n  - powerpc\n  - x86\n- don\u0027t expose function prototypes and macros to userspace:\n  - arm\n  - blackfin\n  - cris\n  - mn10300\n  - parisc\n- remove #ifdef CONFIG_\u0027s around #define\u0027s:\n  - blackfin\n  - m68knommu\n- sh: AFAIK __SH5__ should work in both kernel and userspace,\n      no need to leak CONFIG_SUPERH64 to userspace\n- xtensa: cosmetical change to remove empty\n            #ifndef __ASSEMBLY__ #else #endif\n          from the userspace headers\n\nNot changed by this patch is the fact that the following architectures\nhave a different struct pt_regs depending on CONFIG_ variables:\n- h8300\n- m68knommu\n- mips\n\nThis does not work in userspace.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nAcked-by: Chris Zankel \u003cchris@zankel.net\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7444a72effa632fcd8edc566f880d96fe213c73b",
      "tree": "89d3e70c22751a6b00091df2b4dce7202eb3b1f5",
      "parents": [
        "ff1d5c2f0268f4e32103536e2e65480b5b7b6530"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Fri Jul 25 01:46:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpiolib: allow user-selection\n\nThis patch adds functionality to the gpio-lib subsystem to make it\npossible to enable the gpio-lib code even if the architecture code didn\u0027t\nrequest to get it built in.\n\nThe archtitecture code does still need to implement the gpiolib accessor\nfunctions in its asm/gpio.h file.  This patch adds the implementations for\nx86 and PPC.\n\nWith these changes it is possible to run generic GPIO expansion cards on\nevery architecture that implements the trivial wrapper functions.  Support\nfor more architectures can easily be added.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b69c49b78457f681ecfb3147bd968434ee6559c1",
      "tree": "9557c950c21cf4336ccc403136ea11384150af31",
      "parents": [
        "62ec30d45ecbb85b5991474c8f04192697687495"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 01:45:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:28 2008 -0700"
      },
      "message": "clean up duplicated alloc/free_thread_info\n\nWe duplicate alloc/free_thread_info defines on many platforms (the\nmajority uses __get_free_pages/free_pages).  This patch defines common\ndefines and removes these duplicated defines.\n__HAVE_ARCH_THREAD_INFO_ALLOCATOR is introduced for platforms that do\nsomething different.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b30f3ae50cd03ef2ff433a5030fbf88dd8323528",
      "tree": "ec140aa507d73eb5f4dfb8d46ccbd9dd80ca84e7",
      "parents": [
        "b5684b83b1e1579bbbc80e703e990c0cccf5892c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 15:43:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 16:12:40 2008 -0700"
      },
      "message": "x86-64: Clean up \u0027save/restore_i387()\u0027 usage\n\nSuresh Siddha wants to fix a possible FPU leakage in error conditions,\nbut the fact that save/restore_i387() are inlines in a header file makes\nthat harder to do than necessary.  So start off with an obvious cleanup.\n\nThis just moves the x86-64 version of save/restore_i387() out of the\nheader file, and moves it to the only file that it is actually used in:\narch/x86/kernel/signal_64.c.  So exposing it in a header file was wrong\nto begin with.\n\n[ Side note: I\u0027d like to fix up some of the games we play with the\n  32-bit version of these functions too, but that\u0027s a separate\n  matter.  The 32-bit versions are shared - under different names\n  at that! - by both the native x86-32 code and the x86-64 32-bit\n  compatibility code ]\n\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5684b83b1e1579bbbc80e703e990c0cccf5892c",
      "tree": "3f1b62b2320bce4d658d2ad0d4b77856499ac533",
      "parents": [
        "1481b9109fe771ec8b035d7760f42e36d2bed5d4",
        "1b8ebad87b459e2e1333fbf28005977245ff5402"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 14:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 14:55:09 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (76 commits)\n  ide: use proper printk() KERN_* levels in ide-probe.c\n  ide: fix for EATA SCSI HBA in ATA emulating mode\n  ide: remove stale comments from drivers/ide/Makefile\n  ide: enable local IRQs in all handlers for TASKFILE_NO_DATA data phase\n  ide-scsi: remove kmalloced struct request\n  ht6560b: remove old history\n  ht6560b: update email address\n  ide-cd: fix oops when using growisofs\n  gayle: release resources on ide_host_add() failure\n  palm_bk3710: add UltraDMA/100 support\n  ide: trivial sparse annotations\n  ide: ide-tape.c sparse annotations and unaligned access removal\n  ide: drop \u0027name\u0027 parameter from -\u003einit_chipset method\n  ide: prefix messages from IDE PCI host drivers by driver name\n  it821x: remove DECLARE_ITE_DEV() macro\n  it8213: remove DECLARE_ITE_DEV() macro\n  ide: include PCI device name in messages from IDE PCI host drivers\n  ide: remove \u003casm/ide.h\u003e for some archs\n  ide-generic: remove ide_default_{io_base,irq}() inlines (take 3)\n  ide-generic: is no longer needed on ppc32\n  ...\n"
    },
    {
      "commit": "2a8f7450f828eaee49d66f41f99ac2e54f1160a6",
      "tree": "e8762e9add74953a32ebd86c019638e5ed2d484d",
      "parents": [
        "f01d35d87f39ab794ddcdefadb79c11054bcbfbc"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:31 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:31 2008 +0200"
      },
      "message": "ide: remove \u003casm/ide.h\u003e for some archs\n\n* Remove \u003clinux/irq.h\u003e include from \u003casm-ia64.h\u003e (\u003clinux/ide.h\u003e includes\n  \u003clinux/interrupt.h\u003e which is enough).\n\n* Remove \u003casm/ide.h\u003e for alpha/blackfin/h8300/ia64/m32r/sh/x86/xtensa\n  (this leaves us with arm/frv/m68k/mips/mn10300/parisc/powerpc/sparc[64]).\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "f01d35d87f39ab794ddcdefadb79c11054bcbfbc",
      "tree": "018c211b22e57819cc8456b4d85993bbdda92246",
      "parents": [
        "35bbac9a2f73a7e0967d0a1d3e3673e2590ef716"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:31 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:31 2008 +0200"
      },
      "message": "ide-generic: remove ide_default_{io_base,irq}() inlines (take 3)\n\nReplace ide_default_{io_base,irq}() inlines by legacy_{bases,irqs}[].\n\nv2:\nAdd missing zero-ing of hws[] (caught during testing by Borislav Petkov).\n\nv3:\nFix zero-oing of hws[] for _real_ this time.\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "d83b8b85cd56a083d30df73f3fd5e4714591b910",
      "tree": "1fac379e8d909361ecbf934645463a00e706dafc",
      "parents": [
        "2c9d86438a0104800da2a8ecdc1e27baf38ba6a4"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:30 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:30 2008 +0200"
      },
      "message": "ide: define MAX_HWIFS in \u003clinux/ide.h\u003e\n\n* Now that ide_hwif_t instances are allocated dynamically\n  the difference between MAX_HWIFS \u003d\u003d 2 and MAX_HWIFS \u003d\u003d 10\n  is ~100 bytes (x86-32) so use MAX_HWIFS \u003d\u003d 10 on all archs\n  except these ones that use MAX_HWIFS \u003d\u003d 1.\n\n* Define MAX_HWIFS in \u003clinux/ide.h\u003e instead of \u003casm/ide.h\u003e.\n\n[ Please note that avr32/cris/v850 have no \u003casm/ide.h\u003e\n  and alpha/ia64/sh always define CONFIG_IDE_MAX_HWIFS. ]\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "b6cd7da5be2522b62bbc48d41b36c828b88e02fe",
      "tree": "9c6089a431dfb7cd1539413656d343454607fdbe",
      "parents": [
        "dbdec839c4c2bfc8f2da8e50c06b9947e5ad0394"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:28 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Jul 24 22:53:28 2008 +0200"
      },
      "message": "ide-generic: remove \"no_pci_devices()\" quirk from ide_default_io_base()\n\nSince the decision to probe for ISA ide2-6 is now left to the user\n\"no_pci_devices()\" quirk is no longer needed and may be removed.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "6044110742bc2ae0577b962985e7c63e0634b2e9",
      "tree": "ab32f95f2b073d2bfcdf39909a718aa69ad127c6",
      "parents": [
        "7540081c6b16dc941895bca840749cabfd0d3b48",
        "04bbe430f73c6c31bbd067349c029e907e153a8d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 12:33:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 12:33:51 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: fix header export, asm-x86/processor-flags.h, CONFIG_* leaks\n  x86: BUILD_IRQ say .text to avoid .data.percpu\n  xen: don\u0027t use sysret for sysexit32\n  x86: call early_cpu_init at the same point\n"
    },
    {
      "commit": "7540081c6b16dc941895bca840749cabfd0d3b48",
      "tree": "9e6b2270d700bf99489b570aa2b4c2c0b6cd0ead",
      "parents": [
        "3fde80e94c2bbffbb13f5faa3340cf438440ebea",
        "b552068999b0b05087c454e525b30b785c79dc9b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 12:24:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 12:24:40 2008 -0700"
      },
      "message": "Merge branch \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:\n  Remove __DECLARE_SEMAPHORE_GENERIC\n  Remove asm/semaphore.h\n  Remove use of asm/semaphore.h\n  Add missing semaphore.h includes\n  Remove mention of semaphores from kernel-locking\n"
    },
    {
      "commit": "9fe5ad9c8cef9ad5873d8ee55d1cf00d9b607df0",
      "tree": "49fb04cf552192e566d2aa6e18f40585230cba5a",
      "parents": [
        "e38b36f325153eaadd1c2a7abc5762079233e540"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:29 2008 -0700"
      },
      "message": "flag parameters add-on: remove epoll_create size param\n\nRemove the size parameter from the new epoll_create syscall and renames the\nsyscall itself.  The updated test program follows.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_epoll_create2\n# ifdef __x86_64__\n#  define __NR_epoll_create2 291\n# elif defined __i386__\n#  define __NR_epoll_create2 329\n# else\n#  error \"need __NR_epoll_create2\"\n# endif\n#endif\n\n#define EPOLL_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_epoll_create2, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"epoll_create2(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_epoll_create2, EPOLL_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4006553b06306b34054529477b06b68a1c66249b",
      "tree": "d4ebbe4a5294b0cec69fe4908b7b7c569f4ece03",
      "parents": [
        "ed8cae8ba01348bfd83333f4648dd807b04d7f08"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: inotify_init\n\nThis patch introduces the new syscall inotify_init1 (note: the 1 stands for\nthe one parameter the syscall takes, as opposed to no parameter before).  The\nvalues accepted for this parameter are function-specific and defined in the\ninotify.h header.  Here the values must match the O_* flags, though.  In this\npatch CLOEXEC support is introduced.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_inotify_init1\n# ifdef __x86_64__\n#  define __NR_inotify_init1 294\n# elif defined __i386__\n#  define __NR_inotify_init1 332\n# else\n#  error \"need __NR_inotify_init1\"\n# endif\n#endif\n\n#define IN_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd;\n  fd \u003d syscall (__NR_inotify_init1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"inotify_init1(0) set close-on-exit\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_inotify_init1, IN_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"inotify_init1(IN_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"inotify_init1(O_CLOEXEC) does not set close-on-exit\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed8cae8ba01348bfd83333f4648dd807b04d7f08",
      "tree": "c71a1c8e771c1c55728bb7c40612fbdcefbc858a",
      "parents": [
        "336dd1f70ff62d7dd8655228caed4c5bfc818c56"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: pipe\n\nThis patch introduces the new syscall pipe2 which is like pipe but it also\ntakes an additional parameter which takes a flag value.  This patch implements\nthe handling of O_CLOEXEC for the flag.  I did not add support for the new\nsyscall for the architectures which have a special sys_pipe implementation.  I\nthink the maintainers of those archs have the chance to go with the unified\nimplementation but that\u0027s up to them.\n\nThe implementation introduces do_pipe_flags.  I did that instead of changing\nall callers of do_pipe because some of the callers are written in assembler.\nI would probably screw up changing the assembly code.  To avoid breaking code\ndo_pipe is now a small wrapper around do_pipe_flags.  Once all callers are\nchanged over to do_pipe_flags the old do_pipe function can be removed.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_pipe2\n# ifdef __x86_64__\n#  define __NR_pipe2 293\n# elif defined __i386__\n#  define __NR_pipe2 331\n# else\n#  error \"need __NR_pipe2\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fd[2];\n  if (syscall (__NR_pipe2, fd, 0) !\u003d 0)\n    {\n      puts (\"pipe2(0) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int coe \u003d fcntl (fd[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if (coe \u0026 FD_CLOEXEC)\n        {\n          printf (\"pipe2(0) set close-on-exit for fd[%d]\\n\", i);\n          return 1;\n        }\n    }\n  close (fd[0]);\n  close (fd[1]);\n\n  if (syscall (__NR_pipe2, fd, O_CLOEXEC) !\u003d 0)\n    {\n      puts (\"pipe2(O_CLOEXEC) failed\");\n      return 1;\n    }\n  for (int i \u003d 0; i \u003c 2; ++i)\n    {\n      int coe \u003d fcntl (fd[i], F_GETFD);\n      if (coe \u003d\u003d -1)\n        {\n          puts (\"fcntl failed\");\n          return 1;\n        }\n      if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n        {\n          printf (\"pipe2(O_CLOEXEC) does not set close-on-exit for fd[%d]\\n\", i);\n          return 1;\n        }\n    }\n  close (fd[0]);\n  close (fd[1]);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "336dd1f70ff62d7dd8655228caed4c5bfc818c56",
      "tree": "1441b76ea5f08f44167f41867f3555ac53712ebb",
      "parents": [
        "a0998b50c3f0b8fdd265c63e0032f86ebe377dbf"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: dup2\n\nThis patch adds the new dup3 syscall.  It extends the old dup2 syscall by one\nparameter which is meant to hold a flag value.  Support for the O_CLOEXEC flag\nis added in this patch.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_dup3\n# ifdef __x86_64__\n#  define __NR_dup3 292\n# elif defined __i386__\n#  define __NR_dup3 330\n# else\n#  error \"need __NR_dup3\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_dup3, 1, 4, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"dup3(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_dup3, 1, 4, O_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(O_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"dup3(O_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0998b50c3f0b8fdd265c63e0032f86ebe377dbf",
      "tree": "9132ecb7ef925374edabcaeea44e0287eb5043f4",
      "parents": [
        "11fcb6c14676023d0bd437841f5dcd670e7990a0"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: epoll_create\n\nThis patch adds the new epoll_create2 syscall.  It extends the old epoll_create\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is EPOLL_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name EPOLL_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_epoll_create2\n# ifdef __x86_64__\n#  define __NR_epoll_create2 291\n# elif defined __i386__\n#  define __NR_epoll_create2 329\n# else\n#  error \"need __NR_epoll_create2\"\n# endif\n#endif\n\n#define EPOLL_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_epoll_create2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"epoll_create2(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_epoll_create2, 1, EPOLL_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"epoll_create2(EPOLL_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b087498eb5605673b0f260a7620d91818cd72304",
      "tree": "977d9dbcd326a9582dfc5ad000995d26886c872e",
      "parents": [
        "9deb27baedb79759c3ab9435a7d8b841842d56e9"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: eventfd\n\nThis patch adds the new eventfd2 syscall.  It extends the old eventfd\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is EFD_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name EFD_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_eventfd2\n# ifdef __x86_64__\n#  define __NR_eventfd2 290\n# elif defined __i386__\n#  define __NR_eventfd2 328\n# else\n#  error \"need __NR_eventfd2\"\n# endif\n#endif\n\n#define EFD_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_eventfd2, 1, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"eventfd2(0) sets close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_eventfd2, 1, EFD_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"eventfd2(EFD_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"eventfd2(EFD_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9deb27baedb79759c3ab9435a7d8b841842d56e9",
      "tree": "1c88393ba30db851ca0bb93c4e656d4e5dbb22b9",
      "parents": [
        "7d9dbca34240ebb6ff88d8a29c6c7bffd098f0c1"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: signalfd\n\nThis patch adds the new signalfd4 syscall.  It extends the old signalfd\nsyscall by one parameter which is meant to hold a flag value.  In this\npatch the only flag support is SFD_CLOEXEC which causes the close-on-exec\nflag for the returned file descriptor to be set.\n\nA new name SFD_CLOEXEC is introduced which in this implementation must\nhave the same value as O_CLOEXEC.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_signalfd4\n# ifdef __x86_64__\n#  define __NR_signalfd4 289\n# elif defined __i386__\n#  define __NR_signalfd4 327\n# else\n#  error \"need __NR_signalfd4\"\n# endif\n#endif\n\n#define SFD_CLOEXEC O_CLOEXEC\n\nint\nmain (void)\n{\n  sigset_t ss;\n  sigemptyset (\u0026ss);\n  sigaddset (\u0026ss, SIGUSR1);\n  int fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"signalfd4(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_signalfd4, -1, \u0026ss, 8, SFD_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"signalfd4(SFD_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"signalfd4(SFD_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aaca0bdca573f3f51ea03139f9c7289541e7bca3",
      "tree": "d25b0baa73b5301d91a5c848a896bad0fb719acc",
      "parents": [
        "a677a039be7243357d93502bff2b40850c942e2d"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:27 2008 -0700"
      },
      "message": "flag parameters: paccept\n\nThis patch is by far the most complex in the series.  It adds a new syscall\npaccept.  This syscall differs from accept in that it adds (at the userlevel)\ntwo additional parameters:\n\n- a signal mask\n- a flags value\n\nThe flags parameter can be used to set flag like SOCK_CLOEXEC.  This is\nimlpemented here as well.  Some people argued that this is a property which\nshould be inherited from the file desriptor for the server but this is against\nPOSIX.  Additionally, we really want the signal mask parameter as well\n(similar to pselect, ppoll, etc).  So an interface change in inevitable.\n\nThe flag value is the same as for socket and socketpair.  I think diverging\nhere will only create confusion.  Similar to the filesystem interfaces where\nthe use of the O_* constants differs, it is acceptable here.\n\nThe signal mask is handled as for pselect etc.  The mask is temporarily\ninstalled for the thread and removed before the call returns.  I modeled the\ncode after pselect.  If there is a problem it\u0027s likely also in pselect.\n\nFor architectures which use socketcall I maintained this interface instead of\nadding a system call.  The symmetry shouldn\u0027t be broken.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cpthread.h\u003e\n#include \u003csignal.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_paccept\n# ifdef __x86_64__\n#  define __NR_paccept 288\n# elif defined __i386__\n#  define SYS_PACCEPT 18\n#  define USE_SOCKETCALL 1\n# else\n#  error \"need __NR_paccept\"\n# endif\n#endif\n\n#ifdef USE_SOCKETCALL\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  ({ long args[6] \u003d { \\\n       (long) fd, (long) addr, (long) addrlen, (long) mask, 8, (long) flags }; \\\n     syscall (__NR_socketcall, SYS_PACCEPT, args); })\n#else\n# define paccept(fd, addr, addrlen, mask, flags) \\\n  syscall (__NR_paccept, fd, addr, addrlen, mask, 8, flags)\n#endif\n\n#define PORT 57392\n\n#define SOCK_CLOEXEC O_CLOEXEC\n\nstatic pthread_barrier_t b;\n\nstatic void *\ntf (void *arg)\n{\n  pthread_barrier_wait (\u0026b);\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  struct sockaddr_in sin;\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n\n  pthread_barrier_wait (\u0026b);\n  s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  sin.sin_port \u003d htons (PORT);\n  connect (s, (const struct sockaddr *) \u0026sin, sizeof (sin));\n  close (s);\n  pthread_barrier_wait (\u0026b);\n\n  pthread_barrier_wait (\u0026b);\n  sleep (2);\n  pthread_kill ((pthread_t) arg, SIGUSR1);\n\n  return NULL;\n}\n\nstatic void\nhandler (int s)\n{\n}\n\nint\nmain (void)\n{\n  pthread_barrier_init (\u0026b, NULL, 2);\n\n  struct sockaddr_in sin;\n  pthread_t th;\n  if (pthread_create (\u0026th, NULL, tf, (void *) pthread_self ()) !\u003d 0)\n    {\n      puts (\"pthread_create failed\");\n      return 1;\n    }\n\n  int s \u003d socket (AF_INET, SOCK_STREAM, 0);\n  int reuse \u003d 1;\n  setsockopt (s, SOL_SOCKET, SO_REUSEADDR, \u0026reuse, sizeof (reuse));\n  sin.sin_family \u003d AF_INET;\n  sin.sin_addr.s_addr \u003d htonl (INADDR_LOOPBACK);\n  sin.sin_port \u003d htons (PORT);\n  bind (s, (struct sockaddr *) \u0026sin, sizeof (sin));\n  listen (s, SOMAXCONN);\n\n  pthread_barrier_wait (\u0026b);\n\n  int s2 \u003d paccept (s, NULL, 0, NULL, 0);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(0) failed\");\n      return 1;\n    }\n\n  int coe \u003d fcntl (s2, F_GETFD);\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"paccept(0) set close-on-exec-flag\");\n      return 1;\n    }\n  close (s2);\n\n  pthread_barrier_wait (\u0026b);\n\n  s2 \u003d paccept (s, NULL, 0, NULL, SOCK_CLOEXEC);\n  if (s2 \u003c 0)\n    {\n      puts (\"paccept(SOCK_CLOEXEC) failed\");\n      return 1;\n    }\n\n  coe \u003d fcntl (s2, F_GETFD);\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"paccept(SOCK_CLOEXEC) does not set close-on-exec flag\");\n      return 1;\n    }\n  close (s2);\n\n  pthread_barrier_wait (\u0026b);\n\n  struct sigaction sa;\n  sa.sa_handler \u003d handler;\n  sa.sa_flags \u003d 0;\n  sigemptyset (\u0026sa.sa_mask);\n  sigaction (SIGUSR1, \u0026sa, NULL);\n\n  sigset_t ss;\n  pthread_sigmask (SIG_SETMASK, NULL, \u0026ss);\n  sigaddset (\u0026ss, SIGUSR1);\n  pthread_sigmask (SIG_SETMASK, \u0026ss, NULL);\n\n  sigdelset (\u0026ss, SIGUSR1);\n  alarm (4);\n  pthread_barrier_wait (\u0026b);\n\n  errno \u003d 0 ;\n  s2 \u003d paccept (s, NULL, 0, \u0026ss, 0);\n  if (s2 !\u003d -1 || errno !\u003d EINTR)\n    {\n      puts (\"paccept did not fail with EINTR\");\n      return 1;\n    }\n\n  close (s);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n[akpm@linux-foundation.org: make it compile]\n[akpm@linux-foundation.org: add sys_ni stub]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27ac792ca0b0a1e7e65f20342260650516c95864",
      "tree": "8e0bc93612da0803fe12303ccb75c837cd633c83",
      "parents": [
        "d92bc318547507a944a22e7ef936793dc0fe167f"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Wed Jul 23 21:28:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures\n\nOn 32-bit architectures PAGE_ALIGN() truncates 64-bit values to the 32-bit\nboundary. For example:\n\n\tu64 val \u003d PAGE_ALIGN(size);\n\nalways returns a value \u003c 4GB even if size is greater than 4GB.\n\nThe problem resides in PAGE_MASK definition (from include/asm-x86/page.h for\nexample):\n\n#define PAGE_SHIFT      12\n#define PAGE_SIZE       (_AC(1,UL) \u003c\u003c PAGE_SHIFT)\n#define PAGE_MASK       (~(PAGE_SIZE-1))\n...\n#define PAGE_ALIGN(addr)       (((addr)+PAGE_SIZE-1)\u0026PAGE_MASK)\n\nThe \"~\" is performed on a 32-bit value, so everything in \"and\" with\nPAGE_MASK greater than 4GB will be truncated to the 32-bit boundary.\nUsing the ALIGN() macro seems to be the right way, because it uses\ntypeof(addr) for the mask.\n\nAlso move the PAGE_ALIGN() definitions out of include/asm-*/page.h in\ninclude/linux/mm.h.\n\nSee also lkml discussion: http://lkml.org/lkml/2008/6/11/237\n\n[akpm@linux-foundation.org: fix drivers/media/video/uvc/uvc_queue.c]\n[akpm@linux-foundation.org: fix v850]\n[akpm@linux-foundation.org: fix powerpc]\n[akpm@linux-foundation.org: fix arm]\n[akpm@linux-foundation.org: fix mips]\n[akpm@linux-foundation.org: fix drivers/media/video/pvrusb2/pvrusb2-dvb.c]\n[akpm@linux-foundation.org: fix drivers/mtd/maps/uclinux.c]\n[akpm@linux-foundation.org: fix powerpc]\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4718e628dbf68a2dee23b5709e2aa3190409c56",
      "tree": "e685b2bd36a0fe731b128d2814996a693561d288",
      "parents": [
        "39c11e6c05b7fedbf7ed4df3908b25f622d56204"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "x86: add hugepagesz option on 64-bit\n\nAdd an hugepagesz\u003d...  option similar to IA64, PPC etc.  to x86-64.\n\nThis finally allows to select GB pages for hugetlbfs in x86 now that all\nthe infrastructure is in place.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5516438959d90b071ff0a484ce4f3f523dc3152",
      "tree": "e356ba9364c76b93c176b4d4a262b7aca3ee8f91",
      "parents": [
        "b7ba30c679ed1eb7ed3ed8f281f6493282042bd4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: modular state for hugetlb page size\n\nThe goal of this patchset is to support multiple hugetlb page sizes.  This\nis achieved by introducing a new struct hstate structure, which\nencapsulates the important hugetlb state and constants (eg.  huge page\nsize, number of huge pages currently allocated, etc).\n\nThe hstate structure is then passed around the code which requires these\nfields, they will do the right thing regardless of the exact hstate they\nare operating on.\n\nThis patch adds the hstate structure, with a single global instance of it\n(default_hstate), and does the basic work of converting hugetlb to use the\nhstate.\n\nFuture patches will add more hstate structures to allow for different\nhugetlbfs mounts to have different page sizes.\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42b7772812d15b86543a23b82bd6070eef9a08b1",
      "tree": "10665ee01fe82ce17c68a6278d044531b1ed64c0",
      "parents": [
        "a352894d07059649398c4769dc8b645e1a1dad88"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jul 23 21:27:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "mm: remove double indirection on tlb parameter to free_pgd_range() \u0026 Co\n\nThe double indirection here is not needed anywhere and hence (at least)\nconfusing.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b2ee20c7cba812b6f2ccf6d722cf86d00a84dc",
      "tree": "e8f1efd05c38c1cb26ca3ee051a454eb685fd122",
      "parents": [
        "0d71d10a4252a3938e6b70189bc776171c02e076"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Jul 23 21:27:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "access_process_vm device memory infrastructure\n\nIn order to be able to debug things like the X server and programs using\nthe PPC Cell SPUs, the debugger needs to be able to access device memory\nthrough ptrace and /proc/pid/mem.\n\nThis patch:\n\nAdd the generic_access_phys access function and put the hooks in place\nto allow access_process_vm to access device or PPC Cell SPU memory.\n\n[riel@redhat.com: Add documentation for the vm_ops-\u003eaccess function]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Benjamin Herrensmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2351ec533ed0dd56052ab96988d2161d5ecc8ed9",
      "tree": "f60585af065bc7728f55ff0681c3f3f1015ba0a1",
      "parents": [
        "6310e472717ed736c9bff9840febb71f7bb400ed"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Jul 24 08:09:32 2008 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Jul 24 08:31:12 2008 -0400"
      },
      "message": "Remove asm/semaphore.h\n\nAll users have now been converted to linux/semaphore.h and we don\u0027t need\nto keep these files around any longer.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "04bbe430f73c6c31bbd067349c029e907e153a8d",
      "tree": "9690157ea52c989a2accd52416cecf77710dec25",
      "parents": [
        "9d25d4db81833029d30b7b03cc1000cbbe09e192"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jul 21 15:06:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 24 12:49:53 2008 +0200"
      },
      "message": "x86: fix header export, asm-x86/processor-flags.h, CONFIG_* leaks\n\nApparently,\n\ncommit 6330a30a76c1e62d4b4ec238368957f8febf9113\nAuthor: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nDate:   Wed May 28 09:46:19 2008 +0200\n\n    x86: break mutual header inclusion\n\nintroduced some CONFIG names to processor-flags.h, which was exported in\n\ncommit 6093015db2bd9e70cf20cdd23be1a50733baafdd\nAuthor: Ingo Molnar \u003cmingo@elte.hu\u003e\nDate:   Sun Mar 30 11:45:23 2008 +0200\n\n    x86: cleanup replace most vm86 flags with flags from processor-flags.h, fix\n\nFix it by wrapping the CONFIG parts in __KERNEL__.\n\nReported-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "26dcce0fabbef75ae426461edf21b5030bad60f3",
      "tree": "56c64fa47dc29f7ea5a8fd0cab0459fb0a05a2bc",
      "parents": [
        "d7b6de14a0ef8a376f9d57b867545b47302b7bfb",
        "eb6a12c2428d21a9f3e0f1a50e927d5fd80fc3d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "message": "Merge branch \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)\n  NR_CPUS: Replace NR_CPUS in speedstep-centrino.c\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP\n  NR_CPUS: Replace NR_CPUS in cpufreq userspace routines\n  NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix\n  cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c\n  cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c\n  cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c\n  cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr\n  Revert \"cpumask: introduce new APIs\"\n  cpumask: make for_each_cpu_mask a bit smaller\n  net: Pass reference to cpumask variable in net/sunrpc/svc.c\n  ...\n\nFix up trivial conflicts in drivers/cpufreq/cpufreq.c manually\n"
    },
    {
      "commit": "77be1fabd024b37423d12f832b1fbdb95dbdf494",
      "tree": "b1fa99ff9b1c0bcb63c7a602a425d72b24c1ede6",
      "parents": [
        "59438c9fc4f7a92c808c9049bc6b396f98bf954c"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Jul 21 22:59:56 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 22 10:43:45 2008 +0200"
      },
      "message": "x86: add PTE_FLAGS_MASK\n\nPTE_PFN_MASK was getting lonely, so I made it a friend.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59438c9fc4f7a92c808c9049bc6b396f98bf954c",
      "tree": "b86d6072612075bc256038a3430d86ab04778d51",
      "parents": [
        "c2e3277f875b83e5adc34e96989d6d87ec5f80f7"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Jul 21 22:59:42 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 22 10:43:44 2008 +0200"
      },
      "message": "x86: rename PTE_MASK to PTE_PFN_MASK\n\nRusty, in his peevish way, complained that macros defining constants\nshould have a name which somewhat accurately reflects the actual\npurpose of the constant.\n\nAside from the fact that PTE_MASK gives no clue as to what\u0027s actually\nbeing masked, and is misleadingly similar to the functionally entirely\ndifferent PMD_MASK, PUD_MASK and PGD_MASK, I don\u0027t really see what the\nproblem is.\n\nBut if this patch silences the incessent noise, then it will have\nachieved its goal (TODO: write test-case).\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2e3277f875b83e5adc34e96989d6d87ec5f80f7",
      "tree": "c25f6dd50e136d720f8f35d689946b6d256d054b",
      "parents": [
        "988781dc3e1d9209192b04458d279815923f5e76"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 22 15:40:46 2008 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 22 10:41:18 2008 +0200"
      },
      "message": "x86: fix pte_flags() to only return flags, fix lguest (updated)\n\n(Jeremy said:\n\trusty: use PTE_MASK\n\trusty: use PTE_MASK\n\trusty: use PTE_MASK\n When I asked:\n\tjsgf: does that include the NX flag?\n He responded eloquently:\n\trusty: use PTE_MASK\n\trusty: use PTE_MASK\n\tyes, it\u0027s the official constant of masking flags out of ptes\n)\n\nChange a15af1c9ea2750a9ff01e51615c45950bad8221b \u0027x86/paravirt: add\npte_flags to just get pte flags\u0027 removed lguest\u0027s private pte_flags()\nin favor of a generic one.\n\nUnfortunately, the generic one doesn\u0027t filter out the non-flags bits:\nthis results in lguest creating corrupt shadow page tables and blowing\nup host memory.\n\nSince noone is supposed to use the pfn part of pte_flags(), it seems\nsafest to always do the filtering.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-and-morning-tea-spilled-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cfc1b9a6a683c835a20d5b565ade55baf639f72f",
      "tree": "d9eb8b4a76185e6913ec542020f387a368132f9b",
      "parents": [
        "2e2dcc7631e331cf2e8396ce452e7f01e35f1182"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 21 21:35:38 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 21 21:35:38 2008 +0200"
      },
      "message": "x86: convert Dprintk to pr_debug\n\nThere are a couple of places where (P)Dprintk is used which is an old\ncompile time enabled printk wrapper. Convert it to the generic\npr_debug().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "eb6a12c2428d21a9f3e0f1a50e927d5fd80fc3d0",
      "tree": "5ac6f43899648abeab1d43aad3107f664e7f13d5",
      "parents": [
        "c4762aba0b1f72659aae9ce37b772ca8bd8f06f4",
        "14b395e35d1afdd8019d11b92e28041fad591b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 17:19:50 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 17:19:50 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096-for-linus\n\nConflicts:\n\n\tnet/sunrpc/svc.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e2dcc7631e331cf2e8396ce452e7f01e35f1182",
      "tree": "5a02c9602db66bc8c8db9660899c0c4455d7464f",
      "parents": [
        "acee709cab689ec7703770e8b8cb5cc3a4abcb31",
        "1c29dd9a9e2f83ffb02e50bb3619c3b9db8fd526"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 16:45:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 16:45:56 2008 +0200"
      },
      "message": "Merge branch \u0027x86/paravirt-spinlocks\u0027 into x86/for-linus\n"
    },
    {
      "commit": "acee709cab689ec7703770e8b8cb5cc3a4abcb31",
      "tree": "258729f7d7bc385e08d471ade34bd3ce1e8ea280",
      "parents": [
        "33a37eb411d193851c334060780ab834ba534292",
        "5ff4789d045cdaec7629e027e4f8ff8e34308b81",
        "35b680557f95564f70f21a8d3f5c72e101fab260",
        "c4dc59ae7af8c1c116d2cb4dffba337f032a6bee",
        "7edf8891ad7aef5f4e97991fed6fb0e605e96ea0",
        "9781f39fd209cd93ab98b669814191acc67f32fd",
        "48fe4a76e27dc64b47f3d2a2af2b6bbf2b2f5b6b",
        "be54f9d1c8df93c4998e134a306652caaa58f67f",
        "77e442461c74068217b59b356cf18992c78ed896",
        "caadbdce240c43e3e46c82fce6c00eb7f01e1beb",
        "5e5a29bf2624a5984e1c36c3a2481ee91249ec9c",
        "e3a61b0a8c0e342e700a61cd554b01050f333a36",
        "fec0962e0bed407927b9ff54bb0596a3ab7e4b61",
        "fab3b58d3b242b5903f78d60d86803a8aecdf6de",
        "f2ba93929fdb91fd806be20e959a50f7db82790e",
        "48ae74443403ab25876959e84785f61bf421ccef",
        "3cabf37f6167125cb5185db05f5061650f685ab7",
        "7019cc2dd6fafcdc6b104005482dc910dcdbb797",
        "2ddf9b7b3e6660199269e34cfa27148440ddc3bf",
        "e66d90fb4abd0a27ee96f57a32fb561221c4d6ae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 16:37:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 16:37:17 2008 +0200"
      },
      "message": "Merge branches \u0027x86/urgent\u0027, \u0027x86/amd-iommu\u0027, \u0027x86/apic\u0027, \u0027x86/cleanups\u0027, \u0027x86/core\u0027, \u0027x86/cpu\u0027, \u0027x86/fixmap\u0027, \u0027x86/gart\u0027, \u0027x86/kprobes\u0027, \u0027x86/memtest\u0027, \u0027x86/modules\u0027, \u0027x86/nmi\u0027, \u0027x86/pat\u0027, \u0027x86/reboot\u0027, \u0027x86/setup\u0027, \u0027x86/step\u0027, \u0027x86/unify-pci\u0027, \u0027x86/uv\u0027, \u0027x86/xen\u0027 and \u0027xen-64bit\u0027 into x86/for-linus\n"
    },
    {
      "commit": "e66d90fb4abd0a27ee96f57a32fb561221c4d6ae",
      "tree": "3337cba94c7444b06fdb0e8b487287d07b71f4a0",
      "parents": [
        "55ca089e2579de90f048aca2a3030b8b2f864813",
        "14b395e35d1afdd8019d11b92e28041fad591b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 15:06:09 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 15:06:09 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into xen-64bit\n"
    },
    {
      "commit": "1c29dd9a9e2f83ffb02e50bb3619c3b9db8fd526",
      "tree": "b5691dd5aa48ac32fdbaef44afcbcc92f01592d3",
      "parents": [
        "32172561889868c0ea422ea8570f0413963a815f",
        "14b395e35d1afdd8019d11b92e28041fad591b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 15:05:58 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 15:05:58 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/paravirt-spinlocks\n"
    },
    {
      "commit": "33a37eb411d193851c334060780ab834ba534292",
      "tree": "15eff4d19335ec69ef2c222c800a0073cf10b924",
      "parents": [
        "e27772b48df91a954a74b1411b57d83b945a58c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 10:57:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 11:03:32 2008 +0200"
      },
      "message": "KVM: fix exception entry / build bug, on 64-bit\n\n-tip testing found this build bug:\n\n arch/x86/kvm/built-in.o:(.text.fixup+0x1): relocation truncated to fit: R_X86_64_32 against `.text\u0027\n arch/x86/kvm/built-in.o:(.text.fixup+0xb): relocation truncated to fit: R_X86_64_32 against `.text\u0027\n arch/x86/kvm/built-in.o:(.text.fixup+0x15): relocation truncated to fit: R_X86_64_32 against `.text\u0027\n arch/x86/kvm/built-in.o:(.text.fixup+0x1f): relocation truncated to fit: R_X86_64_32 against `.text\u0027\n arch/x86/kvm/built-in.o:(.text.fixup+0x29): relocation truncated to fit: R_X86_64_32 against `.text\u0027\n\nIntroduced by commit 4ecac3fd. The problem is that \u0027push\u0027 will default\nto 32-bit, which is not wide enough as a fixup address. (and which would\ncrash on any real fixup event even if it was wide enough)\n\nIntroduce KVM_EX_PUSH to get the proper address push width on 64-bit too.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e27772b48df91a954a74b1411b57d83b945a58c7",
      "tree": "ebd4a434d9e3cbd0844109e4469f91daac581b59",
      "parents": [
        "d092633bff3b19faffc480fe9810805e7792a029",
        "14b395e35d1afdd8019d11b92e28041fad591b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 11:02:45 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 21 11:02:45 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/urgent\n"
    },
    {
      "commit": "d6e88aec07aa8f6c7e4024f5734ec659fd7c5a40",
      "tree": "2f20376a678d720d2be4e5feab3f4049e0477a73",
      "parents": [
        "c65bbfa1d693d375da51f9c8aa9fb26f09fa19ed"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu Jul 10 16:53:33 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:39 2008 +0300"
      },
      "message": "KVM: Prefix some x86 low level function with kvm_, to avoid namespace issues\n\nFixes compilation with CONFIG_VMI enabled.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7a5b56dfd3a682a51fc84682290d5147872a8e99",
      "tree": "f7b6f0e746df3c43ab8317d1c4b585334808e5fb",
      "parents": [
        "0adc8675d645940139d12477e5e05b8a0a7a1117"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jun 22 16:22:51 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:35 2008 +0300"
      },
      "message": "KVM: x86 emulator: lazily evaluate segment registers\n\nInstead of prefetching all segment bases before emulation, read them at the\nlast moment.  Since most of them are unneeded, we save some cycles on\nIntel machines where this is a bit expensive.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f5b4edcd52e78556800f90d08bfc9126416ac82f",
      "tree": "5c40b9781cf18d66c9e71b837ffc3eaddac48ddb",
      "parents": [
        "84411d85dacdb6665578608c6a70fc8b819761a8"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jun 15 22:09:11 2008 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:34 2008 +0300"
      },
      "message": "KVM: x86 emulator: simplify rip relative decoding\n\nrip relative decoding is relative to the instruction pointer of the next\ninstruction; by moving address adjustment until after decoding is complete,\nwe remove the need to determine the instruction size.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "542472b53ea9e0add0ba23976018210191d84754",
      "tree": "8de46a03065f2fdf33485138f954a246e974070c",
      "parents": [
        "5f94c1741bdc7a336553122036e8a779e616ccbf"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Fri May 30 16:05:55 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:31 2008 +0300"
      },
      "message": "KVM: Add coalesced MMIO support (x86 part)\n\nThis patch enables coalesced MMIO for x86 architecture.\nIt defines KVM_MMIO_PAGE_OFFSET and KVM_CAP_COALESCED_MMIO.\nIt enables the compilation of coalesced_mmio.c.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3e6e0aab1ba1e8b354ce01f5659336f9aee69437",
      "tree": "50b4bae56f8f5672081e23b5595c3a6e45b12973",
      "parents": [
        "9ba075a664dff836fd6fb93f90fcc827f7683d91"
      ],
      "author": {
        "name": "Guillaume Thouvenin",
        "email": "guillaume.thouvenin@ext.bull.net",
        "time": "Tue May 27 10:18:46 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:27 2008 +0300"
      },
      "message": "KVM: Prefixes segment functions that will be exported with \"kvm_\"\n\nPrefixes functions that will be exported with kvm_.\nWe also prefixed set_segment() even if it still static\nto be coherent.\n\nsigned-off-by: Guillaume Thouvenin \u003cguillaume.thouvenin@ext.bull.net\u003e\nSigned-off-by: Laurent Vivier \u003claurent.vivier@bull.net\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "9ba075a664dff836fd6fb93f90fcc827f7683d91",
      "tree": "a5d939aa61833525a09fa2f346964c16a80f7957",
      "parents": [
        "81609e3e26508840a1b51414376f2541dd191483"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon May 26 20:06:35 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:26 2008 +0300"
      },
      "message": "KVM: MTRR support\n\nAdd emulation for the memory type range registers, needed by VMware esx 3.5,\nand by pci device assignment.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "81609e3e26508840a1b51414376f2541dd191483",
      "tree": "415e617271bc171ba5252b8d08e967bd6c088960",
      "parents": [
        "f08864b42a45581a64558aa5b6b673c77b97ee5d"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 27 16:26:01 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:26 2008 +0300"
      },
      "message": "KVM: Order segment register constants in the same way as cpu operand encoding\n\nThis can be used to simplify the x86 instruction decoder.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "f08864b42a45581a64558aa5b6b673c77b97ee5d",
      "tree": "d104bf34c951beffebb7c2402329f236a7bad7ad",
      "parents": [
        "3419ffc8e45a5344abc87684cbca6cdc5c9c8a01"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Thu May 15 18:23:25 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:26 2008 +0300"
      },
      "message": "KVM: VMX: Enable NMI with in-kernel irqchip\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3419ffc8e45a5344abc87684cbca6cdc5c9c8a01",
      "tree": "53d00e67ba8844800d1f73242ce42fad117f0eaf",
      "parents": [
        "50d40d7fb9b09e68a657c68837fcfa067b70cc42"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng.yang@intel.com",
        "time": "Thu May 15 09:52:48 2008 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:25 2008 +0300"
      },
      "message": "KVM: IOAPIC/LAPIC: Enable NMI support\n\n[avi: fix ia64 build breakage]\n\nSigned-off-by: Sheng Yang \u003csheng.yang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "7cc8883074b040aa8c1ebd3a17463b0ea3a9ef16",
      "tree": "79feae8f0093534317d75f1776bd9f115d62dd91",
      "parents": [
        "543e42436643d68ad007d0bae2f485caac9c8a02"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 13 16:29:20 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:42:25 2008 +0300"
      },
      "message": "KVM: Remove decache_vcpus_on_cpu() and related callbacks\n\nObsoleted by the vmx-specific per-cpu list.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "4ecac3fd6dc2629ad76a658a486f081c44aef10e",
      "tree": "a078acb4c626432ac8cf887b911d912f4a316d06",
      "parents": [
        "1b7fcd3263e5f12dba43d27b64e1578bec070c28"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Tue May 13 13:23:38 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:41:43 2008 +0300"
      },
      "message": "KVM: Handle virtualization instruction #UD faults during reboot\n\nKVM turns off hardware virtualization extensions during reboot, in order\nto disassociate the memory used by the virtualization extensions from the\nprocessor, and in order to have the system in a consistent state.\nUnfortunately virtual machines may still be running while this goes on,\nand once virtualization extensions are turned off, any virtulization\ninstruction will #UD on execution.\n\nFix by adding an exception handler to virtualization instructions; if we get\nan exception during reboot, we simply spin waiting for the reset to complete.\nIf it\u0027s a true exception, BUG() so we can have our stack trace.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "1b7fcd3263e5f12dba43d27b64e1578bec070c28",
      "tree": "7f8d9679404f0b46803c6b1cf926235d170606ee",
      "parents": [
        "7682f2d0dd3ff5bd2756eac018a5b4e7e30ef16c"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 15 13:51:35 2008 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:40:50 2008 +0300"
      },
      "message": "KVM: MMU: Fix false flooding when a pte points to page table\n\nThe KVM MMU tries to detect when a speculative pte update is not actually\nused by demand fault, by checking the accessed bit of the shadow pte.  If\nthe shadow pte has not been accessed, we deem that page table flooded and\nremove the shadow page table, allowing further pte updates to proceed\nwithout emulation.\n\nHowever, if the pte itself points at a page table and only used for write\noperations, the accessed bit will never be set since all access will happen\nthrough the emulator.\n\nThis is exactly what happens with kscand on old (2.4.x) HIGHMEM kernels.\nThe kernel points a kmap_atomic() pte at a page table, and then\nproceeds with read-modify-write operations to look at the dirty and accessed\nbits.  We get a false flood trigger on the kmap ptes, which results in the\nmmu spending all its time setting up and tearing down shadows.\n\nFix by setting the shadow accessed bit on emulated accesses.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "d2ebb4103ff349af6dac14955bf93e57487a6694",
      "tree": "5c205c2e36c4c4334855455336427d676e9535c0",
      "parents": [
        "af9ca2d703f4cefbf6441bfe127c4191092ad394"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Apr 30 17:56:04 2008 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Jul 20 12:40:48 2008 +0300"
      },
      "message": "KVM: SVM: add tracing support for TDP page faults\n\nTo distinguish between real page faults and nested page faults they should be\ntraced as different events. This is implemented by this patch.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "31656519e132f6612584815f128c83976a9aaaef",
      "tree": "595349fdcd65988d7a43d647594dcea8a8a4e80b",
      "parents": [
        "577b4a58d2e74a4d48050eeea3e3f952ce04eb86"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jul 18 18:01:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 10:37:28 2008 +0200"
      },
      "message": "sched, x86: clean up hrtick implementation\n\nrandom uvesafb failures were reported against Gentoo:\n\n  http://bugs.gentoo.org/show_bug.cgi?id\u003d222799\n\nand Mihai Moldovan bisected it back to:\n\n\u003e 8f4d37ec073c17e2d4aa8851df5837d798606d6f is first bad commit\n\u003e commit 8f4d37ec073c17e2d4aa8851df5837d798606d6f\n\u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\u003e Date:   Fri Jan 25 21:08:29 2008 +0100\n\u003e\n\u003e    sched: high-res preemption tick\n\nLinus suspected it to be hrtick + vm86 interaction and observed:\n\n\u003e Btw, Peter, Ingo: I think that commit is doing bad things. They aren\u0027t\n\u003e _incorrect_ per se, but they are definitely bad.\n\u003e\n\u003e Why?\n\u003e\n\u003e Using random _TIF_WORK_MASK flags is really impolite for doing\n\u003e \"scheduling\" work. There\u0027s a reason that arch/x86/kernel/entry_32.S\n\u003e special-cases the _TIF_NEED_RESCHED flag: we don\u0027t want to exit out of\n\u003e vm86 mode unnecessarily.\n\u003e\n\u003e See the \"work_notifysig_v86\" label, and how it does that\n\u003e \"save_v86_state()\" thing etc etc.\n\nRight, I never liked having to fiddle with those TIF flags. Initially I\nneeded it because the hrtimer base lock could not nest in the rq lock.\nThat however is fixed these days.\n\nCurrently the only reason left to fiddle with the TIF flags is remote\nwakeups. We cannot program a remote cpu\u0027s hrtimer. I\u0027ve been thinking\nabout using the new and improved IPI function call stuff to implement\nhrtimer_start_on().\n\nHowever that does require that smp_call_function_single(.wait\u003d0) works\nfrom interrupt context - /me looks at the latest series from Jens - Yes\nthat does seem to be supported, good.\n\nHere\u0027s a stab at cleaning this stuff up ...\n\nMihai reported test success as well.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mihai Moldovan \u003cionic@ionic.de\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Antonino Daplas \u003cadaplas@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "94a1e869c7b96a9d30e260084866383a145fd8ae",
      "tree": "9331e15facc9af794ad1c21aaa231d4e5460eb80",
      "parents": [
        "1bd9d6b64e1474f1a03f8660e8721d746cffae57"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Jul 18 18:11:31 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 10:21:11 2008 +0200"
      },
      "message": "NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var\n\n  * Slight optimization when getting one\u0027s own cpu_info percpu data.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c4dc59ae7af8c1c116d2cb4dffba337f032a6bee",
      "tree": "09c40158db101e722aebdc6592291574d8f34f6b",
      "parents": [
        "63b5d7af2556a7de6bf72c5dd0b85a32fb4c3767"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 09:31:24 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 09:31:24 2008 +0200"
      },
      "message": "x86, VisWS: turn into generic arch, eliminate leftover files\n\nremove unused leftovers.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "63b5d7af2556a7de6bf72c5dd0b85a32fb4c3767",
      "tree": "83465d3c04f62c241d08cc7663328374e9edea4d",
      "parents": [
        "64898a8bad8c94ad7a4bd5cc86b66edfbb081f4a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sat Jul 19 18:02:26 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 09:25:52 2008 +0200"
      },
      "message": "x86: add -\u003epre_time_init to x86_quirks\n\nso NUMAQ can use that to call numaq_pre_time_init()\n\nThis allows us to remove a NUMAQ special from arch/x86/kernel/setup.c.\n\n(and paves the way to remove the NUMAQ subarch)\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "64898a8bad8c94ad7a4bd5cc86b66edfbb081f4a"
}
