)]}'
{
  "log": [
    {
      "commit": "4522d58275f124105819723e24e912c8e5bf3cdd",
      "tree": "b92c29014fadffe049c1925676037f0092b8d112",
      "parents": [
        "6cf24f031bc97cb5a7c9df3b6e73c45b628b2b28",
        "64a26a731235b59c9d73bbe82c1f896d57400d37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:59:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:59:11 2006 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)\n  [PATCH] x86-64: Export smp_call_function_single\n  [PATCH] i386: Clean up smp_tune_scheduling()\n  [PATCH] unwinder: move .eh_frame to RODATA\n  [PATCH] unwinder: fully support linker generated .eh_frame_hdr section\n  [PATCH] x86-64: don\u0027t use set_irq_regs()\n  [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq\n  [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM\n  [PATCH] i386: replace kmalloc+memset with kzalloc\n  [PATCH] x86-64: remove remaining pc98 code\n  [PATCH] x86-64: remove unused variable\n  [PATCH] x86-64: Fix constraints in atomic_add_return()\n  [PATCH] x86-64: fix asm constraints in i386 atomic_add_return\n  [PATCH] x86-64: Correct documentation for bzImage protocol v2.05\n  [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code\n  [PATCH] x86-64: Fix numaq build error\n  [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn\u0027t a userspace header\n  [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder\n  [PATCH] x86-64: Clarify error message in GART code\n  [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)\n  [PATCH] x86-64: Remove unwind stack pointer alignment forcing again\n  ...\n\nFixed conflict in include/linux/uaccess.h manually\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4b522d7ef144fb2ad6a4cb23d9cb5ec154be8bc",
      "tree": "707cbc03cd332aa87eff7ff33d85ee3a8fd6ac95",
      "parents": [
        "d263b213577a1e8f166b0a7212d85175e36d6c19"
      ],
      "author": {
        "name": "Duncan Sands",
        "email": "baldrick@free.fr",
        "time": "Thu Dec 07 02:14:13 2006 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Thu Dec 07 02:14:13 2006 +0100"
      },
      "message": "[PATCH] x86-64: fix asm constraints in i386 atomic_add_return\n\nSince v-\u003ecounter is both read and written, it should be an output as well\nas an input for the asm.  The current code only gets away with this because\ncounter is volatile.  Also, according to Documents/atomic_ops.txt,\natomic_add_return should provide a memory barrier, in particular a compiler\nbarrier, so the asm should be marked as clobbering memory.\n\nTest case:\n\n#include \u003cstdio.h\u003e\n\ntypedef struct { int counter; } atomic_t; /* NB: no \"volatile\" */\n\n#define ATOMIC_INIT(i)\t{ (i) }\n\n#define atomic_read(v)\t\t((v)-\u003ecounter)\n\nstatic __inline__ int atomic_add_return(int i, atomic_t *v)\n{\n\tint __i \u003d i;\n\n\t__asm__ __volatile__(\n\t\t\"lock; xaddl %0, %1;\"\n\t\t:\"\u003dr\"(i)\n\t\t:\"m\"(v-\u003ecounter), \"0\"(i));\n/*\t__asm__ __volatile__(\n\t\t\"lock; xaddl %0, %1\"\n\t\t:\"+r\" (i), \"+m\" (v-\u003ecounter)\n\t\t: : \"memory\"); */\n\treturn i + __i;\n}\n\nint main (void) {\n\tatomic_t a \u003d ATOMIC_INIT(0);\n\tint x;\n\n\tx \u003d atomic_add_return (1, \u0026a);\n\tif ((x!\u003d1) || (atomic_read(\u0026a)!\u003d1))\n\t\tprintf(\"fail: %i, %i\\n\", x, atomic_read(\u0026a));\n}\n\nSigned-off-by: Duncan Sands \u003cbaldrick@free.fr\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "f9e9dcb38f5106fa8cdac04a9e967d5487f1cd20",
      "tree": "8d1cbf17b9b54eacde5a7bf7adf4d5ba6cb119dc",
      "parents": [
        "16afea0255cf6963eb924d4334cdb5acb9074581"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 14:42:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 14:42:57 2006 -0800"
      },
      "message": "x86[-64]:Remove \u0027volatile\u0027 from atomic_t\n\nAny code that relies on the volatile would be a bug waiting to happen\nanyway.\n\nDon\u0027t encourage people to think that putting \u0027volatile\u0027 on data\nstructures somehow fixes problems.  We should always use proper locking\n(and other serialization) techniques.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b862f3b099f3ea672c7438c0b282ce8201d39dfc",
      "tree": "62f8cc2dc2b1c9abb6364b16f3b218a04d121f3e",
      "parents": [
        "e2a3d40258fe20d205f8ed592e1e2c0d5529c2e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sat Jul 08 15:24:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sat Jul 08 15:24:18 2006 -0700"
      },
      "message": "i386: improve and correct inline asm memory constraints\n\nUse \"+m\" rather than a combination of \"\u003dm\" and \"m\" for improved clarity\nand consistency.\n\nThis also fixes some inlines that incorrectly didn\u0027t tell the compiler\nthat they read the old value at all, potentially causing the compiler to\ngenerate bogus code.  It appear that all of those potential bugs were\nhidden by the use of extra \"volatile\" specifiers on the data structures\nin question, though.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.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": "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": "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": "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": "da9bb1d27b21cb24cbb6a2efb5d3c464d357a01e",
      "tree": "016b66985a651d071d3873e74b115108ddf0b3f5",
      "parents": [
        "2f768af73fea4c70f9046388a7ff648ad11f028e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Jan 18 17:44:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:31 2006 -0800"
      },
      "message": "[PATCH] EDAC: core EDAC support code\n\nThis is a subset of the bluesmoke project core code, stripped of the NMI work\nwhich isn\u0027t ready to merge and some of the \"interesting\" proc functionality\nthat needs reworking or just has no place in kernel.  It requires no core\nkernel changes except the added scrub functions already posted.\n\nThe goal is to merge further functionality only after the core code is\naccepted and proven in the base kernel, and only at the point the upstream\nextras are really ready to merge.\n\nFrom: doug thompson \u003cnorsk5@xmission.com\u003e\n\n  This converts EDAC to sysfs and is the final chunk neccessary before EDAC\n  has a stable user space API and can be considered for submission into the\n  base kernel.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: doug thompson \u003cnorsk5@xmission.com\u003e\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "715b49ef2de6fcead0776d9349071670282faf65",
      "tree": "d09b77c804aba3b191dc0ceb294387cf730ede4b",
      "parents": [
        "3213e913b0d6baeb28aa1affbdd4bfa7efedc35f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Jan 18 17:44:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:30 2006 -0800"
      },
      "message": "[PATCH] EDAC: atomic scrub operations\n\nEDAC requires a way to scrub memory if an ECC error is found and the chipset\ndoes not do the work automatically.  That means rewriting memory locations\natomically with respect to all CPUs _and_ bus masters.  That means we can\u0027t\nuse atomic_add(foo, 0) as it gets optimised for non-SMP\n\nThis adds a function to include/asm-foo/atomic.h for the platforms currently\nsupported which implements a scrub of a mapped block.\n\nIt also adjusts a few other files include order where atomic.h is included\nbefore types.h as this now causes an error as atomic_scrub uses u32.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ffbf670f5cd50501a34a5187981460da2216071e",
      "tree": "f2cd9eeeb59839d15feddf906310bb375474c573",
      "parents": [
        "f17578decc40df8fceff82b106582e30bdfb3189"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:17 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:17 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, add atomic_xchg() to all arches\n\nadd atomic_xchg() to all the architectures. Needed by the new mutex code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "d3cb487149bd706aa6aeb02042332a450978dc1c",
      "tree": "69051e0f9853314cf275e4e800faad950e3053c3",
      "parents": [
        "070f80326a215d8e6c4fd6f175e28eb446c492bc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:29 2006 -0800"
      },
      "message": "[PATCH] atomic_long_t \u0026 include/asm-generic/atomic.h V2\n\nSeveral counters already have the need to use 64 atomic variables on 64 bit\nplatforms (see mm_counter_t in sched.h).  We have to do ugly ifdefs to fall\nback to 32 bit atomic on 32 bit platforms.\n\nThe VM statistics patch that I am working on will also make more extensive\nuse of atomic64.\n\nThis patch introduces a new type atomic_long_t by providing definitions in\nasm-generic/atomic.h that works similar to the c \"long\" type.  Its 32 bits\non 32 bit platforms and 64 bits on 64 bit platforms.\n\nAlso cleans up the determination of the mm_counter_t in sched.h.\n\nSigned-off-by: 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": "8426e1f6af0fd7f44d040af7263750c5a52f3cc3",
      "tree": "827bd2588c2b73d11cea6869de8ff42dba134375",
      "parents": [
        "4a6dae6d382e9edf3ff440b819e554ed706359bc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:07:25 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] atomic: inc_not_zero\n\nIntroduce an atomic_inc_not_zero operation.  Make this a special case of\natomic_add_unless because lockless pagecache actually wants\natomic_inc_not_negativeone due to its offset refcount.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "4a6dae6d382e9edf3ff440b819e554ed706359bc",
      "tree": "2945a5095973e2ecf05b503d6deb859083045b8e",
      "parents": [
        "53e86b91b7ae66d4c2757195cbd42e00d9199cf2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:07:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] atomic: cmpxchg\n\nIntroduce an atomic_cmpxchg operation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "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"
    }
  ]
}
