)]}'
{
  "log": [
    {
      "commit": "c41917df8a1adde34864116ce2231a7fe308d2ff",
      "tree": "f0dd28ffef93117bacfbf8657ede880071de8e5d",
      "parents": [
        "ce8c2293be47999584908069e78bf6d94beadc53"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Jul 19 21:28:35 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 19 21:28:35 2007 +0200"
      },
      "message": "[PATCH] sched: sched_cacheflush is now unused\n\nSince Ingo\u0027s recent scheduler rewrite which was merged as commit\n0437e109e1841607f2988891eaa36c531c6aa6ac sched_cacheflush is unused.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a436ed9c5106b41606cbb55ab3b28389fe8ae04f",
      "tree": "b8df0bde6d7eb2808c37da815d8857396ee1eaf1",
      "parents": [
        "5dc12ddee93d63d7107cbbf70db23476d7b30e43"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue May 08 00:35:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:20 2007 -0700"
      },
      "message": "x86: create asm/cmpxchg.h\n\ni386:\n\n  Rearrange the cmpxchg code to allow atomic.h to get it without needing to\n  include system.h.  This kills warnings in the UML build from atomic.h about\n  implicit declarations of cmpxchg symbols.  The i386 build presumably isn\u0027t\n  seeing this because a separate inclusion of system.h is covering it over.\n\n  The cmpxchg stuff is moved to asm-i386/cmpxchg.h, with an include left in\n  system.h for the benefit of generic code which expects cmpxchg there.\n\n  Meanwhile, atomic.h includes cmpxchg.h.\n\n  This causes no noticable damage to the i386 build.\n\nx86_64:\n\n  Move cmpxchg into its own header.  atomic.h already included system.h, so\n  this is changed to include cmpxchg.h.\n\n  This is purely cleanup - it\u0027s not fixing any warnings - so if the x86_64\n  system.h isn\u0027t considered as cleanup-worthy as i386, then this can be\n  dropped.\n\n  It causes no noticable damage to the x86_64 build.\n\numl:\n\n  The i386 and x86_64 cmpxchg patches require an asm-um/cmpxchg.h for the\n  UML build.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dc12ddee93d63d7107cbbf70db23476d7b30e43",
      "tree": "a0c53f8a4d826e73213268c87657ae933d7634b3",
      "parents": [
        "c343c14aec1e70a51575e3c29391ee86ae7dbeb2"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue May 08 00:34:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:20 2007 -0700"
      },
      "message": "Remove tas()\n\ntas() has no users, so get rid of it.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a075227948636e10aa2cc2d8725fbbab27681d4a",
      "tree": "6b459363916c4db4cc62a293f122f4c9172b1d6a",
      "parents": [
        "f43f7b46eb101f50950cfcead0cb0b7a9c4f6823"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Tue May 08 00:34:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:20 2007 -0700"
      },
      "message": "local_t: i386 extension\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90a0a06aa81692028864c21f981905fda46b1208",
      "tree": "516528b328d5288ee057d1eff5491e2ba1b49af1",
      "parents": [
        "52de74dd3994e165ef1b35c33d54655a6400e30c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:10 2007 +0200"
      },
      "message": "[PATCH] i386: rationalize paravirt wrappers\n\nparavirt.c used to implement native versions of all low-level\nfunctions.  Far cleaner is to have the native versions exposed in the\nheaders and as inline native_XXX, and if !CONFIG_PARAVIRT, then simply\n#define XXX native_XXX.\n\nThere are several nice side effects:\n\n1) write_dt_entry() now takes the correct \"struct Xgt_desc_struct *\"\n   not \"void *\".\n\n2) load_TLS is reintroduced to the for loop, not manually unrolled\n   with a #error in case the bounds ever change.\n\n3) Macros become inlines, with type checking.\n\n4) Access to the native versions is trivial for KVM, lguest, Xen and\n   others who might want it.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3561b7fa0fb0fc583bab0eeda32bec9e4c4056d",
      "tree": "39d835965878622d052ef3b3c7b759d83b6bc327",
      "parents": [
        "db91b882aabd0b3b55a87cbfb344f2798bb740b4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 07 02:14:07 2006 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Thu Dec 07 02:14:07 2006 +0100"
      },
      "message": "[PATCH] paravirt: header and stubs for paravirtualisation\n\nCreate a paravirt.h header for all the critical operations which need to be\nreplaced with hypervisor calls, and include that instead of defining native\noperations, when CONFIG_PARAVIRT.\n\nThis patch does the dumbest possible replacement of paravirtualized\ninstructions: calls through a \"paravirt_ops\" structure.  Currently these are\nfunction implementations of native hardware: hypervisors will override the ops\nstructure with their own variants.\n\nAll the pv-ops functions are declared \"fastcall\" so that a specific\nregister-based ABI is used, to make inlining assember easier.\n\nAnd:\n\n+From: Andy Whitcroft \u003capw@shadowen.org\u003e\n\nThe paravirt ops introduce a \u0027weak\u0027 attribute onto memory_setup().\nCode ordering leads to the following warnings on x86:\n\n    arch/i386/kernel/setup.c:651: warning: weak declaration of\n                `memory_setup\u0027 after first use results in unspecified behavior\n\nMove memory_setup() to avoid this.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\n"
    },
    {
      "commit": "027a8c7e6067a1bcdef6775d1b1c08729dfbae51",
      "tree": "8c791bb8820d6c0734aded634a045369dd3347cc",
      "parents": [
        "05f4a3ec94281347e05c81eafefcfe5ea545c94c"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Mon Sep 25 23:32:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:55 2006 -0700"
      },
      "message": "[PATCH] x86: implement always-locked bit ops, for memory shared with an SMP hypervisor\n\nAdd \"always lock\u0027d\" implementations of set_bit, clear_bit and change_bit and\nthe corresponding test_and_ functions.  Also add \"always lock\u0027d\"\nimplementation of cmpxchg.  These give guaranteed strong synchronisation and\nare required for non-SMP kernels running on an SMP hypervisor.\n\nSigned-off-by: Ian Pratt \u003cian.pratt@xensource.com\u003e\nSigned-off-by: Christian Limpach \u003cChristian.Limpach@cl.cam.ac.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47a5c6fa0e204a2b63309c648bb2fde36836c826",
      "tree": "688b6c12c72fed720dc4a047f310cd292e88a6f1",
      "parents": [
        "1d19f176a2884d31c4fe2c7018349ff884a819b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 18 16:20:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 18 16:20:40 2006 -0700"
      },
      "message": "x86: save/restore eflags in context switch\n\n(And reset it on new thread creation)\n\nIt turns out that eflags is important to save and restore not just\nbecause of iopl, but due to the magic bits like the NT bit, which we\ndon\u0027t want leaking between different threads.\n\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52393ccc0a53c130f31fbbdb8b40b2aadb55ee72",
      "tree": "9f0bcb3ed29e9f7dbdb1cb8692cdbdfd7462c45d",
      "parents": [
        "f92213bae062cf88c099fbfd3040fef512b19905"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 14 16:05:03 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:56:14 2006 -0700"
      },
      "message": "[PATCH] remove set_wmb - arch removal\n\nset_wmb should not be used in the kernel because it just confuses the\ncode more and has no benefit.  Since it is not currently used in the\nkernel this patch removes it so that new code does not include it.\n\nAll archs define set_wmb(var, value) to do { var \u003d value; wmb(); }\nwhile(0) except ia64 and sparc which use a mb() instead.  But this is\nstill moot since it is not used anyway.\n\nHasn\u0027t been tested on any archs but x86 and x86_64 (and only compiled\ntested)\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b43c7cec6bf9558336fb033d1217fc765d259c47",
      "tree": "a1176161bcd7dcdf7a4b198402f45778ed5a5834",
      "parents": [
        "e47f31787dee5bf57453e18edefff56e17fa44f9"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Wed Jul 12 16:41:15 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 13 07:48:28 2006 -0700"
      },
      "message": "[PATCH] i386: system.h: remove extra semicolons and fix order\n\ninclude/asm-i386/system.h has trailing semicolons in some of the\nmacros that cause legitimate code to fail compilation, so remove\nthem. Also remove extra blank lines within one group of macros.\n\nAnd put stts() and clts() back together; they got separated somehow.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55f327fa9e876758491a82af7491104f1cc3fc4d",
      "tree": "79394c094de1c08ada272865ea9eae71ad798123",
      "parents": [
        "55df314fbdb44c20fa7a5112d16546ee970c1d76"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: irqtrace subsystem, i386 support\n\nAdd irqflags-tracing support to i386.\n\nSigned-off-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": "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": "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": "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": "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": "911b0ad25d167fede6aadc05065b414ec7ab5086",
      "tree": "8e85fd8a70a75aa8b2d18b89b2ebd8fc843c361c",
      "parents": [
        "b53e8f68e07fb8f3ba9ab1812c9c186c09a50c16"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Feb 04 23:28:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:54 2006 -0800"
      },
      "message": "[PATCH] Fix \"value computed is not used\" compile warnings with gcc-4.1\n\nFix gcc4.1 compile warnings \"value computed is not used\" with\nset_current_state() and set_task_state() on i386/SMP and x86-64.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "4dc7a0bbeb6882ad665e588e82fabe5bb4645f2f",
      "tree": "8c034f802157d7f449e76f45086c0e13e0ea4711",
      "parents": [
        "c6b44d10f25e5a93eca5135b686a35775c63546e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 12 01:05:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:49 2006 -0800"
      },
      "message": "[PATCH] sched: add cacheflush() asm\n\nAdd per-arch sched_cacheflush() which is a write-back cacheflush used by\nthe migration-cost calibration code at bootup time.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fe9fe3c6f9a1ae7aa224bb7a66eb9aad9e4abef",
      "tree": "ec120ce6e72700fe49720127bc76228c51bd406b",
      "parents": [
        "3fae1c37eea98097de34ba665796fea93b29f4aa"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Fri Jan 06 00:11:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:35 2006 -0800"
      },
      "message": "[PATCH] x86: Pnp byte granularity\n\nThe one remaining caller of set_limit, the PnP BIOS code, calls into the PnP\nBIOS, passing kernel parameters in and out.  These parameteres may be passed\nfrom arbitrary kernel virtual memory, so they deserve strict protection to\nstop a bad BIOS from smashing beyond the object size.\n\nUnfortunately, the use of set_limit was badly botching this by setting the\nlimit in terms of pages, when it really should have byte granularity.\n\nWhen doing this, I discovered my BIOS had the buggy code during the \"get\nsystem device node\" call:\n\n mov ax, es:[bx]\n\nWhich is harmless, but has a trivial workaround.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3fae1c37eea98097de34ba665796fea93b29f4aa",
      "tree": "bc31e7e6a3b88f422a70c1d936a806625dcab137",
      "parents": [
        "99022c4695d3f45fcf7f3827aa46dd2d9e53e365"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Fri Jan 06 00:11:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:35 2006 -0800"
      },
      "message": "[PATCH] x86: Deprecate obsolete ldt accessors\n\nOld accessors to fetch LDT descriptors are unused and outdated and in the\nwrong header file.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff6e8c0d5e47f0ceeebde86ec2f5919dbd5beb67",
      "tree": "f7e50b5962b7b38ca025c0bf9ee48b618424cc6b",
      "parents": [
        "eb05c3249a8e8a675e79d221f4a0874dc10ec903"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Fri Jan 06 00:11:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:34 2006 -0800"
      },
      "message": "[PATCH] x86: Cr4 is valid on some 486s\n\nSo some 486 processors do have CR4 register.  Allow them to present it in\nregister dumps by using the old fault technique rather than testing processor\nfamily.\n\nThanks to Maciej for noticing this.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53e86b91b7ae66d4c2757195cbd42e00d9199cf2",
      "tree": "80c44aeb046ac91a5bc7465da91a7b2519c53096",
      "parents": [
        "dbdf65b1b7f8ec48bda1604cfea7ac09ce583d6b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:07:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:15 2005 -0800"
      },
      "message": "[PATCH] i386: generic cmpxchg\n\n- Make cmpxchg generally available on the i386 platform.\n\n- Provide emulation of cmpxchg suitable for uniprocessor if built and run on\n  386.\n\nFrom: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n- Cut down patch and small style changes.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8896fab35e62aa748a5ce62ac773508e51f10be1",
      "tree": "bb8f2dce7b5d0aa6ffe68aa6b97920d2ce32e164",
      "parents": [
        "dacb16b1a034fa7a0b868ee30758119fbfd90bc1"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Sun Oct 30 14:59:27 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:11 2005 -0800"
      },
      "message": "[PATCH] x86: cmpxchg improvements\n\nThis adjusts i386\u0027s cmpxchg patterns so that\n\n- for word and long cmpxchg-es the compiler can utilize all possible\n  registers\n\n- cmpxchg8b gets disabled when the minimum specified hardware architectur\n  doesn\u0027t support it (like was already happening for the byte, word, and\n  long ones).\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": "a5201129307f414890f9a4410e38da205f5d7359",
      "tree": "ad70c5f1d3b336ef5665a7fd5ad8707aaec23847",
      "parents": [
        "0998e4228aca046fbd747c3fed909791d52e88eb"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Sat Sep 03 15:56:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:12 2005 -0700"
      },
      "message": "[PATCH] x86: make IOPL explicit\n\nThe pushf/popf in switch_to are ONLY used to switch IOPL.  Making this\nexplicit in C code is more clear.  This pushf/popf pair was added as a\nbugfix for leaking IOPL to unprivileged processes when using\nsysenter/sysexit based system calls (sysexit does not restore flags).\n\nWhen requesting an IOPL change in sys_iopl(), it is just as easy to change\nthe current flags and the flags in the stack image (in case an IRET is\nrequired), but there is no reason to force an IRET if we came in from the\nSYSENTER path.\n\nThis change is the minimal solution for supporting a paravirtualized Linux\nkernel that allows user processes to run with I/O privilege.  Other\nsolutions require radical rewrites of part of the low level fault / system\ncall handling code, or do not fully support sysenter based system calls.\n\nUnfortunately, this added one field to the thread_struct.  But as a bonus,\non P4, the fastest time measured for switch_to() went from 312 to 260\ncycles, a win of about 17% in the fast case through this performance\ncritical path.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4d37e7e3fd851428dede4d05d3e69d03795a744a",
      "tree": "f830928a0baf81f462bc9176dacbaad2dac2bb65",
      "parents": [
        "245067d1674d451855692fcd4647daf9fd47f82d"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Sat Sep 03 15:56:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:11 2005 -0700"
      },
      "message": "[PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management\n\ni386 inline assembler cleanup.\n\nThis change encapsulates descriptor and task register management.  Also,\nit is possible to improve assembler generation in two cases; savesegment\nmay store the value in a register instead of a memory location, which\nallows GCC to optimize stack variables into registers, and MOV MEM, SEG\nis always a 16-bit write to memory, making the casting in math-emu\nunnecessary.\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4bb0d3ec3e5b1e9e2399cdc641b3b6521ac9cdaa",
      "tree": "5e8d7646f5c6a2cec990b6d591f230d496b20664",
      "parents": [
        "2a0694d15d55d0deed928786a6393d5e45e37d76"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Sat Sep 03 15:56:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:11 2005 -0700"
      },
      "message": "[PATCH] i386: inline asm cleanup\n\ni386 Inline asm cleanup.  Use cr/dr accessor functions.\n\nAlso, a potential bugfix.  Also, some CR accessors really should be volatile.\nReads from CR0 (numeric state may change in an exception handler), writes to\nCR4 (flipping CR4.TSD) and reads from CR2 (page fault) prevent instruction\nre-ordering.  I did not add memory clobber to CR3 / CR4 / CR0 updates, as it\nwas not there to begin with, and in no case should kernel memory be clobbered,\nexcept when doing a TLB flush, which already has memory clobber.\n\nI noticed that page invalidation does not have a memory clobber.  I can\u0027t find\na bug as a result, but there is definitely a potential for a bug here:\n\n#define __flush_tlb_single(addr) \\\n\t__asm__ __volatile__(\"invlpg %0\": :\"m\" (*(char *) addr))\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd51f666fa591294bd7462447512666e61c56ea0",
      "tree": "0addf0006900152975c38bd75fdfd238c9179013",
      "parents": [
        "d5b63d78f1e75f6c6f04862dfb2f2a4aeffafd4c"
      ],
      "author": {
        "name": "H. J. Lu",
        "email": "hjl@lucon.org",
        "time": "Sun May 01 08:58:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:48 2005 -0700"
      },
      "message": "[PATCH] i386/x86_64 segment register access update\n\nThe new i386/x86_64 assemblers no longer accept instructions for moving\nbetween a segment register and a 32bit memory location, i.e.,\n\n        movl (%eax),%ds\n        movl %ds,(%eax)\n\nTo generate instructions for moving between a segment register and a\n16bit memory location without the 16bit operand size prefix, 0x66,\n\n        mov (%eax),%ds\n        mov %ds,(%eax)\n\nshould be used. It will work with both new and old assemblers. The\nassembler starting from 2.16.90.0.1 will also support\n\n        movw (%eax),%ds\n        movw %ds,(%eax)\n\nwithout the 0x66 prefix. I am enclosing patches for 2.4 and 2.6 kernels\nhere. The resulting kernel binaries should be unchanged as before, with\nold and new assemblers, if gcc never generates memory access for\n\n               unsigned gsindex;\n               asm volatile(\"movl %%gs,%0\" : \"\u003dg\" (gsindex));\n\nIf gcc does generate memory access for the code above, the upper bits\nin gsindex are undefined and the new assembler doesn\u0027t allow it.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
