)]}'
{
  "log": [
    {
      "commit": "e6e5494cb23d1933735ee47cc674ffe1c4afed6f",
      "tree": "c8945bb3ae5bec38693d801fb589d22d48d6f8eb",
      "parents": [
        "d5fb34261dcd32c9cb3b28121fdc46308db513a1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:53:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] vdso: randomize the i386 vDSO by moving it into a vma\n\nMove the i386 VDSO down into a vma and thus randomize it.\n\nBesides the security implications, this feature also helps debuggers, which\ncan COW a vma-backed VDSO just like a normal DSO and can thus do\nsingle-stepping and other debugging features.\n\nIt\u0027s good for hypervisors (Xen, VMWare) too, which typically live in the same\nhigh-mapped address space as the VDSO, hence whenever the VDSO is used, they\nget lots of guest pagefaults and have to fix such guest accesses up - which\nslows things down instead of speeding things up (the primary purpose of the\nVDSO).\n\nThere\u0027s a new CONFIG_COMPAT_VDSO (default\u003dy) option, which provides support\nfor older glibcs that still rely on a prelinked high-mapped VDSO.  Newer\ndistributions (using glibc 2.3.3 or later) can turn this option off.  Turning\nit off is also recommended for security reasons: attackers cannot use the\npredictable high-mapped VDSO page as syscall trampoline anymore.\n\nThere is a new vdso\u003d[0|1] boot option as well, and a runtime\n/proc/sys/vm/vdso_enabled sysctl switch, that allows the VDSO to be turned\non/off.\n\n(This version of the VDSO-randomization patch also has working ELF\ncoredumping, the previous patch crashed in the coredumping code.)\n\nThis code is a combined work of the exec-shield VDSO randomization\ncode and Gerd Hoffmann\u0027s hypervisor-centric VDSO patch. Rusty Russell\nstarted this patch and i completed it.\n\n[akpm@osdl.org: cleanups]\n[akpm@osdl.org: compile fix]\n[akpm@osdl.org: compile fix 2]\n[akpm@osdl.org: compile fix 3]\n[akpm@osdl.org: revernt MAXMEM change]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c723e084606ca1c81e91b80b2c0c44bde7bbc4df",
      "tree": "c338f62586978093d7c6b85c3f783cb65879c1f1",
      "parents": [
        "4b89aff930d632be10d557d08d1b60dee7163dbe"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Tue Jun 27 02:53:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] i386: use C code for current_thread_info()\n\nUsing C code for current_thread_info() lets the compiler optimize it.\nWith gcc 4.0.2, kernel is smaller:\n\n    text           data     bss     dec     hex filename\n 3645212         555556  312024 4512792  44dc18 2.6.17-rc6-nb-post/vmlinux\n 3647276         555556  312024 4514856  44e428 2.6.17-rc6-nb/vmlinux\n -------\n   -2064\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b89aff930d632be10d557d08d1b60dee7163dbe",
      "tree": "f7d854a81b9c5b1b4e6df01cb78ce9ff34684309",
      "parents": [
        "7f35bf929ffe2b3967c8f398880fcb78fcd2ab5c"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohitseth@google.com",
        "time": "Tue Jun 27 02:53:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] i386: move phys_proc_id and cpu_core_id to cpuinfo_x86\n\nMove the phys_core_id and cpu_core_id to cpuinfo_x86 structure.  Similar\npatch for x86_64 is already accepted by Andi earlier this week.\n\n[akpm@osdl.org: fix warning]\nSigned-off-by: Rohit Seth \u003crohitseth@google.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0fc44159bfcb5b0afa178f9c3f50db23aebc76ff",
      "tree": "d87e47c0f5e6b2eff1d9113d3495d185924734d9",
      "parents": [
        "1f04bbd2d396a701c5af2e5b92bad896c2550c16"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] Register sysfs file for hotplugged new node\n\nWhen new node becomes enable by hot-add, new sysfs file must be created for\nnew node.  So, if new node is enabled by add_memory(), register_one_node() is\ncalled to create it.  In addition, I386\u0027s arch_register_node() and a part of\nregister_nodes() of powerpc are consolidated to register_one_node() as a\ngeneric_code().\n\nThis is tested by Tiger4(IPF) with node hot-plug emulation.\n\nSigned-off-by: Keiichiro Tokunaga \u003ctokuanga.keiich@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "da206c9e68cb93fcab43592d46276c02889c1250",
      "tree": "21264cc26fa0322d668b398808f10bd93558d25f",
      "parents": [
        "916d15445f4ad2a9018e5451760734f36083be77",
        "2e2d0dcc1bd7ca7c26ea5e29efb7f34bbd564f1c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 13:33:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 13:33:14 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  typo fixes\n  Clean up \u0027inline is not at beginning\u0027 warnings for usb storage\n  Storage class should be first\n  i386: Trivial typo fixes\n  ixj: make ixj_set_tone_off() static\n  spelling fixes\n  fix paniced-\u003epanicked typos\n  Spelling fixes for Documentation/atomic_ops.txt\n  move acknowledgment for Mark Adler to CREDITS\n  remove the bouncing email address of David Campbell\n"
    },
    {
      "commit": "81a07d7588d376c530d006e24d7981304ce96e16",
      "tree": "1608e094c88b9702c86cf2e6f65339aab9ea3f3f",
      "parents": [
        "8871e73fdbde07d0a41393f7ee30787b65387b36",
        "8501a2fbe762b21d2504ed3aca3b52be61b5e6e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:51:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:51:09 2006 -0700"
      },
      "message": "Merge branch \u0027x86-64\u0027\n\n* x86-64: (83 commits)\n  [PATCH] x86_64: x86_64 stack usage debugging\n  [PATCH] x86_64: (resend) x86_64 stack overflow debugging\n  [PATCH] x86_64: msi_apic.c build fix\n  [PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs\n  [PATCH] x86_64: Avoid broadcasting NMI IPIs\n  [PATCH] x86_64: fix apic error on bootup\n  [PATCH] x86_64: enlarge window for stack growth\n  [PATCH] x86_64: Minor string functions optimizations\n  [PATCH] x86_64: Move export symbols to their C functions\n  [PATCH] x86_64: Standardize i386/x86_64 handling of NMI_VECTOR\n  [PATCH] x86_64: Fix modular pc speaker\n  [PATCH] x86_64: remove sys32_ni_syscall()\n  [PATCH] x86_64: Do not use -ffunction-sections for modules\n  [PATCH] x86_64: Add cpu_relax to apic_wait_icr_idle\n  [PATCH] x86_64: adjust kstack_depth_to_print default\n  [PATCH] i386/x86-64: adjust /proc/interrupts column headings\n  [PATCH] x86_64: Fix race in cpu_local_* on preemptible kernels\n  [PATCH] x86_64: Fix fast check in safe_smp_processor_id\n  [PATCH] x86_64: x86_64 setup.c - printing cmp related boottime information\n  [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status\n  ...\n\nManual resolve of trivial conflict in arch/i386/kernel/Makefile\n"
    },
    {
      "commit": "0080e667550db5ae8c9318181500c413b99ff164",
      "tree": "3d6d162f0017aaa7c6049e785bbcdfc18dbc23ae",
      "parents": [
        "e77deacb7b078156fcadf27b838a4ce1a65eda04"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Jun 26 13:59:59 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:22 2006 -0700"
      },
      "message": "[PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs\n\nIntel now has support for Architectural Performance Monitoring Counters\n( Refer to IA-32 Intel Architecture Software Developer\u0027s Manual\nhttp://www.intel.com/design/pentium4/manuals/253669.htm ). This\nfeature is present starting from Intel Core Duo and Intel Core Solo processors.\n\nWhat this means is, the performance monitoring counters and some performance\nmonitoring events are now defined in an architectural way (using cpuid).\nAnd there will be no need to check for family/model etc for these architectural\nevents.\n\nBelow is the patch to use this performance counters in nmi watchdog driver.\nPatch handles both i386 and x86-64 kernels.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e77deacb7b078156fcadf27b838a4ce1a65eda04",
      "tree": "e594ce9a9f65c45e19cfb3b8417c614dd2eb5386",
      "parents": [
        "704fc59e1d056de80beaf30174bc8e0b1682efbb"
      ],
      "author": {
        "name": "Keith Owens",
        "email": "kaos@sgi.com",
        "time": "Mon Jun 26 13:59:56 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:22 2006 -0700"
      },
      "message": "[PATCH] x86_64: Avoid broadcasting NMI IPIs\n\nOn some i386/x86_64 systems, sending an NMI IPI as a broadcast will\nreset the system.  This seems to be a BIOS bug which affects machines\nwhere one or more cpus are not under OS control.  It occurs on HT\nsystems with a version of the OS that is not compiled without HT\nsupport.  It also occurs when a system is booted with max_cpus\u003dn where\n2 \u003c\u003d n \u003c cpus known to the BIOS.  The fix is to always send NMI IPI as\na mask instead of as a broadcast.\n\nSigned-off-by: Keith Owens \u003ckaos@sgi.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45486f81c9aa07218b73a38cbcf62ffa66e99088",
      "tree": "8fc03b93b941c6ba3131bb016fe126f2f95e3c86",
      "parents": [
        "9c63f8738734eb7e6d3f76ca03186f16ef88edf5"
      ],
      "author": {
        "name": "Keith Owens",
        "email": "kaos@sgi.com",
        "time": "Mon Jun 26 13:59:41 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:22 2006 -0700"
      },
      "message": "[PATCH] x86_64: Standardize i386/x86_64 handling of NMI_VECTOR\n\nx86_64 and i386 behave inconsistently when sending an IPI on vector 2\n(NMI_VECTOR).  Make both behave the same, so IPI 2 is sent as NMI.\n\nThe crash code was abusing send_IPI_allbutself() by passing a code\ninstead of a vector, it only worked because crash knew about the\ninternal code of send_IPI_allbutself().  Change crash to use NMI_VECTOR\ninstead, and remove the comment about how crash was abusing the function.\n\nThis patch is a pre-requisite for fixing the problem where sending an\nIPI as NMI would reboot some Dell Xeon systems.  I cannot fix that\nproblem while crash continus to abuse send_IPI_allbutself().\n\nIt also removes the inconsistency between i386 and x86_64 for\nNMI_VECTOR.  That will simplify all the RAS code that needs to bring\nall the cpus to a clean stop, even when one or more cpus are spinning\ndisabled.\n\nSigned-off-by: Keith Owens \u003ckaos@sgi.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "da5311258d2afb96fc592c8b11e818facfa46dc3",
      "tree": "cdd51f187028cb2cd3da716cb7c1b3df88902ed6",
      "parents": [
        "75bd665cc9f4d0f67164d9145e446ae554d4ed3f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Jun 26 13:59:20 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:21 2006 -0700"
      },
      "message": "[PATCH] x86_64: Fix race in cpu_local_* on preemptible kernels\n\nWhen a process changes CPUs while doing the non atomic cpu_local_*\noperations it might operate on the local_t of a different CPUs.\n\nFix that by disabling preemption.\n\nPointed out by Christopher Lameter\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "495ab9c045e1b0e5c82951b762257fe1c9d81564",
      "tree": "f95c376015d340794f64f36fd52f8fa80a1daab7",
      "parents": [
        "d9005b52de7bc9b20afa93e06d3e15843bafc12f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Jun 26 13:59:11 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:21 2006 -0700"
      },
      "message": "[PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status\n\nDuring some profiling I noticed that default_idle causes a lot of\nmemory traffic. I think that is caused by the atomic operations\nto clear/set the polling flag in thread_info. There is actually\nno reason to make this atomic - only the idle thread does it\nto itself, other CPUs only read it. So I moved it into ti-\u003estatus.\n\nConverted i386/x86-64/ia64 for now because that was the easiest\nway to fix ACPI which also manipulates these flags in its idle\nfunction.\n\nCc: Nick Piggin \u003cnpiggin@novell.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c33bd9aac0597eeedaaa01ea5aafe456894b2f2b",
      "tree": "cdac9bb99eb3943feccc2a21d09a1524a8867cb0",
      "parents": [
        "fe7cacc1c25e286872b878c5d46880b620cd1e2d"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon Jun 26 13:57:47 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:18 2006 -0700"
      },
      "message": "[PATCH] i386/x86-64: fall back to old-style call trace if no unwinding\n\nIf no unwinding is possible at all for a certain exception instance,\nfall back to the old style call trace instead of not showing any trace\nat all.\n\nAlso, allow setting the stack trace mode at the command line.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fe7cacc1c25e286872b878c5d46880b620cd1e2d",
      "tree": "36b0e47e15eb00c7ee4240cb28572952f4d39348",
      "parents": [
        "176a2718f408ce92788b29127050b04dfd6e4f68"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon Jun 26 13:57:44 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:17 2006 -0700"
      },
      "message": "[PATCH] i386: reliable stack trace support i386 entry.S\n\nTo increase the usefulness of reliable stack unwinding, this adds CFI\nunwind annotations to many low-level i386 routines.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "176a2718f408ce92788b29127050b04dfd6e4f68",
      "tree": "bb637b13098f821551d07d3a13d140a908e7bc04",
      "parents": [
        "dffead4e421e289c8434351400d24fd35723e874"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon Jun 26 13:57:41 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:17 2006 -0700"
      },
      "message": "[PATCH] i386: reliable stack trace support (i386)\n\nThese are the i386-specific pieces to enable reliable stack traces. This is\ngoing to be even more useful once CFI annotations get added to he assembly\ncode, namely to entry.S.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e4ff115740c28dea463561aa1405a3c0de0d2d0",
      "tree": "517e293240ae7f2ccb6b4545a6d9a22660e46f02",
      "parents": [
        "14118c3cdd46d72e503ee2f727b11d881f72f755"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Mon Jun 26 13:57:01 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:16 2006 -0700"
      },
      "message": "[PATCH] x86_64: nmi watchdog header cleanup\n\nMisc header cleanup for nmi watchdog.\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a32073bffc656ca4bde6002b6cf7c1a8e0e22712",
      "tree": "5ddcd3107eca8807685a19490c2c849d728a51a6",
      "parents": [
        "7c2d9cd218916276e52a5dae827b84a159fe5c96"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Jun 26 13:56:40 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:15 2006 -0700"
      },
      "message": "[PATCH] x86_64: Clean and enhance up K8 northbridge access code\n\n - Factor out the duplicated access/cache code into a single file\n   * Shared between i386/x86-64.\n - Share flush code between AGP and IOMMU\n   * Fix a bug: AGP didn\u0027t wait for end of flush before\n - Drop 8 northbridges limit and allocate dynamically\n - Add lock to serialize AGP and IOMMU GART flushes\n - Add PCI ID for next AMD northbridge\n - Random related cleanups\n\nThe old K8 NUMA discovery code is unchanged. New systems\nshould all use SRAT for this.\n\nCc: \"Navin Boppuri\" \u003cnavin.boppuri@newisys.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d167a51877e94dda73dd656c51f363502309f713",
      "tree": "eb02c2974b61777f575dfdc07d4c2adf83bde434",
      "parents": [
        "240cd6a80642da528bfa382ec2ae4e3cb8991ea7"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@suse.de",
        "time": "Mon Jun 26 13:56:16 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:14 2006 -0700"
      },
      "message": "[PATCH] x86_64: x86_64 version of the smp alternative patch.\n\nChanges are largely identical to the i386 version:\n\n * alternative #define are moved to the new alternative.h file.\n * one new elf section with pointers to the lock prefixes which can be\n   nop\u0027ed out for non-smp.\n * two new elf sections simliar to the \"classic\" alternatives to\n   replace SMP code with simpler UP code.\n * fixup headers to use alternative.h instead of defining their own\n   LOCK / LOCK_PREFIX macros.\n\nThe patch reuses the i386 version of the alternatives code to avoid code\nduplication.  The code in alternatives.c was shuffled around a bit to\nreduce the number of #ifdefs needed.  It also got some tweaks needed for\nx86_64 (vsyscall page handling) and new features (noreplacement option\nwhich was x86_64 only up to now).  Debug printk\u0027s are changed from\ncompile-time to runtime.\n\nLoosely based on a early version from Bastian Blank \u003cwaldi@debian.org\u003e\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "240cd6a80642da528bfa382ec2ae4e3cb8991ea7",
      "tree": "6c24052ea167a2fd7e0be93c167e9e7da5bddd2b",
      "parents": [
        "faee9a5dc9d8399cc3b1b8e18b6d7ff7b17f1af1"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Jun 26 13:56:13 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:14 2006 -0700"
      },
      "message": "[PATCH] i386/x86-64: Emulate CPUID4 on AMD\n\nIntel systems report the cache level data from CPUID 4 in sysfs.\nAdd a CPUID 4 emulation for AMD CPUs to report the same\ninformation for them. This allows programs to read this\ninformation in a uniform way.\n\nThe AMD way to report this is less flexible so some assumptions\nare hardcoded (e.g. no L3)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6f47f978bcd5413fff610613b18e9e0eab9bc1b",
      "tree": "bf9e698cb76a0e958a8c9157fba74fb6d8255298",
      "parents": [
        "3d5631e0631a11633c649bc995a6537ec21b67b4"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jun 26 00:25:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] Notify page fault call chain\n\nWith this patch Kprobes now registers for page fault notifications only when\ntheir is an active probe registered.  Once all the active probes are\nunregistered their is no need to be notified of page faults and kprobes\nunregisters itself from the page fault notifications.  Hence we will have ZERO\nside effects when no probes are active.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b71b5b652852db1b499d22aaabed8f5043acafad",
      "tree": "82f5e0c8090515fc8886f26540a3b00ae603ae77",
      "parents": [
        "1bd858a507937cef6e8ca5efc6820a5744e73683"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jun 26 00:25:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] Notify page fault call chain for i386\n\nOverloading of page fault notification with the notify_die() has performance\nissues(since the only interested components for page fault is kprobes and/or\nkdb) and hence this patch introduces the new notifier call chain exclusively\nfor page fault notifications their by avoiding notifying unnecessary\ncomponents in the do_page_fault() code path.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6f84fa2f3edc8902cfed02cd510c7c58334bb9bd",
      "tree": "afc4229a3ff0aa7e9956759334b7ad1f1b4827d9",
      "parents": [
        "539eb11e6e904f2cd4f62908cc5e44d724879721"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:21 2006 -0700"
      },
      "message": "[PATCH] Time: i386 Conversion - part 3: Enable Generic Timekeeping\n\nThis converts the i386 arch to use the generic timeofday subsystem.  It\nenabled the GENERIC_TIME option, disables the timer_opts code and other arch\nspecific timekeeping code and reworks the delay code.\n\nWhile this patch enables the generic timekeeping, please note that this patch\ndoes not provide any i386 clocksource.  Thus only the jiffies clocksource will\nbe available.  To get full replacements for the code being disabled here, the\ntimeofday-clocks-i386 patch will needed.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "539eb11e6e904f2cd4f62908cc5e44d724879721",
      "tree": "df18c747c5226b138862fb19fad5b1527055b9c9",
      "parents": [
        "8d016ef1380a2a9a5ca5742ede04334199868f82"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:21 2006 -0700"
      },
      "message": "[PATCH] Time: i386 Conversion - part 2: Rework TSC Support\n\nAs part of the i386 conversion to the generic timekeeping infrastructure, this\nintroduces a new tsc.c file.  The code in this file replaces the TSC\ninitialization, management and access code currently in timer_tsc.c (which\nwill be removed) that we want to preserve.\n\nThe code also introduces the following functionality:\n\no tsc_khz: like cpu_khz but stores the TSC frequency on systems that do not\n  change TSC frequency w/ CPU frequency\n\no check/mark_tsc_unstable: accessor/modifier flag for TSC timekeeping\n  usability\n\no minor cleanups to calibration math.\n\nThis patch also includes a one line __cpuinitdata fix from Zwane Mwaikambo.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6e05edc59ecd79e8badf440c0d295a979bdfa3e",
      "tree": "50362161f69317242ab603c51a18a818a4c93285",
      "parents": [
        "f18190bd3407554ba6df30a1927e07e6cba93e56"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@lisas.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "message": "spelling fixes\n\nacquired (aquired)\ncontiguous (contigious)\nsuccessful (succesful, succesfull)\nsurprise (suprise)\nwhether (weather)\nsome other misspellings\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "7c12d81134b130ccd4c286b434ca48c4cda71a2f",
      "tree": "32f1451ef52d568d57c75da28313069dc675a206",
      "parents": [
        "01408c4939479ec46c15aa7ef6e2406be50eeeca"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jun 25 05:48:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:09 2006 -0700"
      },
      "message": "[PATCH] Make copy_from_user_inatomic NOT zero the tail on i386\n\nAs described in a previous patch and documented in mm/filemap.h,\ncopy_from_user_inatomic* shouldn\u0027t zero out the tail of the buffer after an\nincomplete copy.\n\nThis patch implements that change for i386.\n\nFor the _nocache version, a new __copy_user_intel_nocache is defined similar\nto copy_user_zeroio_intel_nocache, and this is ultimately used for the copy.\n\nFor the regular version, __copy_from_user_ll_nozero is defined which uses\n__copy_user and __copy_user_intel - the later needs casts to reposition the\n__user annotations.\n\nIf copy_from_user_atomic is given a constant length of 1, 2, or 4, then we do\nstill zero the destintion on failure.  This didn\u0027t seem worth the effort of\nfixing as the places where it is used really don\u0027t care.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01408c4939479ec46c15aa7ef6e2406be50eeeca",
      "tree": "106ee144cc7214cc5cb78bc35a49fc654ef16fe9",
      "parents": [
        "5f507d9e05b4dbfee34f3d967623ad3fbf0f28b3"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Jun 25 05:47:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:09 2006 -0700"
      },
      "message": "[PATCH] Prepare for __copy_from_user_inatomic to not zero missed bytes\n\nThe problem is that when we write to a file, the copy from userspace to\npagecache is first done with preemption disabled, so if the source address is\nnot immediately available the copy fails *and* *zeros* *the* *destination*.\n\nThis is a problem because a concurrent read (which admittedly is an odd thing\nto do) might see zeros rather that was there before the write, or what was\nthere after, or some mixture of the two (any of these being a reasonable thing\nto see).\n\nIf the copy did fail, it will immediately be retried with preemption\nre-enabled so any transient problem with accessing the source won\u0027t cause an\nerror.\n\nThe first copying does not need to zero any uncopied bytes, and doing so\ncauses the problem.  It uses copy_from_user_atomic rather than copy_from_user\nso the simple expedient is to change copy_from_user_atomic to *not* zero out\nbytes on failure.\n\nThe first of these two patches prepares for the change by fixing two places\nwhich assume copy_from_user_atomic does zero the tail.  The two usages are\nvery similar pieces of code which copy from a userspace iovec into one or more\npage-cache pages.  These are changed to remove the assumption.\n\nThe second patch changes __copy_from_user_inatomic* to not zero the tail.\nOnce these are accepted, I will look at similar patches of other architectures\nwhere this is important (ppc, mips and sparc being the ones I can find).\n\nThis patch:\n\nThere is a problem with __copy_from_user_inatomic zeroing the tail of the\nbuffer in the case of an error.  As it is called in atomic context, the error\nmay be transient, so it results in zeros being written where maybe they\nshouldn\u0027t be.\n\nIn the usage in filemap, this opens a window for a well timed read to see data\n(zeros) which is not consistent with any ordering of reads and writes.\n\nMost cases where __copy_from_user_inatomic is called, a failure results in\n__copy_from_user being called immediately.  As long as the latter zeros the\ntail, the former doesn\u0027t need to.  However in *copy_from_user_iovec\nimplementations (in both filemap and ntfs/file), it is assumed that\ncopy_from_user_inatomic will zero the tail.\n\nThis patch removes that assumption, so that after this patch it will\nbe safe for copy_from_user_inatomic to not zero the tail.\n\nThis patch also adds some commentary to filemap.h and asm-i386/uaccess.h.\n\nAfter this patch, all architectures that might disable preempt when\nkmap_atomic is called need to have their __copy_from_user_inatomic* \"fixed\".\nThis includes\n - powerpc\n - i386\n - mips\n - sparc\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "afedfd016a78ea1b678886ab6236acbc7650fcfb",
      "tree": "e507606f1f636d5557ca91305b2891070d75b3f1",
      "parents": [
        "51849738cf3af4d2c43a657e811a89e7f69eccc2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jun 25 05:47:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:00 2006 -0700"
      },
      "message": "[PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver\n\nThe floppy driver is already calling add_disk_randomness as it should, so this\nwas redundant.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e75eac33b5c7f797e4b2ddcb39183cf268e26822",
      "tree": "3c87328055c5975ca9d69df56dcc4a1d9066352c",
      "parents": [
        "e6a1530d692d6a60cdf15dfbcfea07f5324d7b9f"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Sun Jun 25 05:46:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:00:55 2006 -0700"
      },
      "message": "[PATCH] Clean up and refactor i386 sub-architecture setup\n\nClean up and refactor i386 sub-architecture setup.\n\nThis change moves all the code from the\nasm-i386/mach-*/setup_arch_pre/post.h headers, into\narch/i386/mach-*/setup.c.  mach-*/setup_arch_pre.h is renamed to\nsetup_arch.h, and contains only things which should be in header files.  It\nis purely code-motion; there should be no functional changes at all.\n\nSeveral functions in arch/i386/kernel/setup.c needed to be made non-static\nso that they\u0027re visible to the code in mach-*/setup.c.  asm-i386/setup.h is\nused to hold the prototypes for these functions.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Christian Limpach \u003cChristian.Limpach@cl.cam.ac.uk\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Andrey Panin \u003cpazke@donpac.ru\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "37224470c8c6d90a4062e76a08d4dc1fcf91fc89",
      "tree": "627f537177bf8e951c12bec04c4a85f0125f5ece",
      "parents": [
        "e83319510b04dd51a60da8a0b4ccf8b92b3ab1ad",
        "ae6c859b7dcd708efadf1c76279c33db213e3506"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:52:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:52:36 2006 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (65 commits)\n  ACPI: suppress power button event on S3 resume\n  ACPI: resolve merge conflict between sem2mutex and processor_perflib.c\n  ACPI: use for_each_possible_cpu() instead of for_each_cpu()\n  ACPI: delete newly added debugging macros in processor_perflib.c\n  ACPI: UP build fix for bugzilla-5737\n  Enable P-state software coordination via _PDC\n  P-state software coordination for speedstep-centrino\n  P-state software coordination for acpi-cpufreq\n  P-state software coordination for ACPI core\n  ACPI: create acpi_thermal_resume()\n  ACPI: create acpi_fan_suspend()/acpi_fan_resume()\n  ACPI: pass pm_message_t from acpi_device_suspend() to root_suspend()\n  ACPI: create acpi_device_suspend()/acpi_device_resume()\n  ACPI: replace spin_lock_irq with mutex for ec poll mode\n  ACPI: Allow a WAN module enable/disable on a Thinkpad X60.\n  sem2mutex: acpi, acpi_link_lock\n  ACPI: delete unused acpi_bus_drivers_lock\n  sem2mutex: drivers/acpi/processor_perflib.c\n  ACPI add ia64 exports to build acpi_memhotplug as a module\n  ACPI: asus_acpi_init(): propagate correct return value\n  ...\n\nManual resolve of conflicts in:\n\n\tarch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c\n\tarch/i386/kernel/cpu/cpufreq/speedstep-centrino.c\n\tinclude/acpi/processor.h\n"
    },
    {
      "commit": "30343d6c3d4e3fe961369e7be19935683e808c88",
      "tree": "61efa604ac9f9d27b950dd16790a583e9e3b1fb4",
      "parents": [
        "224f611c1639cb6c134a934dae7f7b9f0ac3b540"
      ],
      "author": {
        "name": "Kirill Smelkov",
        "email": "kirr@mns.spb.ru",
        "time": "Fri Jun 23 02:04:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:59 2006 -0700"
      },
      "message": "[PATCH] x86: compile fix for asm-i386/alternatives.h\n\ncompile fix:  \u003casm-i386/alternative.h\u003e  needs  \u003casm/types.h\u003e for \u0027u8\u0027 --\njust look at struct alt_instr.\n\nMy module includes \u003casm/bitops.h\u003e as the first header, and as of 2.6.17 this\nleads to compilation errors.\n\nSigned-off-by: Kirill Smelkov \u003ckirr@mns.spb.ru\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "224f611c1639cb6c134a934dae7f7b9f0ac3b540",
      "tree": "c5fb2f73e606dc172528f15947cef1d9c0df9e13",
      "parents": [
        "7e04a1183eac3e6b3570a154c8677fd9184b51e7"
      ],
      "author": {
        "name": "Michal Ludvig",
        "email": "michal@logix.cz",
        "time": "Fri Jun 23 02:04:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:59 2006 -0700"
      },
      "message": "[PATCH] x86: VIA C7 CPU flags\n\nNew CPU flags for next generation of crypto engine as found in VIA C7\nprocessors.\n\nSigned-off-by: Michal Ludvig \u003cmichal@logix.cz\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "722f4f5b2600b8930b63a096e48b878cd6e0e15a",
      "tree": "434c3af4a09ae3c0aa5a29f7bc25f1477ea67832",
      "parents": [
        "6444541671bd821b950dbaafee70d65188198aa6"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Fri Jun 23 02:04:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:58 2006 -0700"
      },
      "message": "[PATCH] x86: fix __range_ok constraint\n\nAn immediate operand can\u0027t be the destination of the cmpl instruction,\nso exclude it.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a03a3e287b119c7bcbcff1d68f81864ce33b1ad2",
      "tree": "9a95f05e533835a57b56645190b60cdd16f134e2",
      "parents": [
        "b88d4f1d390a6a232938d27d551f24cf08a2c7e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jun 23 02:04:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] Don\u0027t trigger full rebuild via CONFIG_X86_MCE\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27b07da7332f03a935cd13b6a6beb780bf19e7a4",
      "tree": "a00fe04fbf8bb90fc3facb8b6b499f0f9dca3d77",
      "parents": [
        "87af2ffd4ccd0e6a2ff316fd008a9bedb4a4cb66"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jun 23 02:04:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] Don\u0027t trigger full rebuild via CONFIG_MTRR\n\nOnly drm, framebuffer, mtrr parts + misc files here and there.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0b4da91f4c5710b9c20219a19e905145647b48b",
      "tree": "bd2a6e10d0194601548beaa0a2810fc994ca1d0f",
      "parents": [
        "c22ce143d15eb288543fe9873e1c5ac1c01b69a1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 23 02:04:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] arch/i386/kernel/apic.c: make modern_apic() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c22ce143d15eb288543fe9873e1c5ac1c01b69a1",
      "tree": "dc7d457b8952fc50dfc90df659b35de4117c61fc",
      "parents": [
        "7dbdf43cfa635ddc3701cc8d1eab07597cd731c0"
      ],
      "author": {
        "name": "Hiro Yoshioka",
        "email": "hyoshiok@miraclelinux.com",
        "time": "Fri Jun 23 02:04:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:56 2006 -0700"
      },
      "message": "[PATCH] x86: cache pollution aware __copy_from_user_ll()\n\nUse the x86 cache-bypassing copy instructions for copy_from_user().\n\nSome performance data are\n\nTotal of GLOBAL_POWER_EVENTS (CPU cycle samples)\n\n2.6.12.4.orig    1921587\n2.6.12.4.nt      1599424\n1599424/1921587\u003d83.23% (16.77% reduction)\n\nBSQ_CACHE_REFERENCE (L3 cache miss)\n2.6.12.4.orig      57427\n2.6.12.4.nt        20858\n20858/57427\u003d36.32% (63.7% reduction)\n\nL3 cache miss reduction of __copy_from_user_ll\nsamples  %\n37408    65.1412  vmlinux                  __copy_from_user_ll\n23        0.1103  vmlinux                  __copy_user_zeroing_intel_nocache\n23/37408\u003d0.061% (99.94% reduction)\n\nTop 5 of 2.6.12.4.nt\nCounted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 100000\nsamples  %        app name                 symbol name\n128392    8.0274  vmlinux                  __copy_user_zeroing_intel_nocache\n64206     4.0143  vmlinux                  journal_add_journal_head\n59746     3.7355  vmlinux                  do_get_write_access\n47674     2.9807  vmlinux                  journal_put_journal_head\n46021     2.8774  vmlinux                  journal_dirty_metadata\npattern9-0-cpu4-0-09011728/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x3f (multiple flags) count 3000\nsamples  %        app name                 symbol name\n69755     4.2861  vmlinux                  __copy_user_zeroing_intel_nocache\n55685     3.4215  vmlinux                  journal_add_journal_head\n52371     3.2179  vmlinux                  __find_get_block\n45504     2.7960  vmlinux                  journal_put_journal_head\n36005     2.2123  vmlinux                  journal_stop\npattern9-0-cpu4-0-09011744/summary.out\n\nCounted BSQ_CACHE_REFERENCE events (cache references seen by the bus unit) with a unit mask of 0x200 (read 3rd level cache miss) count 3000\nsamples  %        app name                 symbol name\n1147      5.4994  vmlinux                  journal_add_journal_head\n881       4.2240  vmlinux                  journal_dirty_data\n872       4.1809  vmlinux                  blk_rq_map_sg\n734       3.5192  vmlinux                  journal_commit_transaction\n617       2.9582  vmlinux                  radix_tree_delete\npattern9-0-cpu4-0-09011731/summary.out\n\niozone results are\n\noriginal 2.6.12.4 CPU time \u003d 207.768 sec\ncache aware       CPU time \u003d 184.783 sec\n(three times run)\n184.783/207.768\u003d88.94% (11.06% reduction)\n\noriginal:\npattern9-0-cpu4-0-08191720/iozone.out:  CPU Utilization: Wall time   45.997    CPU time   64.527    CPU utilization 140.28 %\npattern9-0-cpu4-0-08191741/iozone.out:  CPU Utilization: Wall time   46.878    CPU time   71.933    CPU utilization 153.45 %\npattern9-0-cpu4-0-08191743/iozone.out:  CPU Utilization: Wall time   45.152    CPU time   71.308    CPU utilization 157.93 %\n\ncache awre:\npattern9-0-cpu4-0-09011728/iozone.out:  CPU Utilization: Wall time   44.842    CPU time   62.465    CPU utilization 139.30 %\npattern9-0-cpu4-0-09011731/iozone.out:  CPU Utilization: Wall time   44.718    CPU time   59.273    CPU utilization 132.55 %\npattern9-0-cpu4-0-09011744/iozone.out:  CPU Utilization: Wall time   44.367    CPU time   63.045    CPU utilization 142.10 %\n\nSigned-off-by: Hiro Yoshioka \u003chyoshiok@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b2db9fb7adc4d67d9ce7d16ce79c41ee84730fe",
      "tree": "d3fc0962ada099d741717d36a3f658c15b20c65a",
      "parents": [
        "b63d64a324056cf3c2f7a1a1fe8134100edbb058"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] sys_move_pages: 32bit support (i386, x86_64)\n\nsys_move_pages() support for 32bit (i386 plus x86_64 compat layer)\n\nAdd support for move_pages() on i386 and also add the compat functions\nnecessary to run 32 bit binaries on x86_64.\n\nAdd compat_sys_move_pages to the x86_64 32bit binary layer.  Note that it is\nnot up to date so I added the missing pieces.  Not sure if this is done the\nright way.\n\n[akpm@osdl.org: compile fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c763eb9ead86c612492b59287b36c0dcf7d09b1",
      "tree": "46497ff44bcf909517bffac70f0d6c7ad45ae1f0",
      "parents": [
        "dcc1a66a09420ccc5a22671bddc5a842f92d67e5",
        "cf34a8e07f02c76f3f1232eecb681301a3d7b10b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:07:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:07:59 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (27 commits)\n  [PATCH] PCI: nVidia quirk to make AER PCI-E extended capability visible\n  [PATCH] PCI: fix issues with extended conf space when MMCONFIG disabled because of e820\n  [PATCH] PCI: Bus Parity Status sysfs interface\n  [PATCH] PCI: fix memory leak in MMCONFIG error path\n  [PATCH] PCI: fix error with pci_get_device() call in the mpc85xx driver\n  [PATCH] PCI: MSI-K8T-Neo2-Fir: run only where needed\n  [PATCH] PCI: fix race with pci_walk_bus and pci_destroy_dev\n  [PATCH] PCI: clean up pci documentation to be more specific\n  [PATCH] PCI: remove unneeded msi code\n  [PATCH] PCI: don\u0027t move ioapics below PCI bridge\n  [PATCH] PCI: cleanup unused variable about msi driver\n  [PATCH] PCI: disable msi mode in pci_disable_device\n  [PATCH] PCI: Allow MSI to work on kexec kernel\n  [PATCH] PCI: AMD 8131 MSI quirk called too late, bus_flags not inherited ?\n  [PATCH] PCI: Move various PCI IDs to header file\n  [PATCH] PCI Bus Parity Status-broken hardware attribute, EDAC foundation\n  [PATCH] PCI: i386/x86_84: disable PCI resource decode on device disable\n  [PATCH] PCI ACPI: Rename the functions to avoid multiple instances.\n  [PATCH] PCI: don\u0027t enable device if already enabled\n  [PATCH] PCI: Add a \"enable\" sysfs attribute to the pci devices to allow userspace (Xorg) to enable devices without doing foul direct access\n  ...\n"
    },
    {
      "commit": "4f1bcaf094ccc512c23e10104c05a6f8e5b7a9e4",
      "tree": "883c6ece20a28f86eb73cd329bb9d4674b1e5480",
      "parents": [
        "d702ccb342e49f7591df5a87c3857c698183b0fa"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Thu Jun 22 14:47:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 22 15:05:58 2006 -0700"
      },
      "message": "[PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use\n\nVGA_MAP_MEM translates to ioremap() on some architectures.  It makes sense\nto do this to vga_vram_base, because we\u0027re going to access memory between\nvga_vram_base and vga_vram_end.\n\nBut it doesn\u0027t really make sense to map starting at vga_vram_end, because\nwe aren\u0027t going to access memory starting there.  On ia64, which always has\nto be different, ioremapping vga_vram_end gives you something completely\nincompatible with ioremapped vga_vram_start, so vga_vram_size ends up being\nnonsense.\n\nAs a bonus, we often know the size up front, so we can use ioremap()\ncorrectly, rather than giving it a zero size.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b209a6ee49099b7500abf024f7b6b9648b5a3eac",
      "tree": "6e6c614ae010aa92e9ded5e55c3a913f3c6c9dd3",
      "parents": [
        "99dc804d9bcc2c53f4c20c291bf4e185312a1a0c"
      ],
      "author": {
        "name": "bibo,mao",
        "email": "bibo.mao@intel.com",
        "time": "Wed May 31 18:17:33 2006 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 12:00:00 2006 -0700"
      },
      "message": "[PATCH] PCI: cleanup unused variable about msi driver\n\nIn IA64 platform, msi driver does not use irq_vector variable, and in\nx86 platform LAST_DEVICE_VECTOR should one before FIRST_SYSTEM_VECTOR,\nthis patch modify this.\n\nSigned-off-by: bibo, mao \u003cbibo.mao@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "fd58e55fcf5568e51da2ed54d7acd049c3fdb184",
      "tree": "2cf41864d66b8db39f637549d4652c7664256155",
      "parents": [
        "c34b4c734482dda750deb6089521f7c891b48736"
      ],
      "author": {
        "name": "Mark Maule",
        "email": "maule@sgi.com",
        "time": "Mon Apr 10 21:17:48 2006 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jun 21 11:59:58 2006 -0700"
      },
      "message": "[PATCH] PCI: msi abstractions and support for altix\n\nAbstract portions of the MSI core for platforms that do not use standard\nAPIC interrupt controllers.  This is implemented through a new arch-specific\nmsi setup routine, and a set of msi ops which can be set on a per platform\nbasis.\n\nSigned-off-by: Mark Maule \u003cmaule@sgi.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "63518472c05a351d779f35803e6ccfb361ae630a",
      "tree": "d3668e960f945a7a1204cfb839bc8aaabcdf2341",
      "parents": [
        "e44e20ff1273cf96c7f195297208f654c49295cf",
        "e6f1f3c54974a30c65ea0b699809d12f0aa04272"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jun 15 15:37:09 2006 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jun 15 15:37:09 2006 -0400"
      },
      "message": "Pull trivial1 into release branch\n"
    },
    {
      "commit": "66643de455c27973ac31ad6de9f859d399916842",
      "tree": "7ebed7f051879007d4b11d6aaa9e65a1bcb0b08f",
      "parents": [
        "2c23d62abb820e19c54012520f08a198c2233a85",
        "387e2b0439026aa738a9edca15a57e5c0bcb4dfc"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 24 09:22:21 2006 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-powerpc/unistd.h\n\tinclude/asm-sparc/unistd.h\n\tinclude/asm-sparc64/unistd.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "e0c1e9bf81badc7ba59e120d6218101903d5d103",
      "tree": "78f53a42795c935ff7a212d479c3fc00f0357ea3",
      "parents": [
        "abfd3057187812352cd8502c29ca50cd010b3ccc"
      ],
      "author": {
        "name": "Kimball Murray",
        "email": "kimball.murray@gmail.com",
        "time": "Mon May 08 15:17:16 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 08 09:34:56 2006 -0700"
      },
      "message": "[PATCH] x86_64: avoid IRQ0 ioapic pin collision\n\nThe patch addresses a problem with ACPI SCI interrupt entry, which gets\nre-used, and the IRQ is assigned to another unrelated device.  The patch\ncorrects the code such that SCI IRQ is skipped and duplicate entry is\navoided.  Second issue came up with VIA chipset, the problem was caused by\noriginal patch assigning IRQs starting 16 and up.  The VIA chipset uses\n4-bit IRQ register for internal interrupt routing, and therefore cannot\nhandle IRQ numbers assigned to its devices.  The patch corrects this\nproblem by allowing PCI IRQs below 16.\n\nCc: len.brown@intel.com\n\nSigned-off by: Natalie Protasevich \u003cNatalie.Protasevich@unisys.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b07019f29328ebb1b48d3faf952b84f07ec9b973",
      "tree": "99fbd8379fb9fe17c5b06c74871f71207ebb072e",
      "parents": [
        "c3ce7e203af5d8eab7c3390fc991a1fcb152f741",
        "e0a515bc6a2188f02916e976f419a8640312e32a"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Sun Apr 30 20:34:39 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Apr 30 20:34:39 2006 +0100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "543f2a3382bd7abd7380903518c61f00c7c87577",
      "tree": "ca6dff499b29f40b5ff62aaaed48def6e4c81016",
      "parents": [
        "693f7d362055261882659475d2ef022e32edbff1"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Apr 29 14:07:49 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Apr 29 14:13:16 2006 -0700"
      },
      "message": "[PATCH] i386: fix broken FP exception handling\n\nThe FXSAVE information leak patch introduced a bug in FP exception\nhandling: it clears FP exceptions only when there are already\nnone outstanding.  Mikael Pettersson reported that causes problems\nwith the Erlang runtime and has tested this fix.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nAcked-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "56142536868a2be34f261ed8fdca1610f8a73fbd",
      "tree": "0bd66166b318d8403b1881285f6813ece2acced1",
      "parents": [
        "34c278d3913a15b64943e8c40a16b4f732cc7c59"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Sat Apr 29 01:51:47 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Apr 29 01:51:47 2006 +0100"
      },
      "message": "Remove unneeded _syscallX macros from user view in asm-*/unistd.h\n\nThese aren\u0027t needed by glibc or klibc, and they\u0027re broken in some cases\nanyway. The uClibc folks are apparently switching over to stop using\nthem too (now that we agreed that they should be dropped, at least).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "d6754b401a15eaa16492ea5dbaa4826361d3f411",
      "tree": "032f067d3af458527d903a7653885404ed82431e",
      "parents": [
        "acc429a517bd11fdcac9bea97d082d26231beb92",
        "693f7d362055261882659475d2ef022e32edbff1"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Sat Apr 29 01:42:26 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Apr 29 01:42:26 2006 +0100"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "6e5882cfa24e1456702e463f6920fc0ca3c3d2b8",
      "tree": "636800c0619ec3551f9a8a7da707d913937cf43d",
      "parents": [
        "2be4d50295e2b6f62c07b614e1b103e280dddb84"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Thu Apr 27 11:32:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 27 12:00:59 2006 -0700"
      },
      "message": "[PATCH] x86/PAE: Fix pte_clear for the \u003e4GB RAM case\n\nProposed fix for ptep_get_and_clear_full PAE bug.  Pte_clear had the same bug,\nso use the same fix for both.  Turns out pmd_clear had it as well, but pgds\nare not affected.\n\nThe problem is rather intricate.  Page table entries in PAE mode are 64-bits\nwide, but the only atomic 8-byte write operation available in 32-bit mode is\ncmpxchg8b, which is expensive (at least on P4), and thus avoided.  But it can\nhappen that the processor may prefetch entries into the TLB in the middle of an\noperation which clears a page table entry.  So one must always clear the P-bit\nin the low word of the page table entry first when clearing it.\n\nSince the sequence *ptep \u003d __pte(0) leaves the order of the write dependent on\nthe compiler, it must be coded explicitly as a clear of the low word followed\nby a clear of the high word.  Further, there must be a write memory barrier\nhere to enforce proper ordering by the compiler (and, in the future, by the\nprocessor as well).\n\nOn \u003e 4GB memory machines, the implementation of pte_clear for PAE was clearly\ndeficient, as it could leave virtual mappings of physical memory above 4GB\naliased to memory below 4GB in the TLB.  The implementation of\nptep_get_and_clear_full has a similar bug, although not nearly as likely to\noccur, since the mappings being cleared are in the process of being destroyed,\nand should never be dereferenced again.\n\nBut, as luck would have it, it is possible to trigger bugs even without ever\ndereferencing these bogus TLB mappings, even if the clear is followed fairly\nsoon after with a TLB flush or invalidation.  The problem is that memory above\n4GB may now be aliased into the first 4GB of memory, and in fact, may hit a\nregion of memory with non-memory semantics.  These regions include AGP and PCI\nspace.  As such, these memory regions are not cached by the processor.  This\nintroduces the bug.\n\nThe processor can speculate memory operations, including memory writes, as long\nas they are committed with the proper ordering.  Speculating a memory write to\na linear address that has a bogus TLB mapping is possible.  Normally, the\nspeculation is harmless.  But for cached memory, it does leave the falsely\nspeculated cacheline unmodified, but in a dirty state.  This cache line will be\neventually written back.  If this cacheline happens to intersect a region of\nmemory that is not protected by the cache coherency protocol, it can corrupt\ndata in I/O memory, which is generally a very bad thing to do, and can cause\ntotal system failure or just plain undefined behavior.\n\nThese bugs are extremely unlikely, but the severity is of such magnitude, and\nthe fix so simple that I think fixing them immediately is justified.  Also,\nthey are nearly impossible to debug.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd469e0cc67b74ba41daec335ea72baedb750b80",
      "tree": "8054cc6b13f48785165af1485a873dd3e33d4ca6",
      "parents": [
        "ad1588798620901c12ba86c71865150a4eb727bf"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Apr 27 15:48:08 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Apr 27 15:48:08 2006 +0100"
      },
      "message": "Exclude asm-generic/{page,memory_model}.h from user bits of i386/x86_64 page.h\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "912d35f86781e64d73be1ef358f703c08905ac37",
      "tree": "5863ad70f5cdccba0c1cd28f83d173deaf71fb83",
      "parents": [
        "016b661e2f717168e600f3c85f29e1a49f88e004"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Apr 26 10:59:21 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Wed Apr 26 10:59:21 2006 +0200"
      },
      "message": "[PATCH] Add support for the sys_vmsplice syscall\n\nsys_splice() moves data to/from pipes with a file input/output. sys_vmsplice()\nmoves data to a pipe, with the input being a user address range instead.\n\nThis uses an approach suggested by Linus, where we can hold partial ranges\ninside the pages[] map. Hopefully this will be useful for network\nreceive support as well.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "18bd057b1408cd110ed23281533430cfc2d52091",
      "tree": "09d8c44ebdb45763173fe54f6962921f4268cf9f",
      "parents": [
        "5dc5cf7dd2723430b6df3d91c5b22af49e063622"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Thu Apr 20 02:36:45 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 07:58:11 2006 -0700"
      },
      "message": "[PATCH] i386/x86-64: Fix x87 information leak between processes\n\nAMD K7/K8 CPUs only save/restore the FOP/FIP/FDP x87 registers in FXSAVE\nwhen an exception is pending.  This means the value leak through\ncontext switches and allow processes to observe some x87 instruction\nstate of other processes.\n\nThis was actually documented by AMD, but nobody recognized it as\nbeing different from Intel before.\n\nThe fix first adds an optimization: instead of unconditionally\ncalling FNCLEX after each FXSAVE test if ES is pending and skip\nit when not needed. Then do a x87 load from a kernel variable to\nclear FOP/FIP/FDP.\n\nThis means other processes always will only see a constant value\ndefined by the kernel in their FP state.\n\nI took some pain to make sure to chose a variable that\u0027s already\nin L1 during context switch to make the overhead of this low.\n\nAlso alternative() is used to patch away the new code on CPUs\nwho don\u0027t need it.\n\nPatch for both i386/x86-64.\n\nThe problem was discovered originally by Jan Beulich. Richard\nBrunner provided the basic code for the workarounds, with contribution\nfrom Jan.\n\nThis is CVE-2006-1056\n\nCc: richard.brunner@amd.com\nCc: jbeulich@novell.com\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bb858f27eadc54e24dfa351fcae724cff426de2",
      "tree": "2c0812570c3a063cf1a0d6f334218e3dc1cce115",
      "parents": [
        "ab5703b34237da7034800ec2466ceebf88a7e685"
      ],
      "author": {
        "name": "lepton",
        "email": "ytht.net@gmail.com",
        "time": "Tue Apr 18 22:21:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:50 2006 -0700"
      },
      "message": "[PATCH] asm-i386/atomic.h: local_irq_save should be used instead of local_irq_disable\n\natomic_add_return() if CONFIG_M386 can accidentally enable local interrupts.\n\nSigned-off-by: Lepton Wu \u003cytht.net@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70524490ee2ea1bbf6cee6c106597b3ac25a3fc2",
      "tree": "c61dd500035bc3e0dea364777de1b7a58b41a75c",
      "parents": [
        "cbb7e577e732f576b9f399bc2600bdc0626c68dc"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 15:51:17 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 15:51:17 2006 +0200"
      },
      "message": "[PATCH] splice: add support for sys_tee()\n\nBasically an in-kernel implementation of tee, which uses splice and the\npipe buffers as an intelligent way to pass data around by reference.\n\nWhere the user space tee consumes the input and produces a stdout and\nfile output, this syscall merely duplicates the data inside a pipe to\nanother pipe. No data is copied, the output just grabs a reference to the\ninput pipe data.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "88dd9c16cecbd105bbe7711b6120333f6f7b5474",
      "tree": "9632e5988abeaa7e4d20350305edc4e4652b56d1",
      "parents": [
        "6dde432553551ae036aae12c2b940677d36c9a5b",
        "d1195c516a9acd767cb541f914be2c6ddcafcfc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "message": "Merge branch \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] vfs: add splice_write and splice_read to documentation\n  [PATCH] Remove sys_ prefix of new syscalls from __NR_sys_*\n  [PATCH] splice: warning fix\n  [PATCH] another round of fs/pipe.c cleanups\n  [PATCH] splice: comment styles\n  [PATCH] splice: add Ingo as addition copyright holder\n  [PATCH] splice: unlikely() optimizations\n  [PATCH] splice: speedups and optimizations\n  [PATCH] pipe.c/fifo.c code cleanups\n  [PATCH] get rid of the PIPE_*() macros\n  [PATCH] splice: speedup __generic_file_splice_read\n  [PATCH] splice: add direct fd \u003c-\u003e fd splicing support\n  [PATCH] splice: add optional input and output offsets\n  [PATCH] introduce a \"kernel-internal pipe object\" abstraction\n  [PATCH] splice: be smarter about calling do_page_cache_readahead()\n  [PATCH] splice: optimize the splice buffer mapping\n  [PATCH] splice: cleanup __generic_file_splice_read()\n  [PATCH] splice: only call wake_up_interruptible() when we really have to\n  [PATCH] splice: potential !page dereference\n  [PATCH] splice: mark the io page as accessed\n"
    },
    {
      "commit": "491d4bed8051c655c7664b85446e13901463eb63",
      "tree": "91d7d5e7241ee09bd347d6c406f3605d62c546df",
      "parents": [
        "5ef37b196467bf2f9d41e5579dd388c08b800f7c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Apr 10 22:54:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:42 2006 -0700"
      },
      "message": "[PATCH] sys_kexec_load() naming fixups\n\n__NR_sys_kexec_load should be __NR_kexec_load.  Mainly affects users of the\n_syscallN() macros, and glibc is already checking for __NR_kexec_load.\n\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c80d79d746cc48bd94b0ce4f6d4f3c90cd403aaf",
      "tree": "5aa8d1590d95f8fd820ad797fe03a063b592e9bf",
      "parents": [
        "653edba1a8b2ed018bdfb078131324dfbfe1dd6a"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 10 22:53:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:39 2006 -0700"
      },
      "message": "[PATCH] Configurable NODES_SHIFT\n\nCurrent implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for\neach arch.  Its definition is sometimes configurable.  Indeed, ia64 defines 5\nNODES_SHIFT values in the current git tree.  But it looks a bit messy.\n\nSGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has\nbeen changeable by config.  Suitable node\u0027s number may be changed in the\nfuture even if it is other architecture.  So, I wrote configurable node\u0027s\nnumber.\n\nThis patch set defines just default value for each arch which needs multi\nnodes except ia64.  But, it is easy to change to configurable if necessary.\n\nOn ia64 the number of nodes can be already configured in generic ia64 and SN2\nconfig.  But, NODES_SHIFT is defined for DIG64 and HP\u0027S machine too.  So, I\nchanged it so that all platforms can be configured via CONFIG_NODES_SHIFT.  It\nwould be simpler.\n\nSee also: http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114358010523896\u0026w\u003d2\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc8cbaed57f773a2b3cee40c15ec4f1e17b08046",
      "tree": "225cc8421031c66ac973a094e7111cf9b80256fb",
      "parents": [
        "c0ec31ad334fb83e53f2130eacbb44a639f77967"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Apr 10 22:53:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:34 2006 -0700"
      },
      "message": "[PATCH] mptspec: remove duplicate #include\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7519fdc90fe577cb966ab1ce2bf51ac639f05a0e",
      "tree": "b07dba5126ab4ef4fe55fa5897f821432179429e",
      "parents": [
        "88e6faefaeed40a162041d85689e94595756d4c3"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue Apr 11 14:00:04 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 14:00:04 2006 +0200"
      },
      "message": "[PATCH] Remove sys_ prefix of new syscalls from __NR_sys_*\n\nOn i386, we don\u0027t use sys_ prefix for __NR_*. This patch removes it\n[FWIW, _syscall*() macros will generate foo() instead of sys_foo().]\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b20367a6c2a0cd937cb1f0a8cf848f1402fef99c",
      "tree": "8624096baed40f8f89e757b2d170a7b4d1844575",
      "parents": [
        "49c93e84d8b2d602a07c302c7e3cd4fa09095fbb"
      ],
      "author": {
        "name": "Jordan Hargrave",
        "email": "jordan_hargrave@dell.com",
        "time": "Fri Apr 07 19:50:18 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 09 11:53:53 2006 -0700"
      },
      "message": "[PATCH] x86_64: Fix drift with HPET timer enabled\n\nIf the HPET timer is enabled, the clock can drift by ~3 seconds a day.\nThis is due to the HPET timer not being initialized with the correct\nsetting (still using PIT count).\n\nIf HZ changes, this drift can become even more pronounced.\n\nHPET patch initializes tick_nsec with correct tick_nsec settings for\nHPET timer.\n\nVojtech comments:\n\n  \"It\u0027s not entirely correct (it assumes the HPET ticks totally\n   exactly), but it\u0027s significantly better than assuming the PIT error\n   there.\"\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95d769aaf47abfc77b600631403ff5af6c990cff",
      "tree": "738fff854613a086e7c1ad04074fa596b8554760",
      "parents": [
        "d1530d82e02fd96d4634a6d6f6538c8b778c43af"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Fri Apr 07 19:49:45 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 09 11:53:51 2006 -0700"
      },
      "message": "[PATCH] i386: Consolidate modern APIC handling\n\nAMD systems have a modern APIC that supports 8 bit IDs, but\ndon\u0027t have a XAPIC version number.  Add a new \"modern_apic\"\nsubfunction that handles this correctly and use it (nearly)\neverywhere where XAPIC is tested for.\n\nI removed one wart: the code specified that external APICs\nwould use an 8bit APIC ID. But I checked a real 82093 data sheet\nand it says clearly that they only use 4bit. So I removed\nthis special case since it would a bit awkward to implement now.\n\nI removed the valid APIC tests in mptable parsing completely. On any modern\nsystem they only check against the full field width (8bit) anyways\nand are no-ops. This also fixes them doing the wrong thing\non \u003e8 core Opterons.\n\nThis makes i386 boot again on 16 core Opterons.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "952223683ec989e86328c24808fdb962c4dbeb0a",
      "tree": "0c7473d4469cba883bf880bbaa04900960806742",
      "parents": [
        "eee5a9fa63c97366cdea6ab3aa2ed9e3601812d0"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Apr 07 19:49:27 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 09 11:53:50 2006 -0700"
      },
      "message": "[PATCH] x86_64: Introduce e820_all_mapped\n\nIntroduce a e820_all_mapped() function which checks if the entire range\n\u003cstart,end\u003e is mapped with type.\n\nThis is done by moving the local start variable to the end of each\nknown-good region; if at the end of the function the start address is\nstill before end, there must be a part that\u0027s not of the correct type;\notherwise it\u0027s a good region.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c12ea918ee175ceb3a258cd81f1c43e897d0c0bc",
      "tree": "faa804c30ab12a6e1aa73b9ec7c1aaf8628d6eaf",
      "parents": [
        "df42baa0d8e54df18dd9366dd7c93d6be7d5d063"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Tue Mar 28 17:04:00 2006 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Apr 01 22:50:03 2006 -0500"
      },
      "message": "x86_64: Remove stale lapic definition from apicdef.h \n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2cf8d82d63807c2c68adf20bb28bf502496186dd",
      "tree": "13cafaa87dafa639f3876bcda6d302266a349c88",
      "parents": [
        "09ce3512dcad0ad1d07eee0dc5ebb6d037c39c16"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:30:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] make local_t signed\n\nlocal_t\u0027s were defined to be unsigned.  This increases confusion because\natomic_t\u0027s are signed.  The patch goes through and changes all implementations\nto use signed longs throughout.\n\nAlso, x86-64 was using 32-bit quantities for the value passed into local_add()\nand local_sub().  Fixed.\n\nAll (actually, both) existing users have been audited.\n\n(Also s/__inline__/inline/ in x86_64/local.h)\n\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f79e2abb9bd452d97295f34376dedbec9686b986",
      "tree": "56b9998caa11983556e842fb9a8143d86d765fa3",
      "parents": [
        "d6dfd1310d3562698fd7c3c086f6c239f96394ac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:30:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:54 2006 -0800"
      },
      "message": "[PATCH] sys_sync_file_range()\n\nRemove the recently-added LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT\nfadvise() additions, do it in a new sys_sync_file_range() syscall instead.\nReasons:\n\n- It\u0027s more flexible.  Things which would require two or three syscalls with\n  fadvise() can be done in a single syscall.\n\n- Using fadvise() in this manner is something not covered by POSIX.\n\nThe patch wires up the syscall for x86.\n\nThe sycall is implemented in the new fs/sync.c.  The intention is that we can\nmove sys_fsync(), sys_fdatasync() and perhaps sys_sync() into there later.\n\nDocumentation for the syscall is in fs/sync.c.\n\nA test app (sync_file_range.c) is in\nhttp://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz.\n\nThe available-to-GPL-modules do_sync_file_range() is for knfsd: \"A COMMIT can\nsay NFS_DATA_SYNC or NFS_FILE_SYNC.  I can skip the -\u003efsync call for\nNFS_DATA_SYNC which is hopefully the more common.\"\n\nNote: the `async\u0027 writeout mode SYNC_FILE_RANGE_WRITE will turn synchronous if\nthe queue is congested.  This is trivial to fix: add a new flag bit, set\nwbc-\u003enonblocking.  But I\u0027m not sure that we want to expose implementation\ndetails down to that level.\n\nNote: it\u0027s notable that we can sync an fd which wasn\u0027t opened for writing.\nSame with fsync() and fdatasync()).\n\nNote: the code takes some care to handle attempts to sync file contents\noutside the 16TB offset on 32-bit machines.  It makes such attempts appear to\nsucceed, for best 32-bit/64-bit compatibility.  Perhaps it should make such\nrequests fail...\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a75a3f0680d9c4bc4761512658b6fd664032e18",
      "tree": "8d3d7fe266740f58961b43ecf144503f36e88dc4",
      "parents": [
        "3ccfb81e871b45e4af6ebb3282f3cfa0f98f1b80"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Fri Mar 31 02:30:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:50 2006 -0800"
      },
      "message": "[PATCH] i386 kdump timer vector lockup fix\n\nPorting the patch I posted for x86_64 to i386.\n\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114178139610707\u0026w\u003d2\n\no While using kdump, after a system crash when second kernel boots, timer\n  vector gets (0x31) locked and CPU does not see timer interrupts\n  travelling from IOAPIC to APIC.  Currently it does not lead to boot\n  failure in second kernel as timer interrupts continues to come as ExtInt\n  through LAPIC directly, but fixing it is good in case some boards do not\n  support the other mode.\n\no After a system crash, it is not safe to service interrupts any more,\n  hence interrupts are disabled.  This leads to pending interrupts at\n  LAPIC.  LAPIC sends these interrupts to the CPU during early boot of\n  second kernel.  Other pending interrupts are discarded saying unexpected\n  trap but timer interrupt is serviced and CPU does not issue an LAPIC EOI\n  because it think this interrupt came from i8259 and sends ack to 8259.\n  This leads to vector 0x31 locking as LAPIC does not clear respective ISR\n  and keeps on waiting for EOI.\n\no This patch issues extra EOI for the pending interrupts who have ISR set.\n\no Though today only timer seems to be the special case because in early\n  boot it thinks interrupts are coming from i8259 and uses\n  mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI.  But\n  probably doing it in generic manner for all vectors makes sense.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3ccfb81e871b45e4af6ebb3282f3cfa0f98f1b80",
      "tree": "92a48c57c125da95d96bb1506c6c871cb5b726d4",
      "parents": [
        "bc83db4f006fcf9e9502a002b4bd448fc4511d04"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Fri Mar 31 02:30:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:50 2006 -0800"
      },
      "message": "[PATCH] Remove long dead i386 floppy asm code\n\nIt\u0027s been disabled since v2.1.88\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5274f052e7b3dbd81935772eb551dfd0325dfa9d",
      "tree": "c79f813ec513660edb6f1e4a75cb366c6b84f53f",
      "parents": [
        "5d4fe2c1ce83c3e967ccc1ba3d580c1a5603a866"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 30 15:15:30 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 30 12:28:18 2006 -0800"
      },
      "message": "[PATCH] Introduce sys_splice() system call\n\nThis adds support for the sys_splice system call. Using a pipe as a\ntransport, it can connect to files or sockets (latter as output only).\n\nFrom the splice.c comments:\n\n   \"splice\": joining two ropes together by interweaving their strands.\n\n   This is the \"extended pipe\" functionality, where a pipe is used as\n   an arbitrary in-memory buffer. Think of a pipe as a small kernel\n   buffer that you can use to transfer data from one end to the other.\n\n   The traditional unix read/write is extended with a \"splice()\" operation\n   that transfers data buffers to or from a pipe buffer.\n\n   Named by Larry McVoy, original implementation from Linus, extended by\n   Jens to support splicing to files and fixing the initial implementation\n   bugs.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f45e4656ac0609437267b242953c07d523649f8d",
      "tree": "bd70b8ae51d2a29c435a6567852f32badafb2720",
      "parents": [
        "50fc9999ec27ad66ce6db31ebb03759f77962bc1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Mar 28 01:56:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] arch/i386/kernel/microcode.c: remove the obsolete microcode_ioctl\n\nNowadays, even Debian stable ships a microcode_ctl utility recent enough to no\nlonger use this ioctl.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Tigran Aivazian \u003ctigran_aivazian@symantec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "41623b064fbd76de5901da7c0e3cd2136617d787",
      "tree": "f96bb5c45d7fa4a899af2be27a3bbdca079b023a",
      "parents": [
        "4c2e6f6a06cdd239ec17e195e7868ce0171ea154"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Mar 28 01:56:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:01 2006 -0800"
      },
      "message": "[PATCH] RTC: Fix up some RTC whitespace and style\n\nFix up some RTC whitespace and style\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63732c2f37093d63102d53e70866cf87bf0c0479",
      "tree": "bf364131da50132b6e27cfb028eee725fb4fe3e5",
      "parents": [
        "329b10bb0feacb7fb9a41389313ff0a51ae56f2a"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Mar 28 01:55:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:00 2006 -0800"
      },
      "message": "[PATCH] RTC: Remove RTC UIP synchronization on x86\n\nReading the CMOS clock on x86 and some other arches currently takes up to one\nsecond because it synchronizes with the CMOS second tick-over.  This delay\nshows up at boot time as well a resume time.\n\nThis is the currently the most substantial boot time delay for machines that\nare working towards instant-on capability.  Also, a quick back of the envelope\ncalculation (.5sec * 2M users * 1 boot a day * 10 years) suggests it has cost\nLinux users in the neighborhood of a million man-hours.\n\nAn earlier thread on this topic is here:\n\nhttp://groups.google.com/group/linux.kernel/browse_frm/thread/8a24255215ff6151/2aa97e66a977653d?hl\u003den\u0026lr\u003d\u0026ie\u003dUTF-8\u0026rnum\u003d1\u0026prev\u003d/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1To2R-2S7-11%40gated-at.bofh.it#2aa97e66a977653d\n\n..from which the consensus seems to be that it\u0027s no longer desirable.\n\nIn my view, there are basically four cases to consider:\n\n1) networked, need precise walltime: use NTP\n2) networked, don\u0027t need precise walltime: use NTP anyway\n3) not networked, don\u0027t need sub-second precision walltime: don\u0027t care\n4) not networked, need sub-second precision walltime:\n   get a network or a radio time source because RTC isn\u0027t good enough anyway\n\nSo this patch series simply removes the synchronization in favor of a simple\nseqlock-like approach using the seconds value.\n\nNote that for purposes of timer accuracy on wakeup, this patch will cause us\nto fire timers up to one second late.  But as the current timer resume code\nwill already sync once (or more!), it\u0027s no worse for short timers.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f17d3a5049d32392b79925c73a0cf99ce6d5af0",
      "tree": "3c2aa0cbe337684d353dd2cfb0c177b4ae15217c",
      "parents": [
        "8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes updates\n\n- fix: initialize the robust list(s) to NULL in copy_process.\n\n- doc update\n\n- cleanup: rename _inuser to _inatomic\n\n- __user cleanups and other small cleanups\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfd4e3ec246355274c9cf62c6b04a1ee6fa3caba",
      "tree": "9b745a5f4b5134c2a101280f6bbd1947c15800d8",
      "parents": [
        "34f192c6527f20c47ccec239e7d51a27691b93fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: i386\n\ni386: add the futex_atomic_cmpxchg_inuser() assembly implementation, and wire\nup the new syscalls.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9056f13bfcdd054a0c3d730e4e096748d8a363a",
      "tree": "876d70d99cb679f7c4cbf6609d6341cadfb5c57e",
      "parents": [
        "62ac285f3c701f0457a15fe01baa64a965c4f5f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: arch defaults\n\nThis patchset provides a new (written from scratch) implementation of robust\nfutexes, called \"lightweight robust futexes\".  We believe this new\nimplementation is faster and simpler than the vma-based robust futex solutions\npresented before, and we\u0027d like this patchset to be adopted in the upstream\nkernel.  This is version 1 of the patchset.\n\n  Background\n  ----------\n\nWhat are robust futexes?  To answer that, we first need to understand what\nfutexes are: normal futexes are special types of locks that in the\nnoncontended case can be acquired/released from userspace without having to\nenter the kernel.\n\nA futex is in essence a user-space address, e.g.  a 32-bit lock variable\nfield.  If userspace notices contention (the lock is already owned and someone\nelse wants to grab it too) then the lock is marked with a value that says\n\"there\u0027s a waiter pending\", and the sys_futex(FUTEX_WAIT) syscall is used to\nwait for the other guy to release it.  The kernel creates a \u0027futex queue\u0027\ninternally, so that it can later on match up the waiter with the waker -\nwithout them having to know about each other.  When the owner thread releases\nthe futex, it notices (via the variable value) that there were waiter(s)\npending, and does the sys_futex(FUTEX_WAKE) syscall to wake them up.  Once all\nwaiters have taken and released the lock, the futex is again back to\n\u0027uncontended\u0027 state, and there\u0027s no in-kernel state associated with it.  The\nkernel completely forgets that there ever was a futex at that address.  This\nmethod makes futexes very lightweight and scalable.\n\n\"Robustness\" is about dealing with crashes while holding a lock: if a process\nexits prematurely while holding a pthread_mutex_t lock that is also shared\nwith some other process (e.g.  yum segfaults while holding a pthread_mutex_t,\nor yum is kill -9-ed), then waiters for that lock need to be notified that the\nlast owner of the lock exited in some irregular way.\n\nTo solve such types of problems, \"robust mutex\" userspace APIs were created:\npthread_mutex_lock() returns an error value if the owner exits prematurely -\nand the new owner can decide whether the data protected by the lock can be\nrecovered safely.\n\nThere is a big conceptual problem with futex based mutexes though: it is the\nkernel that destroys the owner task (e.g.  due to a SEGFAULT), but the kernel\ncannot help with the cleanup: if there is no \u0027futex queue\u0027 (and in most cases\nthere is none, futexes being fast lightweight locks) then the kernel has no\ninformation to clean up after the held lock!  Userspace has no chance to clean\nup after the lock either - userspace is the one that crashes, so it has no\nopportunity to clean up.  Catch-22.\n\nIn practice, when e.g.  yum is kill -9-ed (or segfaults), a system reboot is\nneeded to release that futex based lock.  This is one of the leading\nbugreports against yum.\n\nTo solve this problem, \u0027Robust Futex\u0027 patches were created and presented on\nlkml: the one written by Todd Kneisel and David Singleton is the most advanced\nat the moment.  These patches all tried to extend the futex abstraction by\nregistering futex-based locks in the kernel - and thus give the kernel a\nchance to clean up.\n\nE.g.  in David Singleton\u0027s robust-futex-6.patch, there are 3 new syscall\nvariants to sys_futex(): FUTEX_REGISTER, FUTEX_DEREGISTER and FUTEX_RECOVER.\nThe kernel attaches such robust futexes to vmas (via\nvma-\u003evm_file-\u003ef_mapping-\u003erobust_head), and at do_exit() time, all vmas are\nsearched to see whether they have a robust_head set.\n\nLots of work went into the vma-based robust-futex patch, and recently it has\nimproved significantly, but unfortunately it still has two fundamental\nproblems left:\n\n - they have quite complex locking and race scenarios.  The vma-based\n   patches had been pending for years, but they are still not completely\n   reliable.\n\n - they have to scan _every_ vma at sys_exit() time, per thread!\n\nThe second disadvantage is a real killer: pthread_exit() takes around 1\nmicrosecond on Linux, but with thousands (or tens of thousands) of vmas every\npthread_exit() takes a millisecond or more, also totally destroying the CPU\u0027s\nL1 and L2 caches!\n\nThis is very much noticeable even for normal process sys_exit_group() calls:\nthe kernel has to do the vma scanning unconditionally!  (this is because the\nkernel has no knowledge about how many robust futexes there are to be cleaned\nup, because a robust futex might have been registered in another task, and the\nfutex variable might have been simply mmap()-ed into this process\u0027s address\nspace).\n\nThis huge overhead forced the creation of CONFIG_FUTEX_ROBUST, but worse than\nthat: the overhead makes robust futexes impractical for any type of generic\nLinux distribution.\n\nSo it became clear to us, something had to be done.  Last week, when Thomas\nGleixner tried to fix up the vma-based robust futex patch in the -rt tree, he\nfound a handful of new races and we were talking about it and were analyzing\nthe situation.  At that point a fundamentally different solution occured to\nme.  This patchset (written in the past couple of days) implements that new\nsolution.  Be warned though - the patchset does things we normally dont do in\nLinux, so some might find the approach disturbing.  Parental advice\nrecommended ;-)\n\n  New approach to robust futexes\n  ------------------------------\n\nAt the heart of this new approach there is a per-thread private list of robust\nlocks that userspace is holding (maintained by glibc) - which userspace list\nis registered with the kernel via a new syscall [this registration happens at\nmost once per thread lifetime].  At do_exit() time, the kernel checks this\nuser-space list: are there any robust futex locks to be cleaned up?\n\nIn the common case, at do_exit() time, there is no list registered, so the\ncost of robust futexes is just a simple current-\u003erobust_list !\u003d NULL\ncomparison.  If the thread has registered a list, then normally the list is\nempty.  If the thread/process crashed or terminated in some incorrect way then\nthe list might be non-empty: in this case the kernel carefully walks the list\n[not trusting it], and marks all locks that are owned by this thread with the\nFUTEX_OWNER_DEAD bit, and wakes up one waiter (if any).\n\nThe list is guaranteed to be private and per-thread, so it\u0027s lockless.  There\nis one race possible though: since adding to and removing from the list is\ndone after the futex is acquired by glibc, there is a few instructions window\nfor the thread (or process) to die there, leaving the futex hung.  To protect\nagainst this possibility, userspace (glibc) also maintains a simple per-thread\n\u0027list_op_pending\u0027 field, to allow the kernel to clean up if the thread dies\nafter acquiring the lock, but just before it could have added itself to the\nlist.  Glibc sets this list_op_pending field before it tries to acquire the\nfutex, and clears it after the list-add (or list-remove) has finished.\n\nThat\u0027s all that is needed - all the rest of robust-futex cleanup is done in\nuserspace [just like with the previous patches].\n\nUlrich Drepper has implemented the necessary glibc support for this new\nmechanism, which fully enables robust mutexes.  (Ulrich plans to commit these\nchanges to glibc-HEAD later today.)\n\nKey differences of this userspace-list based approach, compared to the vma\nbased method:\n\n - it\u0027s much, much faster: at thread exit time, there\u0027s no need to loop\n   over every vma (!), which the VM-based method has to do.  Only a very\n   simple \u0027is the list empty\u0027 op is done.\n\n - no VM changes are needed - \u0027struct address_space\u0027 is left alone.\n\n - no registration of individual locks is needed: robust mutexes dont need\n   any extra per-lock syscalls.  Robust mutexes thus become a very lightweight\n   primitive - so they dont force the application designer to do a hard choice\n   between performance and robustness - robust mutexes are just as fast.\n\n - no per-lock kernel allocation happens.\n\n - no resource limits are needed.\n\n - no kernel-space recovery call (FUTEX_RECOVER) is needed.\n\n - the implementation and the locking is \"obvious\", and there are no\n   interactions with the VM.\n\n  Performance\n  -----------\n\nI have benchmarked the time needed for the kernel to process a list of 1\nmillion (!) held locks, using the new method [on a 2GHz CPU]:\n\n - with FUTEX_WAIT set [contended mutex]: 130 msecs\n - without FUTEX_WAIT set [uncontended mutex]: 30 msecs\n\nI have also measured an approach where glibc does the lock notification [which\nit currently does for !pshared robust mutexes], and that took 256 msecs -\nclearly slower, due to the 1 million FUTEX_WAKE syscalls userspace had to do.\n\n(1 million held locks are unheard of - we expect at most a handful of locks to\nbe held at a time.  Nevertheless it\u0027s nice to know that this approach scales\nnicely.)\n\n  Implementation details\n  ----------------------\n\nThe patch adds two new syscalls: one to register the userspace list, and one\nto query the registered list pointer:\n\n asmlinkage long\n sys_set_robust_list(struct robust_list_head __user *head,\n                     size_t len);\n\n asmlinkage long\n sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr,\n                     size_t __user *len_ptr);\n\nList registration is very fast: the pointer is simply stored in\ncurrent-\u003erobust_list.  [Note that in the future, if robust futexes become\nwidespread, we could extend sys_clone() to register a robust-list head for new\nthreads, without the need of another syscall.]\n\nSo there is virtually zero overhead for tasks not using robust futexes, and\neven for robust futex users, there is only one extra syscall per thread\nlifetime, and the cleanup operation, if it happens, is fast and\nstraightforward.  The kernel doesnt have any internal distinction between\nrobust and normal futexes.\n\nIf a futex is found to be held at exit time, the kernel sets the highest bit\nof the futex word:\n\n\t#define FUTEX_OWNER_DIED        0x40000000\n\nand wakes up the next futex waiter (if any). User-space does the rest of\nthe cleanup.\n\nOtherwise, robust futexes are acquired by glibc by putting the TID into the\nfutex field atomically.  Waiters set the FUTEX_WAITERS bit:\n\n\t#define FUTEX_WAITERS           0x80000000\n\nand the remaining bits are for the TID.\n\n  Testing, architecture support\n  -----------------------------\n\nI\u0027ve tested the new syscalls on x86 and x86_64, and have made sure the parsing\nof the userspace list is robust [ ;-) ] even if the list is deliberately\ncorrupted.\n\ni386 and x86_64 syscalls are wired up at the moment, and Ulrich has tested the\nnew glibc code (on x86_64 and i386), and it works for his robust-mutex\ntestcases.\n\nAll other architectures should build just fine too - but they wont have the\nnew syscalls yet.\n\nArchitectures need to implement the new futex_atomic_cmpxchg_inuser() inline\nfunction before writing up the syscalls (that function returns -ENOSYS right\nnow).\n\nThis patch:\n\nAdd placeholder futex_atomic_cmpxchg_inuser() implementations to every\narchitecture that supports futexes.  It returns -ENOSYS.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22a9835c350782a5c3257343713932af3ac92ee0",
      "tree": "9688e99426e8aa85a468cc724ffee32c6a8abcad",
      "parents": [
        "95144c788dc01b6a0ff2c9c2222e37ffdab358b8"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Mon Mar 27 01:16:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] unify PFN_* macros\n\nJust about every architecture defines some macros to do operations on pfns.\n They\u0027re all virtually identical.  This patch consolidates all of them.\n\nOne minor glitch is that at least i386 uses them in a very skeletal header\nfile.  To keep away from #include dependency hell, I stuck the new\ndefinitions in a new, isolated header.\n\nOf all of the implementations, sh64 is the only one that varied by a bit.\nIt used some masks to ensure that any sign-extension got ripped away before\nthe arithmetic is done.  This has been posted to that sh64 maintainers and\nthe development list.\n\nCompiles on x86, x86_64, ia64 and ppc64.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad658b385e6308066f9084a7ea01305b223cd3a0",
      "tree": "f8f84bf79ade6e9e51dbd18434616e7f89b5c977",
      "parents": [
        "a117e66ed45ac0569c039ea60bd7a9a61e031858"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:44 2006 -0800"
      },
      "message": "[PATCH] unify pfn_to_page: i386 pfn_to_page\n\ni386 can use generic funcs.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7",
      "tree": "ccfa4927ebc7a8f663f9ac9e7789a713a33253ff",
      "parents": [
        "77e4bfbcf071f795b54862455dce8902b3fc29c2"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 27 01:15:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] sched: new sched domain for representing multi-core\n\nAdd a new sched domain for representing multi-core with shared caches\nbetween cores.  Consider a dual package system, each package containing two\ncores and with last level cache shared between cores with in a package.  If\nthere are two runnable processes, with this appended patch those two\nprocesses will be scheduled on different packages.\n\nOn such systems, with this patch we have observed 8% perf improvement with\nspecJBB(2 warehouse) benchmark and 35% improvement with CFP2000 rate(with 2\nusers).\n\nThis new domain will come into play only on multi-core systems with shared\ncaches.  On other systems, this sched domain will be removed by domain\ndegeneration code.  This new domain can be also used for implementing power\nsavings policy (see OLS 2005 CMP kernel scheduler paper for more details..\nI will post another patch for power savings policy soon)\n\nMost of the arch/* file changes are for cpu_coregroup_map() implementation.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1cc2b9943b7b3a8d526aa8be5450d3ec083c3de4",
      "tree": "302d864d0f11c9fb1ec747440b0fce7f9f3ca27e",
      "parents": [
        "f6e0213f7c253086e17844df8ba21075100b5ead"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:12 2006 -0800"
      },
      "message": "[PATCH] bitops: i386: use generic bitops\n\n- remove generic_fls64()\n- remove sched_find_first_bit()\n- remove generic_hweight{32,16,8}()\n- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()\n- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "311ac88fd2d4194a95e9e38d2fe08917be98723c",
      "tree": "321602aa5da2c18a285f31dc2dab14a7464c0483",
      "parents": [
        "b50ea74c7bc3ebe3d88a357893f0b96ae9092f13"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "hiramatu@sdl.hitachi.co.jp",
        "time": "Sun Mar 26 01:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:04 2006 -0800"
      },
      "message": "[PATCH] x86: kprobes-booster\n\nCurrent kprobe copies the original instruction at the probe point and replaces\nit with a breakpoint instruction (int3).  When the kernel hits the probe\npoint, kprobe handler is invoked.  And the copied instruction is single-step\nexecuted on the copied buffer (not on the original address) by kprobe.  After\nthat, the kprobe checks registers and modify it (if need) as if the\ninstructions was executed on the original address.\n\nMy proposal is based on the fact there are many instructions which do NOT\nrequire the register modification after the single-step execution.  When the\ncopied instruction is a kind of them, kprobe just jumps back to the next\ninstruction after single-step execution.  If so, why don\u0027t we execute those\ninstructions directly?\n\nWith kprobe-booster patch, kprobes will execute a copied instruction directly\nand (if need) jump back to original code.  This direct execution is executed\nwhen the kprobe don\u0027t have both post_handler and break_handler, and the copied\ninstruction can be executed directly.\n\nI sorted instructions which can be executed directly or not;\n\n- Call instructions are NG(can not be executed directly).\n  We should correct the return address pushed into top of stack.\n- Indirect instructions except for absolute indirect-jumps\n  are NG. Those instructions changes EIP randomly. We should\n  check EIP and correct it.\n- Instructions that change EIP beyond the range of the\n  instruction buffer are NG.\n- Instructions that change EIP to tail 5 bytes of the\n  instruction buffer (it is the size of a jump instruction).\n  We must write a jump instruction which backs to original\n  kernel code in the instruction buffer.\n- Break point instruction is NG. We should not touch EIP and\n  pass to other handlers.\n- Absolute direct/indirect jumps are OK.- Conditional Jumps are NG.\n- Halt and software-interruptions are NG. Because it will stay on\n  the instruction buffer of kprobes.\n- Prefixes are NG.\n- Unknown/reserved opcode is NG.\n- Other 1 byte instructions are OK. But those instructions need a\n  jump back code.\n- 2 bytes instructions are mapped sparsely. So, in this release,\n  this patch don\u0027t boost those instructions.\n\n\u003eFrom Intel\u0027s IA-32 opcode map described in IA-32 Intel Architecture Software\nDeveloper\u0027s Manual Vol.2 B, I determined that following opcodes are not\nboostable.\n\n- 0FH (2byte escape)\n- 70H - 7FH (Jump on condition)\n- 9AH (Call) and 9CH (Pushf)\n- C0H-C1H (Grp 2: includes reserved opcode)\n- C6H-C7H (Grp11: includes reserved opcode)\n- CCH-CEH (Software-interrupt)\n- D0H-D3H (Grp2: includes reserved opcode)\n- D6H (Reserved)\n- D8H-DFH (Coprocessor)\n- E0H-E3H (loop/conditional jump)\n- E8H (Call)\n- F0H-F3H (Prefixes and reserved)\n- F4H (Halt)\n- F6H-F7H (Grp3: includes reserved opcode)\n- FEH-FFH(Grp4,5: includes reserved opcode)\n\nKprobe-booster checks whether target instruction can be boosted (can be\nexecuted directly) at arch_copy_kprobe() function.  If the target instruction\ncan be boosted, it clears \"boostable\" flag.  If not, it sets \"boostable\" flag\n-1.  This is disabled status.  In resume_execution() function, If \"boostable\"\nflag is cleared, kprobe-booster measures the size of the target instruction\nand sets \"boostable\" flag 1.\n\nIn kprobe_handler(), kprobe checks the \"boostable\" flag.  If the flag is 1, it\nresets current kprobe and executes instruction buffer directly instead of\nsingle stepping.\n\nWhen unregistering a boosted kprobe, it calls synchronize_sched()\nafter \"int3\" is removed. So we can ensure followings after\nthe synchronize_sched() called.\n- interrupt handlers are finished on all CPUs.\n- instruction buffer is not executed on all CPUs.\nAnd we can release the boosted kprobe safely.\n\nAnd also, on preemptible kernel, the booster is not enabled where the kernel\npreemption is enabled.  So, there are no preempted threads on the instruction\nbuffer.\n\nThe description of kretprobe-booster:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nIn the normal operation, kretprobe make a target function return to trampoline\ncode.  And a kprobe (called trampoline_probe) have been inserted at the\ntrampoline code.  When the kernel hits this kprobe, it calls kretprobe\u0027s\nhandler and it returns to original return address.\n\nKretprobe-booster patch removes the trampoline_probe.  It allows the\ntram\u0018poline code to call kretprobe\u0027s handler directly instead of invoking\nkprobe.  And tranpoline code returns to original return address.\n\nThis new trampoline code stores and restores registers, so the kretprobe\nhandler is still able to access those registers.\n\nCurrent kprobe has about 1.3 usec/probe(*) overhead, and kprobe-booster patch\nreduces it to 0.6 usec/probe(*).  Also current kretprobe has about 2.0\nusec/probe(*) overhead.  Kprobe-booster patch reduces it to 1.3 usec/probe(*),\nand the combination of both kprobe-booster patch and kretprobe-booster patch\nreduces it to 0.9 usec/probe(*).\n\nI expect the combination of both patches can reduce half of a probing\noverhead.\n\nPerformance numbers strongly depend on the processor model.\n\nAndrew Morton wrote:\n\u003e These preempt tricks look rather nasty.  Can you please describe what the\n\u003e problem is, precisely?  And how this code avoids it?  Perhaps we can find\n\u003e something cleaner.\n\nThe problem is how to remove the copied instructions of the\nkprobe *safely* on the preemptable kernel (CONFIG_PREEMPT\u003dy).\n\nKprobes basically executes the following actions;\n\n(1)int3\n(2)preempt_disable()\n(3)kprobe_prehandler()\n(4)copied instructioin(single step)\n(5)kprobe_posthandler()\n(6)preempt_enable()\n(7)return to the original code\n\nDuring the execution of copied instruction, preemption is\ndisabled (from step (2) to (6)).\nWhen unregistering the probes, Kprobe waits for RCU\nquiescent state by using synchronize_sched() after removing\nint3 instruction.\nThus we can ensure the copied instruction is not executed.\n\nOn the other hand, kprobe-booster executes the following actions;\n\n(1)int3\n(2)preempt_disable()\n(3)kprobe_prehandler()\n(4)preempt_enable()             \u003c-- this one is added by my patch\n(5)copied instruction(direct execution)\n(6)jmp back to the original code\n\nThe problem is that we have no way to prevent preemption on\nstep (5) or (6). We cannot call preempt_disable() after step (6),\nbecause there are no rooms to do that. Thus, some other\nprocesses may be preempted at step(5) or (6) on preemptable kernel.\nAnd I couldn\u0027t find the easy way to ensure that other processes\u0027\nstack do *not* have the address of them. (I thought some way\nto do that, but those are very costly.)\n\nSo currently, I simply boost the kprobe only when the probe\npoint is already preemption disabled.\n\n\u003e Also, the patch adds a preempt_enable() but I don\u0027t see a corresponding\n\u003e preempt_disable().  Am I missing something?\n\nIt is corresponding to the preempt_disable() in the top of\nkprobe_handler().\nI copied the code of kprobe_handler() here:\n\nstatic int __kprobes kprobe_handler(struct pt_regs *regs)\n{\n        struct kprobe *p;\n        int ret \u003d 0;\n        kprobe_opcode_t *addr \u003d NULL;\n        unsigned long *lp;\n        struct kprobe_ctlblk *kcb;\n\n        /*\n         * We don\u0027t want to be preempted for the entire\n         * duration of kprobe processing\n         */\n        preempt_disable();             \u003c-- HERE\n        kcb \u003d get_kprobe_ctlblk();\n\nSigned-off-by: Masami Hiramatsu \u003chiramatu@sdl.hitachi.co.jp\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0f62ac6362c168754cccb36f196b3dfbddc3bc3",
      "tree": "079d525cfbf9851e2cb30acda77d180388d03c69",
      "parents": [
        "abcb6c9fd13fc2ad7757b818924dc8109a0e3775"
      ],
      "author": {
        "name": "Takashi Sato",
        "email": "sho@tnes.nec.co.jp",
        "time": "Sun Mar 26 01:37:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] 2TB files: add blkcnt_t\n\nAdd blkcnt_t as the type of inode.i_blocks.  This enables you to make the size\nof blkcnt_t either 4 bytes or 8 bytes on 32 bits architecture with CONFIG_LSF.\n\n- CONFIG_LSF\n  Add new configuration parameter.\n- blkcnt_t\n  On h8300, i386, mips, powerpc, s390 and sh that define sector_t,\n  blkcnt_t is defined as u64 if CONFIG_LSF is enabled; otherwise it is\n  defined as unsigned long.\n  On other architectures, it is defined as unsigned long.\n- inode.i_blocks\n  Change the type from sector_t to blkcnt_t.\n\nSigned-off-by: Takashi Sato \u003csho@tnes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abcb6c9fd13fc2ad7757b818924dc8109a0e3775",
      "tree": "39a1d5660d2bd92cffa8eef09d489b241e4072a1",
      "parents": [
        "93d2341c750cda0df48a6cc67b35fe25f1ec47df"
      ],
      "author": {
        "name": "Takashi Sato",
        "email": "sho@tnes.nec.co.jp",
        "time": "Sun Mar 26 01:37:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] 2TB files: st_blocks is invalid when calling stat64\n\nThis patch series fixes the following problems on 32 bits architecture.\n\no stat64 returns the lower 32 bits of blocks, although userland st_blocks\n  has 64 bits, because i_blocks has only 32 bits.  The ioctl with FIOQSIZE has\n  the same problem.\n\no As Dave Kleikamp said, making \u003e2TB file on JFS results in writing an\n  invalid block number to disk inode.  The cause is the same as above too.\n\no In generic quota code dquot_transfer(), the file usage is calculated from\n  i_blocks via inode_get_bytes().  If the file is over 2TB, the change of\n  usage is less than expected.  The cause is the same as above too.\n\no As Trond Myklebust said, statfs64\u0027s entries related to blocks are invalid\n  on statfs64 for a network filesystem which has more than 2^32-1 blocks with\n  CONFIG_LBD disabled.  [PATCH 3/3]\n\nWe made patches to fix problems that occur when handling a large filesystem\nand a large file.  It was discussed on the mails titled \"stat64 for over 2TB\nfile returned invalid st_blocks\".\n\nSigned-off-by: Takashi Sato \u003csho@tnes.nec.co.jp\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2d3efedbecc04dc348d723e4c90b46731b3bb48",
      "tree": "982c7838a97a5c2420de392e5a36f49eaa1778b0",
      "parents": [
        "f083a329e63d471a5e9238e837772b1b76c218db"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Mar 25 16:30:22 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:10:55 2006 -0800"
      },
      "message": "[PATCH] x86_64: Implement early DMI scanning\n\nThere are more and more cases where we need to know DMI information\nearly to work around bugs.  i386 already had early DMI scanning, but\nx86-64 didn\u0027t.  Implement this now.\n\nThis required some cleanup in the i386 code.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f348d70a324e15afc701a494f32ec468abb7d1eb",
      "tree": "a4cb43429f7f08a6621c581bd99e4a03198e8c67",
      "parents": [
        "501f2499b897ca4be68b1acc7a4bc8cf66f5fd24"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Sat Mar 25 03:07:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:56 2006 -0800"
      },
      "message": "[PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications\n\nImplement the half-closed devices notifiation, by adding a new POLLRDHUP\n(and its alias EPOLLRDHUP) bit to the existing poll/select sets.  Since the\nexisting POLLHUP handling, that does not report correctly half-closed\ndevices, was feared to be changed, this implementation leaves the current\nPOLLHUP reporting unchanged and simply add a new bit that is set in the few\nplaces where it makes sense.  The same thing was discussed and conceptually\nagreed quite some time ago:\n\nhttp://lkml.org/lkml/2003/7/12/116\n\nSince this new event bit is added to the existing Linux poll infrastruture,\neven the existing poll/select system calls will be able to use it.  As far\nas the existing POLLHUP handling, the patch leaves it as is.  The\npollrdhup-2.6.16.rc5-0.10.diff defines the POLLRDHUP for all the existing\narchs and sets the bit in the six relevant files.  The other attached diff\nis the simple change required to sys/epoll.h to add the EPOLLRDHUP\ndefinition.\n\nThere is \"a stupid program\" to test POLLRDHUP delivery here:\n\n http://www.xmailserver.org/pollrdhup-test.c\n\nIt tests poll(2), but since the delivery is same epoll(2) will work equally.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cdb0452789d365695b5b173542af9c7e3d24f185",
      "tree": "f8594a754736aecfb52d835a2e12f46a923e6ed6",
      "parents": [
        "008accbbae6b2f18c2039d563f28d46ff4388d36"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Mar 24 03:15:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:21 2006 -0800"
      },
      "message": "[PATCH] kill include/linux/platform.h, default_idle() cleanup\n\ninclude/linux/platform.h contained nothing that was actually used except\nthe default_idle() prototype, and is therefore removed by this patch.\n\nThis patch does the following with the platform specific default_idle()\nfunctions on different architectures:\n- remove the unused function:\n  - parisc\n  - sparc64\n- make the needlessly global function static:\n  - arm\n  - h8300\n  - m68k\n  - m68knommu\n  - s390\n  - v850\n  - x86_64\n- add a prototype in asm/system.h:\n  - cris\n  - i386\n  - ia64\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nAcked-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "57f3ebccaa560d1eeb40b5c719773bed5cb0df46",
      "tree": "5c475fe84dbd352f9758f63c20a3c76c1b89c8ca",
      "parents": [
        "c44fec118b62baad3fc70e2ef3447729a1d9b194"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 24 03:15:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:19 2006 -0800"
      },
      "message": "[PATCH] remove ISA legacy functions: remove the helpers\n\nunused isa_...() helpers removed.\n\nAdrian Bunk:\nThe asm-sh part was rediffed due to unrelated changes.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b2fcfdb8b4e7e379192f24ea2203163ddf5df1d",
      "tree": "1f3995e41ab12ff76e737389e0b59a40c0c73668",
      "parents": [
        "713729e8b993cb880225e2ced50a3f5ac05c2b3f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Mar 23 03:01:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:17 2006 -0800"
      },
      "message": "[PATCH] atomic: add_unless cmpxchg optimise\n\nWithout branch hints, the very unlikely chance of the loop repeating due to\ncmpxchg failure is unrolled with gcc-4 that I have tested.\n\nImprove this for architectures with a native cas/cmpxchg.  llsc archs\nshould try to implement this natively.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "804f1594cc3deb161e531a43d90c501f0db2635a",
      "tree": "81f7a7cea8dbf671c733df379c6582e36459e8da",
      "parents": [
        "6a2900b67652421b51fe25e4b86ecfec742b1f30"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Thu Mar 23 03:00:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:10 2006 -0800"
      },
      "message": "[PATCH] Move read_mostly definition to asm/cache.h\n\nSeems like needless clutter having a bunch of #if defined(CONFIG_$ARCH) in\ninclude/linux/cache.h.  Move the per architecture section definition to\nasm/cache.h, and keep the if-not-defined dummy case in linux/cache.h to\ncatch architectures which don\u0027t implement the section.\n\nVerified that symbols still go in .data.read_mostly on parisc,\nand the compile doesn\u0027t break.\n\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aeefc956d5d8f8402216a5447bd72ade9eb37eff",
      "tree": "982c643fe5288bc3228e3237eaab9e4406b811c1",
      "parents": [
        "905c399594f85322a4e513a4b0365b70d6de9fd0"
      ],
      "author": {
        "name": "Markus Gutschke",
        "email": "markus@google.com",
        "time": "Thu Mar 23 02:59:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:07 2006 -0800"
      },
      "message": "[PATCH] x86: Make _syscallX() macros compile in PIC mode\n\nGcc reserves %ebx when compiling position-independent-code on i386.  This\nmeans, the _syscallX() macros in include/asm-i386/unistd.h will not\ncompile.  This patch is changes the existing macros to take special care to\npreserve %ebx.\n\nThe bug can be tracked at http://bugzilla.kernel.org/show_bug.cgi?id\u003d6204\n\nSigned-off-by: Markus Gutschke \u003cmarkus@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "42c059e04d507802006911e316d86aa8ef75eb73",
      "tree": "42eb9e4d5f0a578dca12a26beeae4b27d968cb4a",
      "parents": [
        "7c5c1e427b5e83807fd05419d1cf6991b9d87247"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Thu Mar 23 02:59:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:06 2006 -0800"
      },
      "message": "[PATCH] i386 spinlocks: disable interrupts only if we enabled them\n\n_raw_spin_lock_flags() is entered with interrupts disabled.  If it cannot\nobtain a spinlock, it checks the flags that were passed and re-enables\ninterrupts before spinning if that\u0027s how the flags are set.  When the\nspinlock might be available, it disables interrupts (even if they are\nalready disabled) before trying to get the lock.  Change that so interrupts\nare only disabled if they have been enabled.  This costs nine bytes of\nduplicated spinloop code.\n\nFastpath before patch:\n        jle \u003ckeep looping\u003e      not-taken conditional jump\n        cli                     disable interrupts\n        jmp \u003ctry for lock\u003e      unconditional jump\n\nFastpath after patch, if interrupts were not enabled:\n        jg \u003ctry for lock\u003e       taken conditional branch\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52f4a91afd9316fb4f0f3a77c5ff56b9c98632ea",
      "tree": "b3cd99d7c9474e50dfd819a3feba3ee3d93d9b44",
      "parents": [
        "382dbd07c9cb4f255c28f680996ad819a8ce9bfe"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Thu Mar 23 02:59:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:06 2006 -0800"
      },
      "message": "[PATCH] Fix the imlicit declaration of mtrr_centaur_report_mcr in arch/i386/kernel/cpu/centaur.c\n\narch/i386/kernel/cpu/centaur.c: In function `centaur_mcr_insert\u0027:\narch/i386/kernel/cpu/centaur.c:33: warning: implicit declaration of function `mtrr_centaur_report_mcr\u0027\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "db753bdfc24c31228996799d508ce3bf7cbe3b99",
      "tree": "620f4154d7c297857fa9d9512ccaeb113342c078",
      "parents": [
        "101f12af16fb12f8da8100899a13ee1b1b576a0a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Thu Mar 23 02:59:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:05 2006 -0800"
      },
      "message": "[PATCH] i386: fix uses of user_mode() vs. user_mode_vm()\n\n\u003ecommit 76381fee7e8feb4c22be636aa5d4765dbe4fbf9e\n\u003eAuthor: Vincent Hanquez \u003cvincent.hanquez@cl.cam.ac.uk\u003e\n\u003eDate:   Thu Jun 23 00:08:46 2005 -0700\n\u003e\n\u003e    [PATCH] xen: x86_64: use more usermode macro\n\u003e\n\u003e    Make use of the user_mode macro where it\u0027s possible.  This is useful for Xen\n\u003e    because it will need only to redefine only the macro to a hypervisor call.\n\nI am of the opinion that the above changeset is incomplete, i.e.  it missed\nconverting some previous uses of user_mode to user_mode_vm.  While most of\nthem could be considered just cosmetical, at least the one in die_nmi\ndoesn\u0027t appear to be.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Vincent Hanquez \u003cvincent.hanquez@cl.cam.ac.uk\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "101f12af16fb12f8da8100899a13ee1b1b576a0a",
      "tree": "0bea73d2702ba438e8e82bc8000b498aa50aee6e",
      "parents": [
        "44fd22992cb76dc51c52cf4b8aff1bc7899bb23c"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Thu Mar 23 02:59:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:05 2006 -0800"
      },
      "message": "[PATCH] i386: actively synchronize vmalloc area when registering certain callbacks\n\nRegistering a callback handler through register_die_notifier() is obviously\nprimarily intended for use by modules.  However, the way these currently\nget called it is basically impossible for them to actually be used by\nmodules, as there is, on non-PAE configurationes, a good chance (the larger\nthe module, the better) for the system to crash as a result.\n\nThis is because the callback gets invoked\n\n(a) in the page fault path before the top level page table propagation\n    gets carried out (hence a fault to propagate the top level page table\n    entry/entries mapping to module\u0027s code/data would nest infinitly) and\n\n(b) in the NMI path, where nested faults must absolutely not happen,\n    since otherwise the IRET from the nested fault re-enables NMIs,\n    potentially resulting in nested NMI occurences.\n\nBesides the modular aspect, similar problems would even arise for in-\nkernel consumers of the API if they touched ioremap()ed or vmalloc()ed\nmemory inside their handlers.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99b7de33477882b86d54ce8ecbf90147f9d106d7",
      "tree": "1409719376eff18346aa6f15ad9d2f698d61302e",
      "parents": [
        "8bed51cd17464433a0c77afc8a5150e51d3da37d"
      ],
      "author": {
        "name": "Stas Sergeev",
        "email": "stsp@aknet.ru",
        "time": "Thu Mar 23 02:59:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:05 2006 -0800"
      },
      "message": "[PATCH] x86: early printk handling fixes\n\nThe history is that -mm kernels do not work for me for a few months\nalready.  The things started from crashing somewhere after starting init,\nand for the last month - no boot at all, just \"Uncompressing...  OK,\nbooting kernel\", and silence.  Early console didn\u0027t work too.  With the\nlatest releases this degraded into an infinite stream of the \"Unknown\ninterrupt or fault\" messages.  So today my patience ran out and I started\nto think how can I collect at least some info for the bug-report.  Attached\nis the patch that allows to gather some valueable debug info on the problem\nby making an early console more useable.  I can\u0027t properly test the patch,\nas the kernel still doesn\u0027t boot, so I\u0027ll explain it in details in a hope\nsomeone else can justify the intrusive changes.\n\narch_hooks.h: added prototypes for setup_early_printk() and early_printk().\n\nsetup.c: killed wrong setup_early_printk() prototype.  Moved\nsetup_early_printk() a bit earlier, as it was not \"early enough\" to cover\nthe bug I was fighting with.\n\nearly_printk.c: made it to start printing from the bottom of the screen,\notherwise the messages interfere with the ones of the boot-loader, so you\ncan\u0027t read them.\n\nSigned-off-by: Stas Sergeev \u003cstsp@aknet.ru\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Zwane Mwaikambo \u003czwane@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c63ee5cf7d210b51c2a8243e29988edec2646ed",
      "tree": "7f859d08d8973129859b307beb11a2aaa7268dea",
      "parents": [
        "e5428ede94179ddccaa56308e0f194fa299edbb4"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Thu Mar 23 02:59:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:04 2006 -0800"
      },
      "message": "[PATCH] i386: remove duplicate declaration of mp_bus_id_to_pci_bus\n\nmp_bus_id_to_pci_bus is declared identically twice.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5428ede94179ddccaa56308e0f194fa299edbb4",
      "tree": "baba6926b3176442d9bf8cdcc86a5ed30bac22ba",
      "parents": [
        "54a20f8c5d778ed3603130de4b92f64405228611"
      ],
      "author": {
        "name": "Natalie.Protasevich@unisys.com",
        "email": "Natalie.Protasevich@unisys.com",
        "time": "Thu Mar 23 02:59:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:04 2006 -0800"
      },
      "message": "[PATCH] Compilation fix for ES7000 when no ACPI is specified in config (i386)\n\nES7000 platform code clean up for compilation errors and a warning.\nIfdef\u0027d the ACPI related parts in the ES7000 platform code.  They were\ncausing compile errors in certain configuration (without ACPI defined).  I\nthink this approach would be best (as opposed to Kconfig changes) since it\nonly touches the subarch...\n\nSigned-off-by: \u003cNatalie.Protasevich@unisys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30e931d4092713cecd6b8c2fd70f268efaa6e428",
      "tree": "e7425d6e23720399d4f1a3078e63e03d62ca1d63",
      "parents": [
        "4f88651125e2ca8b106b6f65b65ea45776517bf3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Mar 23 02:59:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:04 2006 -0800"
      },
      "message": "[PATCH] i386: Add a temporary to make put_user more type safe\n\nIn some code I am developing I had occasion to change the type of a\nvariable.  This made the value put_user was putting to user space wrong.\nBut the code continued to build cleanly without errors.\n\nIntroducing a temporary fixes this problem and at least with gcc-3.3.5 does\nnot cause gcc any problems with optimizing out the temporary.  gcc-4.x\nusing SSA internally ought to be even better at optimizing out temporaries,\nso I don\u0027t expect a temporary to become a problem.  Especially because in\nall correct cases the types on both sides of the assignment to the\ntemporary are the same.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a0b5817ad97bb718ab85322759d19a238712b47",
      "tree": "39bd21eb69c4001b99096d96a76a2e5d37904108",
      "parents": [
        "4d7d8c82c181711d28c8336108330a9121f5ef07"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@suse.de",
        "time": "Thu Mar 23 02:59:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:04 2006 -0800"
      },
      "message": "[PATCH] x86: SMP alternatives\n\nImplement SMP alternatives, i.e.  switching at runtime between different\ncode versions for UP and SMP.  The code can patch both SMP-\u003eUP and UP-\u003eSMP.\nThe UP-\u003eSMP case is useful for CPU hotplug.\n\nWith CONFIG_CPU_HOTPLUG enabled the code switches to UP at boot time and\nwhen the number of CPUs goes down to 1, and switches to SMP when the number\nof CPUs goes up to 2.\n\nWithout CONFIG_CPU_HOTPLUG or on non-SMP-capable systems the code is\npatched once at boot time (if needed) and the tables are released\nafterwards.\n\nThe changes in detail:\n\n  * The current alternatives bits are moved to a separate file,\n    the SMP alternatives code is added there.\n\n  * The patch adds some new elf sections to the kernel:\n    .smp_altinstructions\n\tlike .altinstructions, also contains a list\n\tof alt_instr structs.\n    .smp_altinstr_replacement\n\tlike .altinstr_replacement, but also has some space to\n\tsave original instruction before replaving it.\n    .smp_locks\n\tlist of pointers to lock prefixes which can be nop\u0027ed\n\tout on UP.\n    The first two are used to replace more complex instruction\n    sequences such as spinlocks and semaphores.  It would be possible\n    to deal with the lock prefixes with that as well, but by handling\n    them as special case the table sizes become much smaller.\n\n * The sections are page-aligned and padded up to page size, so they\n   can be free if they are not needed.\n\n * Splitted the code to release init pages to a separate function and\n   use it to release the elf sections if they are unused.\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f860591ffb29738cf5539b6fbf27f50dcdeb380",
      "tree": "4265e45c4a79d86a16cd5175a836e8c531be8117",
      "parents": [
        "aed75ff3caafce404d9be7f0c088716375be5279"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Wed Mar 22 00:08:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:03 2006 -0800"
      },
      "message": "[PATCH] Enable mprotect on huge pages\n\n2.6.16-rc3 uses hugetlb on-demand paging, but it doesn_t support hugetlb\nmprotect.\n\nFrom: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\n\n  Remove a test from the mprotect() path which checks that the mprotect()ed\n  range on a hugepage VMA is hugepage aligned (yes, really, the sense of\n  is_aligned_hugepage_range() is the opposite of what you\u0027d guess :-/).\n\n  In fact, we don\u0027t need this test.  If the given addresses match the\n  beginning/end of a hugepage VMA they must already be suitably aligned.  If\n  they don\u0027t, then mprotect_fixup() will attempt to split the VMA.  The very\n  first test in split_vma() will check for a badly aligned address on a\n  hugepage VMA and return -EINVAL if necessary.\n\nFrom: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\n\n  On i386 and x86-64, pte flag _PAGE_PSE collides with _PAGE_PROTNONE.  The\n  identify of hugetlb pte is lost when changing page protection via mprotect.\n  A page fault occurs later will trigger a bug check in huge_pte_alloc().\n\n  The fix is to always make new pte a hugetlb pte and also to clean up\n  legacy code where _PAGE_PRESENT is forced on in the pre-faulting day.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "152475cb0a65ed73301cfbd7d7afab65536643f7",
      "tree": "197571b8d8786a4a0c7b88f107d3cd96c4b4b36d",
      "parents": [
        "9430d58e34ec3861e1ca72f8e49105b227aad327"
      ],
      "author": {
        "name": "Herbert Poetzl",
        "email": "herbert@13thfloor.at",
        "time": "Wed Mar 22 00:07:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:54 2006 -0800"
      },
      "message": "[PATCH] don\u0027t call check_acpi_pci() on x86 with ACPI disabled\n\ncheck_acpi_pci() is called from arch/i386/kernel/setup.c even if\nCONFIG_ACPI is not defined, but the code in include/asm/acpi.h doesn\u0027t\nprovide it in this case.\n\nSigned-off-by: Herbert Pötzl \u003cherbert@13thfloor.at\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "f9262c12c0084ddba445a9a42e98994018e51400"
}
