)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "f9262c12c0084ddba445a9a42e98994018e51400",
      "tree": "b54948e654e68c1e5263d955c76bf3a41dfa14da",
      "parents": [
        "979ce809bab37cf438f0db22bfa732d01a84a8c2"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Mar 08 17:57:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 18:10:31 2006 -0800"
      },
      "message": "[PATCH] i386: port ATI timer fix from x86_64 to i386 II\n\nATI chipsets tend to generate double timer interrupts for the local APIC\ntimer when both the 8254 and the IO-APIC timer pins are enabled.  This is\nbecause they route it to both and the result is anded together and the CPU\nends up processing it twice.\n\nThis patch changes check_timer to disable the 8254 routing for interrupt 0.\n\nI think it would be safe on all chipsets actually (i tested it on a couple\nand it worked everywhere) and Windows seems to do it in a similar way, but\nto be conservative this patch only enables this mode on ATI (and adds\noptions to enable/disable too)\n\nPorted over from a similar x86-64 change.\n\nI reused the ACPI earlyquirk infrastructure for the ATI bridge check, but\ntweaked it a bit to work even without ACPI.\n\nInspired by a patch from Chuck Ebbert, but redone.\n\nCc: Chuck Ebbert \u003c76306.1226@compuserve.com\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"
    },
    {
      "commit": "2b932f6cf052920fb3a6281499e08209b08f5086",
      "tree": "c2710e09dd40ee9733bcd77234d6373acec741d2",
      "parents": [
        "1e275d406bf6b88e4de6925cf594b64bb2ec49bc"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Fri Feb 24 13:04:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 24 14:31:38 2006 -0800"
      },
      "message": "[PATCH] x86: fix broken SMP boot sequence\n\nRecent GDT changes broke the SMP boot sequence if the booting CPU is\nnumbered anything other than zero.  There\u0027s also a subtle source of error\nin that the boot time CPU now uses cpu_gdt_table (which is actually the GDT\nfor booting CPUs in head.S).  This patch fixes both problems by making GDT\ndescriptors themselves allocated from a per_cpu area and switching to them\nin cpu_init(), which now means that cpu_gdt_table is exclusively used for\nbooting CPUs again.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Matt Tolentino \u003cmetolent@snoqualmie.dp.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "124d90be62343f71bbb7a6b4a907b5584181e6d5",
      "tree": "6e9a53f6bee52bb551724ec29e7710a656fbb187",
      "parents": [
        "d1521260f57d70d0ba86d2a309ec1ce7979be2fc"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Fri Feb 24 13:04:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 24 14:31:37 2006 -0800"
      },
      "message": "[PATCH] Kprobes causes NX protection fault on i686 SMP\n\nFix a problem seen on i686 machine with NX support where the instruction\ncould not be single stepped because of NX bit set on the memory pages\nallocated by kprobes module.  This patch provides allocation of instruction\nsolt so that the processor can execute the instruction from that location\nsimilar to x86_64 architecture.  Thanks to Bibo and Masami for testing this\npatch.\n\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cfe91f9ce297e23e6fbdf61c02bdd8ab9af7c8a8",
      "tree": "55ce8c6305fc70b1b544ce7365abd6054e9b5f61",
      "parents": [
        "d30864392823d5f38002fa32950689e651ee11da"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Fri Feb 17 03:16:55 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 08:55:21 2006 -0800"
      },
      "message": "[PATCH] i386: fix singlestepping though a syscall\n\nDo not mask TIF_SINGLESTEP bit in _TIF_WORK_MASK. Masking this stopped\ndo_notify_resume() from being called when it should have been.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5f6164f3092832e0d9b12eed52e09a76bf39c64a",
      "tree": "507043c3eafa00ad7241f1102c860e486f8dc544",
      "parents": [
        "06fed33849c13af637c4d09e9ba27828fac9edd5"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@mellanox.co.il",
        "time": "Wed Feb 15 15:17:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 15 15:32:22 2006 -0800"
      },
      "message": "[PATCH] add asm-generic/mman.h\n\nMake new MADV_REMOVE, MADV_DONTFORK, MADV_DOFORK consistent across all\narches.  The idea is to make it possible to use them portably even before\ndistros include them in libc headers.\n\nMove common flags to asm-generic/mman.h\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@mellanox.co.il\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f822566165dd46ff5de9bf895cfa6c51f53bb0c4",
      "tree": "e052f406d5a14140d17f76dc8914d33bbc8e5f1d",
      "parents": [
        "8861da31e3b3e3df7b05e7b157230de3d486e53b"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@mellanox.co.il",
        "time": "Tue Feb 14 13:53:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] madvise MADV_DONTFORK/MADV_DOFORK\n\nCurrently, copy-on-write may change the physical address of a page even if the\nuser requested that the page is pinned in memory (either by mlock or by\nget_user_pages).  This happens if the process forks meanwhile, and the parent\nwrites to that page.  As a result, the page is orphaned: in case of\nget_user_pages, the application will never see any data hardware DMA\u0027s into\nthis page after the COW.  In case of mlock\u0027d memory, the parent is not getting\nthe realtime/security benefits of mlock.\n\nIn particular, this affects the Infiniband modules which do DMA from and into\nuser pages all the time.\n\nThis patch adds madvise options to control whether memory range is inherited\nacross fork.  Useful e.g.  for when hardware is doing DMA from/into these\npages.  Could also be useful to an application wanting to speed up its forks\nby cutting large areas out of consideration.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@mellanox.co.il\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\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": "8b09fb34513225d87d511c7e8f29c0fd3cf860e0",
      "tree": "3742919b1f14cd0edd2c6584703ebcc8b9ff134e",
      "parents": [
        "5ac5f9d1ce8492163dbde5d357dc5d03becf7e36"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Tue Feb 14 13:53:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] fix x86 topology export in sysfs for subarchitectures\n\nThe correct way to export hyperthreading based functions is to predicate\nthem on CONFIG_X86_HT.  Without this, the topology exporting patch breaks\nthe build on all non-PC x86 subarchitectures.\n\nSigned-off-by: 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": "cff2b760096d1e6feaa31948e7af4abbefe47822",
      "tree": "9bd6d2796ffb8c6611ca06b74c6349f8f1289ce2",
      "parents": [
        "25bf368b3d98668c5d5f38e2201d8bca16e52680"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Sat Feb 11 17:55:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:10 2006 -0800"
      },
      "message": "[PATCH] fstatat64 support\n\nThe *at patches introduced fstatat and, due to inusfficient research, I\nused the newfstat functions generally as the guideline.  The result is that\non 32-bit platforms we don\u0027t have all the information needed to implement\nfstatat64.\n\nThis patch modifies the code to pass up 64-bit information if\n__ARCH_WANT_STAT64 is defined.  I renamed the syscall entry point to make\nthis clear.  Other archs will continue to use the existing code.  On x86-64\nthe compat code is implemented using a new sys32_ function.  this is what\nis done for the other stat syscalls as well.\n\nThis patch might break some other archs (those which define\n__ARCH_WANT_STAT64 and which already wired up the syscall).  Yet others\nmight need changes to accomodate the compatibility mode.  I really don\u0027t\nwant to do that work because all this stat handling is a mess (more so in\nglibc, but the kernel is also affected).  It should be done by the arch\nmaintainers.  I\u0027ll provide some stand-alone test shortly.  Those who are\neager could compile glibc and run \u0027make check\u0027 (no installation needed).\n\nThe patch below has been tested on x86 and x86-64.\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\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": "2da436e00f9a5fdd0fb6b31e4b2b2ba82e8f5ab8",
      "tree": "bce3223b55b14a995a0c60bc1403376fab3c6c97",
      "parents": [
        "a016f3389c06606dd80e687942ff3c71d41823c4"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:59:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: system call registration for i386\n\nRegisters system call for the i386 architecture.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\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": "69dcc99199fe29b0a29471a3488d39d9d33b25fc",
      "tree": "4232ad9a782dee6abfe7fa20c95a49249195de8f",
      "parents": [
        "66ac5a294db70aa377c0d7bbdb0c4e3ef2349b7b"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin.zhang@intel.com",
        "time": "Fri Feb 03 03:04:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:09 2006 -0800"
      },
      "message": "[PATCH] Export cpu topology in sysfs\n\nThe patch implements cpu topology exportation by sysfs.\n\nItems (attributes) are similar to /proc/cpuinfo.\n\n1) /sys/devices/system/cpu/cpuX/topology/physical_package_id:\n\trepresent the physical package id of  cpu X;\n2) /sys/devices/system/cpu/cpuX/topology/core_id:\n\trepresent the cpu core id to cpu X;\n3) /sys/devices/system/cpu/cpuX/topology/thread_siblings:\n\trepresent the thread siblings to cpu X in the same core;\n4) /sys/devices/system/cpu/cpuX/topology/core_siblings:\n\trepresent the thread siblings to cpu X in the same physical package;\n\nTo implement it in an architecture-neutral way, a new source file,\ndriver/base/topology.c, is to export the 5 attributes.\n\nIf one architecture wants to support this feature, it just needs to\nimplement 4 defines, typically in file include/asm-XXX/topology.h.\nThe 4 defines are:\n#define topology_physical_package_id(cpu)\n#define topology_core_id(cpu)\n#define topology_thread_siblings(cpu)\n#define topology_core_siblings(cpu)\n\nThe type of **_id is int.\nThe type of siblings is cpumask_t.\n\nTo be consistent on all architectures, the 4 attributes should have\ndeafult values if their values are unavailable. Below is the rule.\n\n1) physical_package_id: If cpu has no physical package id, -1 is the\ndefault value.\n\n2) core_id: If cpu doesn\u0027t support multi-core, its core id is 0.\n\n3) thread_siblings: Just include itself, if the cpu doesn\u0027t support\nHT/multi-thread.\n\n4) core_siblings: Just include itself, if the cpu doesn\u0027t support\nmulti-core and HT/Multi-thread.\n\nSo be careful when declaring the 4 defines in include/asm-XXX/topology.h.\n\nIf an attribute isn\u0027t defined on an architecture, it won\u0027t be exported.\n\nThank Nathan, Greg, Andi, Paul and Venki.\n\nThe patch provides defines for i386/x86_64/ia64.\n\nSigned-off-by: Zhang, Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59ed2f59e4ea6a32f9591e378da7935f713a7000",
      "tree": "a1276a611dbb1bc44685ef8af363e99603e60047",
      "parents": [
        "9ad11ab48b1ad618bf47076e9e579f267f5306c2",
        "b8e4d89357fc434618a59c1047cac72641191805"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 22:06:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 22:06:15 2006 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n"
    },
    {
      "commit": "975b3d3d5b983eb60706d35f0d24cd19f6badabf",
      "tree": "39d55db9236ef1acef4e955617296217c3a9fc02",
      "parents": [
        "4940fb441275d654cff7d0f7708f91bd8435a85a"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "lkml@rtr.ca",
        "time": "Wed Feb 01 03:06:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:21 2006 -0800"
      },
      "message": "[PATCH] VMSPLIT config options\n\nEnable selection of different user/kernel VM splits for i386, including an\noptimized mode for 1GB physical RAM, which gives the kernel a direct (non\nHIGHMEM) mapping to the entire 1GB rather than just the first 896MB.\n\nThere is a similarly a similarly optimized mode for machines with exactly 2GB\nof physical RAM.\n\nThis can speed up the kernel by avoiding having to create/destroy temporary\nHIGHMEM mappings, and by not having to include HIGHMEM support at all on such\nmachines.  The flip side is that there\u0027s less virtual addressing left for\nuserspace in these alternatives, and some binary-only kernel modules may\nmisbehave unless rebuilt with the same VMSPLIT option as the main kernel\nimage.\n\nOriginal idea/patch from Jens Axboe, modified based on suggestions from Linus\net al.\n\nSigned-off-by: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9fdb62af92c741addbea15545f214a6e89460865",
      "tree": "a25ec569b5b49a1b4c1d2a825f7aab2b2a5e2154",
      "parents": [
        "3ee68c4af3fd7228c1be63254b9f884614f9ebb2",
        "876c184b31dc73cc3f38c5b86dee55d091a56769",
        "729b4d4ce1982c52040bbf22d6711cdf8db07ad8",
        "cf82478840188f8c8494c1d7a668a8ae170d0e07",
        "dacd9b80355525be0e3c519687868410e304ad1c",
        "63c94b68ec30847a6e2b36651703f41066f91480",
        "35f652b5ef4ef145ac5514f6302b3f4cebfbbad4",
        "1a38416cea8ac801ae8f261074721f35317613dc",
        "4a90c7e86202f46fa9af011bdbcdf36e355d1721",
        "aea19aa0780d4b006372fedab8434226e1cc7686",
        "757b18661ea0a0d890e8ce7b1a391e5b7d417d78",
        "c4bb6f5ad968540d7f9619565bacd18d7419b85f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 24 17:52:48 2006 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 24 17:52:48 2006 -0500"
      },
      "message": "[ACPI] merge 3549 4320 4485 4588 4980 5483 5651 acpica asus fops pnpacpi branches into release\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\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": "3213e913b0d6baeb28aa1affbdd4bfa7efedc35f",
      "tree": "2be3ac9ecc2c4d60f7e73582d2d04d5e1efd46bb",
      "parents": [
        "9f72949f679df06021c9e43886c9191494fdb007"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 18 17:44:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:30 2006 -0800"
      },
      "message": "[PATCH] Add pselect/ppoll system calls on i386\n\nAdd the sys_pselect6() and sys_poll() calls to the i386 syscall table.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "283828f3c19ceb3a64a8544d42cc189003e8b0fe",
      "tree": "a3ba8f54e809bc1036bce6a404d88c93d578b0c2",
      "parents": [
        "a411aee96ea7fe6fe065df65bf29ea755bcdb554"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jan 18 17:44:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] Handle TIF_RESTORE_SIGMASK for i386\n\nHandle TIF_RESTORE_SIGMASK as added by David Woodhouse\u0027s patch entitled:\n\n        [PATCH] 2/3 Add TIF_RESTORE_SIGMASK support for arch/powerpc\n        [PATCH] 3/3 Generic sys_rt_sigsuspend\n\nIt does the following:\n\n (1) Declares TIF_RESTORE_SIGMASK for i386.\n\n (2) Invokes it over to do_signal() when TIF_RESTORE_SIGMASK is set.\n\n (3) Makes do_signal() support TIF_RESTORE_SIGMASK, using the signal mask saved\n     in current-\u003esaved_sigmask.\n\n (4) Discards sys_rt_sigsuspend() from the arch, using the generic one instead.\n\n (5) Makes sys_sigsuspend() save the signal mask and set TIF_RESTORE_SIGMASK\n     rather than attempting to fudge the return registers.\n\n (6) Makes sys_sigsuspend() return -ERESTARTNOHAND rather than looping\n     intrinsically.\n\n (7) Makes setup_frame(), setup_rt_frame() and handle_signal() return 0 or\n     -EFAULT rather than true/false to be consistent with the rest of the\n     kernel.\n\nDue to the fact do_signal() is then only called from one place:\n\n (8) Makes do_signal() no longer have a return value is it was just being\n     ignored; force_sig() takes care of this.\n\n (9) Discards the old sigmask argument to do_signal() as it\u0027s no longer\n     necessary.\n\n(10) Makes do_signal() static.\n\n(11) Marks the second argument to do_notify_resume() as unused. The unused\n     argument should remain in the middle as the arguments are passed in as\n     registers, and the ordering is specific in entry.S\n\nGiven the way do_signal() is now no longer called from sys_{,rt_}sigsuspend(),\nthey no longer need access to the exception frame, and so can just take\narguments normally.\n\nThis patch depends on sys_rt_sigsuspend patch.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4f085507231e8003c66ed12e38c73b76e938ee95",
      "tree": "313adf0043c586fa751d8e750e54d6d27d2a0087",
      "parents": [
        "5590ff0d5528b60153c0b4e7b771472b5a95e297"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jan 18 17:43:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] vfs: *at functions: i386\n\nWire up the x86 syscalls\n\nSigned-off-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": "3b948068b84b9759cdf0965abf3074dcb9230e98",
      "tree": "2d95a403f0d130261b9d7cd9efa2af0005e75b65",
      "parents": [
        "097fdf06c63741e6ac1a4e01c2255861dd0a1c49"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Jan 18 17:42:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:20 2006 -0800"
      },
      "message": "[PATCH] uml: remove leftover from patch revertal\n\nI added this line to share this file with UML, but now it\u0027s no longer\nshared so remove this useless leftover.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "652050aec936fdd70ed9cbce1cd1ef30a7c9d117",
      "tree": "a2859991fd1c71d918c85c5a8b4bc63bb2c64808",
      "parents": [
        "9ab34fe76114b9538bfcaf3a9d112dee0feb5f17"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 14 13:21:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:15 2006 -0800"
      },
      "message": "[PATCH] mark several functions __always_inline\n\n      Arjan van de Ven \u003carjan@infradead.org\u003e\n\nMark a number of functions as \u0027must inline\u0027.  The functions affected by this\npatch need to be inlined because they use knowledge that their arguments are\nconstant so that most of the function optimizes away.  At this point this\npatch does not change behavior, it\u0027s for documentation only (and for future\npatches in the inline series)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5a61d0c13db3522a996075bc1b1884a8af2ed37",
      "tree": "e234cb428cb501206e48b654ca6dc82cb389447e",
      "parents": [
        "75bb07e788abb060cc93b6f4dc48a70a53c1406b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Jan 12 01:06:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:59 2006 -0800"
      },
      "message": "[PATCH] death of get_thread_info/put_thread_info\n\n{get,put}_thread_info() were introduced in 2.5.4 and never\nhad been called by anything in the tree.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65e0fdffc977e69a8f1f26d4bf8ba30984db7e44",
      "tree": "569c7238ea64dfac7508c503d4f0229a72d06e32",
      "parents": [
        "07b047fc2466249aff7cdb23fa0b0955a7a00d48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Jan 12 01:05:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:52 2006 -0800"
      },
      "message": "[PATCH] i386: task_stack_page()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07b047fc2466249aff7cdb23fa0b0955a7a00d48",
      "tree": "af22cc80470f8aff6d0c25276ef8fae2b3f537a7",
      "parents": [
        "06b425d80f56280e698b3e8487c372e0d39d9ba1"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:52 2006 -0800"
      },
      "message": "[PATCH] i386: fix task_pt_regs()\n\n\r)\n\nFrom: Al Viro \u003cviro@ftp.linux.org.uk\u003e\n\ntask_pt_regs() needs the same offset-by-8 to match copy_thread()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "06b425d80f56280e698b3e8487c372e0d39d9ba1",
      "tree": "107f441a080074b5fdc16cf4d94632356b29a1e5",
      "parents": [
        "57eafdc22c8e788859b67c2c7ac4d636716603a5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Jan 12 01:05:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:51 2006 -0800"
      },
      "message": "[PATCH] i386: task_thread_info()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "198e2f181163233b379dc7ce8a6d7516b84042e7",
      "tree": "cc4067ca1c81034ba8d214b7ff4c39f2f5be66ee",
      "parents": [
        "4dc7a0bbeb6882ad665e588e82fabe5bb4645f2f"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] scheduler cache-hot-autodetect\n\n\r)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nThis is the latest version of the scheduler cache-hot-auto-tune patch.\n\nThe first problem was that detection time scaled with O(N^2), which is\nunacceptable on larger SMP and NUMA systems. To solve this:\n\n- I\u0027ve added a \u0027domain distance\u0027 function, which is used to cache\n  measurement results. Each distance is only measured once. This means\n  that e.g. on NUMA distances of 0, 1 and 2 might be measured, on HT\n  distances 0 and 1, and on SMP distance 0 is measured. The code walks\n  the domain tree to determine the distance, so it automatically follows\n  whatever hierarchy an architecture sets up. This cuts down on the boot\n  time significantly and removes the O(N^2) limit. The only assumption\n  is that migration costs can be expressed as a function of domain\n  distance - this covers the overwhelming majority of existing systems,\n  and is a good guess even for more assymetric systems.\n\n  [ People hacking systems that have assymetries that break this\n    assumption (e.g. different CPU speeds) should experiment a bit with\n    the cpu_distance() function. Adding a -\u003emigration_distance factor to\n    the domain structure would be one possible solution - but lets first\n    see the problem systems, if they exist at all. Lets not overdesign. ]\n\nAnother problem was that only a single cache-size was used for measuring\nthe cost of migration, and most architectures didnt set that variable\nup. Furthermore, a single cache-size does not fit NUMA hierarchies with\nL3 caches and does not fit HT setups, where different CPUs will often\nhave different \u0027effective cache sizes\u0027. To solve this problem:\n\n- Instead of relying on a single cache-size provided by the platform and\n  sticking to it, the code now auto-detects the \u0027effective migration\n  cost\u0027 between two measured CPUs, via iterating through a wide range of\n  cachesizes. The code searches for the maximum migration cost, which\n  occurs when the working set of the test-workload falls just below the\n  \u0027effective cache size\u0027. I.e. real-life optimized search is done for\n  the maximum migration cost, between two real CPUs.\n\n  This, amongst other things, has the positive effect hat if e.g. two\n  CPUs share a L2/L3 cache, a different (and accurate) migration cost\n  will be found than between two CPUs on the same system that dont share\n  any caches.\n\n(The reliable measurement of migration costs is tricky - see the source\nfor details.)\n\nFurthermore i\u0027ve added various boot-time options to override/tune\nmigration behavior.\n\nFirstly, there\u0027s a blanket override for autodetection:\n\n\tmigration_cost\u003d1000,2000,3000\n\nwill override the depth 0/1/2 values with 1msec/2msec/3msec values.\n\nSecondly, there\u0027s a global factor that can be used to increase (or\ndecrease) the autodetected values:\n\n\tmigration_factor\u003d120\n\nwill increase the autodetected values by 20%. This option is useful to\ntune things in a workload-dependent way - e.g. if a workload is\ncache-insensitive then CPU utilization can be maximized by specifying\nmigration_factor\u003d0.\n\nI\u0027ve tested the autodetection code quite extensively on x86, on 3\nP3/Xeon/2MB, and the autodetected values look pretty good:\n\nDual Celeron (128K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 131072, cpu: 467 MHz):\n ---------------------\n           [00]    [01]\n [00]:     -     1.7(1)\n [01]:   1.7(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 1.7 (1784008)\n ---------------------\n\nHere the slow memory subsystem dominates system performance, and even\nthough caches are small, the migration cost is 1.7 msecs.\n\nDual HT P4 (512K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 524288, cpu: 2379 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]\n [00]:     -     0.4(1)  0.0(0)  0.4(1)\n [01]:   0.4(1)    -     0.4(1)  0.0(0)\n [02]:   0.0(0)  0.4(1)    -     0.4(1)\n [03]:   0.4(1)  0.0(0)  0.4(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (33900) 0.4 (448514)\n ---------------------\n\nHere it can be seen that there is no migration cost between two HT\nsiblings (CPU#0/2 and CPU#1/3 are separate physical CPUs). A fast memory\nsystem makes inter-physical-CPU migration pretty cheap: 0.4 msecs.\n\n8-way P3/Xeon [2MB L2 cache]:\n\n ---------------------\n migration cost matrix (max_cache_size: 2097152, cpu: 700 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]    [04]    [05]    [06]    [07]\n [00]:     -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [01]:  19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [02]:  19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [03]:  19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [04]:  19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1)\n [05]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1)\n [06]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1)\n [07]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 19.2 (19281756)\n ---------------------\n\nThis one has huge caches and a relatively slow memory subsystem - so the\nmigration cost is 19 msecs.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: \u003cwilder@us.ibm.com\u003e\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\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": "487472bc01fab0625996aad37836aad931e4eda9",
      "tree": "ede143ee4c756413b396911b3702068283b052f2",
      "parents": [
        "c818a18146997d1356a4840b0c01f1168c16c8a4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:45:27 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:58 2006 -0800"
      },
      "message": "[PATCH] i386: Replace broken serialize_cpu in microcode driver with correct sync_core\n\nPassing random input values in eax to cpuid is not a good idea\nbecause the CPU will GPF for unknown ones.\nUse the correct x86-64 version that exists for a longer time too.\nThis also adds a memory barrier to prevent the optimizer from\nreordering.\n\nCc: tigran@veritas.com\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd78f11790c37e2165733699f50450500e63a7b3",
      "tree": "b51d2d6d4b1f83c276d81a72d4522ec701aa4354",
      "parents": [
        "3d831d925c6d66569a0c7f6f5f17c0927f7d3d25"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:44:54 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:56 2006 -0800"
      },
      "message": "[PATCH] i386: make pci_map_single/pci_map_sg warn for zero length.\n\nAs suggested by Linus.\n\nThis catches driver bugs that could cause corruption on IOMMU architectures.\n\nAlso I converted the BUGs to out_of_line_bug()s to save a bit\nof text space.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6eb0a0fd059598ee0d49c6283ce25cccd743e9fc",
      "tree": "a608f92e3b8a94cba89e94786169897c64629580",
      "parents": [
        "5a07a30c3cc4dc438494d6416ffa74008a2194b3"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jan 11 22:44:21 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:54 2006 -0800"
      },
      "message": "[PATCH] i386: Handle missing local APIC timer interrupts on C3 state\n\nWhenever we see that a CPU is capable of C3 (during ACPI cstate init), we\ndisable local APIC timer and switch to using a broadcast from external timer\ninterrupt (IRQ 0). This is needed because Intel CPUs stop the local\nAPIC timer in C3.  This is currently only enabled for Intel CPUs.\n\nPatch below adds the code for i386 and also the ACPI hunk.\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": "e99286744599a66195de4cd975d7ef4d643c2789",
      "tree": "d231b075c9bdb0bd7fa48d0eb00551a529e4586a",
      "parents": [
        "b347d25fbc4616f4f37895e9afbe25b2bbc7e11f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:43:33 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:51 2006 -0800"
      },
      "message": "[PATCH] x86_64: Generalize DMI and enable for x86-64\n\nSome people need it now on 64bit so reuse the i386 code for\nx86-64. This will be also useful for future bug workarounds.\n\nIt is a bit simplified there because there is no need\nto do it very early on x86-64. This means it doesn\u0027t need\nearly ioremap et.al. We run it as a core initcall right now.\n\nI hope it\u0027s not needed for early setup.\n\nI added a general CONFIG_DMI symbol in case IA64 or someone\nelse wants to reuse the code later too.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "329d400f47ddfe8ff599823d739c5c5565da3207",
      "tree": "903b45e7ebcccbbd8172e207315c036ceb70f6e8",
      "parents": [
        "73ca5358aab55e2e29993a31f3776c54c05ae729"
      ],
      "author": {
        "name": "Zwane Mwaikambo",
        "email": "zwane@arm.linux.org.uk",
        "time": "Wed Jan 11 22:43:09 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:01:57 2006 -0800"
      },
      "message": "[PATCH] x86_64/i386: Remove preempt disable calls in lowlevel IPI\n\nI noticed that some lowlevel send_IPI_mask helpers had a hotplug/preempt\nrace whereupon the cpu_online_map was read before disabling preemption;\n\n...\ncpumask_t mask \u003d cpu_online_map;\nint cpu \u003d get_cpu();\ncpu_clear(cpu, mask);\n...\n\nBut then i realised that there is no need for these lowlevel functions to\nbe going through all this trouble when all the callers are already made\nhotplug/preempt safe.\n\nSigned-off-by: Zwane Mwaikambo \u003czwane@arm.linux.org.uk\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f98bc4991df8e7b5972489b4632e1e5c03cd1ee",
      "tree": "877fc1305c6d2713a891fc52cc5babbe5c0d62dc",
      "parents": [
        "152bf8c55d657898c40c8ed270630c0cf9d51f7d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:42:51 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:01:12 2006 -0800"
      },
      "message": "[PATCH] i386/x86-64: Update AMD CPUID flags\n\nPrint bits for RDTSCP, SVM, CR8-LEGACY.\n\nAlso now print power flags on i386 like x86-64 always did.\nThis will add a new line in the 386 cpuinfo, but that shouldn\u0027t\nbe an issue - did that in the past too and I haven\u0027t heard\nof any breakage.\n\nI shrunk some of the fields in the i386 cpuinfo_x86 to chars\nto make up for the new int \"x86_power\" field. Overall it\u0027s\nsmaller than before.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39b3a7910556005a7a0d042ecb7ff98bfa84ea57",
      "tree": "efcb2602e6fd198c9af34e726741eb389fa4e292",
      "parents": [
        "2d52ede9876ba566b583f255fdc43800eea81baa"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:42:45 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:01:12 2006 -0800"
      },
      "message": "[PATCH] i386/x86-64: Generalize X86_FEATURE_CONSTANT_TSC flag\n\nDefine it for i386 too.\n\nThis is a synthetic flag that signifies that the CPU\u0027s TSC runs\nat a constant P state invariant frequency.\n\nFix up the logic on x86-64/i386 to set it on all known CPUs.\nUse the AMD defined bit to set it on future AMD CPUs.\n\nCc: venkatesh.pallipadi@intel.com\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92934bcbf96bc9dc931c40ca5f1a57685b7b813b",
      "tree": "eb9690ca6b23b5603429a8b3d290d6ca2545bcaf",
      "parents": [
        "636aab5ce332d88a76362797a55804c7da643467"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:42:32 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:01:11 2006 -0800"
      },
      "message": "[PATCH] i386/x86-64: Use input/output dependencies for bitops\n\nNoticed by Andreas Schwab\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cec87361462d570d6a67888feda41e77e0a9562",
      "tree": "1113096b2aa214f456cfecbbd5974e7efe8f6b27",
      "parents": [
        "7e4e574c391cdeef516411eb698ac6955f01d673"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 15:50:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 15:50:47 2006 -0800"
      },
      "message": "Fix mutex_trylock() copy-and-paste bug (x86, x86-64, generic mutex-dec.h)\n\nNoticed by Arjan originally on x86-64, then Ingo on x86, and finally me\ngrepping for it in the generic version.\n\nBad parenthesis nesting.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73165b88ffd29813bf73b331eaf90d3521443236",
      "tree": "224b510df182c5cba7b64fea6202ed9dd414835e",
      "parents": [
        "042c904c3e35e95ac911e8a2bf4097099b059e1a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 10 22:07:44 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 13:20:47 2006 -0800"
      },
      "message": "[PATCH] fix i386 mutex fastpath on FRAME_POINTER \u0026\u0026 !DEBUG_MUTEXES\n\nCall the mutex slowpath more conservatively - e.g.  FRAME_POINTERS can\nchange the calling convention, in which case a direct branch to the\nslowpath becomes illegal.  Bug found by Hugh Dickins.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0498b63504f818e5ab39c818cd6f7b41319a1187",
      "tree": "d040fd5e2703f9ad601c6949f58ea29e8554154e",
      "parents": [
        "e597c2984c64609c6e1e1ac803f00f7550705860"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Jan 09 20:52:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: fix build breakage\n\nThe following patch (against 2.6.15-rc5-mm3) fixes a kprobes build break\ndue to changes introduced in the kprobe locking in 2.6.15-rc5-mm3.  In\naddition, the patch reverts back the open-coding of kprobe_mutex.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-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": "e597c2984c64609c6e1e1ac803f00f7550705860",
      "tree": "199bac97827782dcd73283018ec5692b63812fac",
      "parents": [
        "f709b122343fb9a010b6cf2d5559641f1820f7c9"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: arch_remove_kprobe\n\nCurrently arch_remove_kprobes() is only implemented/required for x86_64 and\npowerpc.  All other architecture like IA64, i386 and sparc64 implementes a\ndummy function which is being called from arch independent kprobes.c file.\n\nThis patch removes the dummy functions and replaces it with\n#define arch_remove_kprobe(p, s)\tdo { } while(0)\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": "41dead49ccb4d7f0a34d56478f487342a3c3ab2b",
      "tree": "6782eeedac60688b328394971066dad1b6bfa302",
      "parents": [
        "2d14e39da8712cff8a92298f464a25afb4283ccf"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: cleanup include/asm/kprobes.h\n\nThe arch specific kprobes.h files never gets included when CONFIG_KPROBES is\nturned off.  Hence check for CONFIG_KPROBES is not appropriate here in this\narch specific kprobes.h files.\n\nAlso the below defined function kprobes_exception_notify() is not needed when\nCONFIG_KPROBES is off.\n\nCompile tested for both CONFIG_KPROBES\u003dy and N.\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": "af4cd3fe4cfa75ca74f8d8622867371289043a8d",
      "tree": "70dc7836a98758578628a96dc609a0c67f78dffb",
      "parents": [
        "7ff92053ddff48d9d7908a353bd85f893944463e"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Mon Jan 09 20:52:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:34 2006 -0800"
      },
      "message": "[PATCH] Generic ioctl.h\n\nMost arches copied the i386 ioctl.h.  Combine them into a generic header.\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": "f05b690248bc928b85cc19ea85a5c6268bb3acaf",
      "tree": "038e44e38036f6ec067325f6ae6139621fec1470",
      "parents": [
        "e996e58133c475bcf3a229f716b9457267cbaa0a"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Mon Jan 09 20:51:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:27 2006 -0800"
      },
      "message": "[PATCH] Kdump: i386 compiler warning fix\n\nFixes a compilation warning message in i386\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e996e58133c475bcf3a229f716b9457267cbaa0a",
      "tree": "9fd2f41d7e2c0deaca71a88a1b36d873ede3c7b8",
      "parents": [
        "35ed319a36cdfd88fc3debe6ce24e756bc474cce"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Mon Jan 09 20:51:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:27 2006 -0800"
      },
      "message": "[PATCH] kdump: save registers early (inline functions)\n\n- If system panics then cpu register states are captured through funciton\n  crash_get_current_regs().  This is not a inline function hence a stack frame\n  is pushed on to the stack and then cpu register state is captured.  Later\n  this frame is popped and new frames are pushed (machine_kexec).\n\n- In theory this is not very right as we are capturing register states for a\n  frame and that frame is no more valid.  This seems to have created back\n  trace problems for ppc64.\n\n- This patch fixes it up.  The very first thing it does after entering\n  crash_kexec() is to capture the register states.  Anyway we don\u0027t want the\n  back trace beyond crash_kexec().  crash_get_current_regs() has been made\n  inline\n\n- crash_setup_regs() is the top architecture dependent function which should\n  be responsible for capturing the register states as well as to do some\n  architecture dependent tricks.  For ex.  fixing up ss and esp for i386.\n  crash_setup_regs() has also been made inline to ensure no new call frame is\n  pushed onto stack.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc57165874e938ef684d71ba7d36e7088b551489",
      "tree": "e1847f5547a7a426214e9ef0719eab908ee305d7",
      "parents": [
        "82409411571ad89d271dc46f7fa26149fad9efdf"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Mon Jan 09 20:51:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:26 2006 -0800"
      },
      "message": "[PATCH] kdump: dynamic per cpu allocation of memory for saving cpu registers\n\n- In case of system crash, current state of cpu registers is saved in memory\n  in elf note format.  So far memory for storing elf notes was being allocated\n  statically for NR_CPUS.\n\n- This patch introduces dynamic allocation of memory for storing elf notes.\n  It uses alloc_percpu() interface.  This should lead to better memory usage.\n\n- Introduced based on Andi Kleen\u0027s and Eric W. Biederman\u0027s suggestions.\n\n- This patch also moves memory allocation for elf notes from architecture\n  dependent portion to architecture independent portion.  Now crash_notes is\n  architecture independent.  The whole idea is that size of memory to be\n  allocated per cpu (MAX_NOTE_BYTES) can be architecture dependent and\n  allocation of this memory can be architecture independent.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2af7f59eeec18f310b6209d18652ce2387615507",
      "tree": "a3504d2c4776bfe50978baf74a3fb156a8c4df85",
      "parents": [
        "620a6fd185c084aa617c411f711533f01ea673c9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Jan 09 15:59:18 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:18 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, add include/asm-i386/mutex.h\n\nadd the i386 version of mutex.h, optimized in assembly.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "64ca9004b819ab87648dbfc78f3ef49ee491343e",
      "tree": "9b5daef5280800a0006343a17f63072658d91a1d",
      "parents": [
        "708e9a794cf8822b760edaccd9053edb07c34d19"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:05:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:11 2006 -0800"
      },
      "message": "[PATCH] Make vm86 support optional\n\nThis adds an option to remove vm86 support under CONFIG_EMBEDDED.  Saves\nabout 5k.\n\nThis version eliminates most of the #ifdefs of the previous version and\ninstead uses function stubs in vm86.h.  Also, release_vm86_irqs is moved\nfrom asm-i386/irq.h to a more appropriate home in vm86.h so that the stubs\ncan live together.\n\n$ size vmlinux-baseline vmlinux-novm86\n   text    data     bss     dec     hex filename\n2920821  523232  190652 3634705  377611 vmlinux-baseline\n2916268  523100  190492 3629860  376324 vmlinux-novm86\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": "a12dea7af93ae83bd868c0dc09367090ead7cc1e",
      "tree": "90220072dddc951f75ecbcb9b442b8b8a9b774f7",
      "parents": [
        "eb46996f90a0826921f1a0d81535537a9c7f91b0"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun Jan 08 01:04:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:04 2006 -0800"
      },
      "message": "[PATCH] PTRACE_SYSEMU is only for i386 and clashes with other ptrace codes of other archs\n\nPTRACE_SYSEMU{,_SINGLESTEP} is actually arch specific, for now, and the\ncurrent allocated number clashes with a ptrace code of frv, i.e.\nPTRACE_GETFDPIC.  I should have submitted this much earlier, anyway we get no\nbreakage for this.\n\nCC: Daniel Jacobowitz \u003cdan@debian.org\u003e\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1fd73c6b6737b7e6eacac1b00dac16e7540c3cb1",
      "tree": "e66dbe34118b289c6f89a23764e355ea62fa2c62",
      "parents": [
        "22fc6eccbf4ce4eb6265e6ada7b50a7b9cc57d05"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sun Jan 08 01:01:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:39 2006 -0800"
      },
      "message": "[PATCH] Kill L1_CACHE_SHIFT_MAX\n\nKill L1_CACHE_SHIFT from all arches.  Since L1_CACHE_SHIFT_MAX is not used\nanymore with the introduction of INTERNODE_CACHE, kill L1_CACHE_SHIFT_MAX.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\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": "39743889aaf76725152f16aa90ca3c45f6d52da3",
      "tree": "2a6f658d03dbbd9428934c5e030230a4acb6d5e0",
      "parents": [
        "dc9aa5b9d65fd11b1f5246b46ec610ee8b83c6dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: sys_migrate_pages interface\n\nsys_migrate_pages implementation using swap based page migration\n\nThis is the original API proposed by Ray Bryant in his posts during the first\nhalf of 2005 on linux-mm@kvack.org and linux-kernel@vger.kernel.org.\n\nThe intent of sys_migrate is to migrate memory of a process.  A process may\nhave migrated to another node.  Memory was allocated optimally for the prior\ncontext.  sys_migrate_pages allows to shift the memory to the new node.\n\nsys_migrate_pages is also useful if the processes available memory nodes have\nchanged through cpuset operations to manually move the processes memory.  Paul\nJackson is working on an automated mechanism that will allow an automatic\nmigration if the cpuset of a process is changed.  However, a user may decide\nto manually control the migration.\n\nThis implementation is put into the policy layer since it uses concepts and\nfunctions that are also needed for mbind and friends.  The patch also provides\na do_migrate_pages function that may be useful for cpusets to automatically\nmove memory.  sys_migrate_pages does not modify policies in contrast to Ray\u0027s\nimplementation.\n\nThe current code here is based on the swap based page migration capability and\nthus is not able to preserve the physical layout relative to it containing\nnodeset (which may be a cpuset).  When direct page migration becomes available\nthen the implementation needs to be changed to do a isomorphic move of pages\nbetween different nodesets.  The current implementation simply evicts all\npages in source nodeset that are not in the target nodeset.\n\nPatch supports ia64, i386 and x86_64.\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": "19d534842cc39df1b568722c18f96ae24fb0e136",
      "tree": "bf4a0deac286079540f849dff8f8c030e2eba097",
      "parents": [
        "bcf0f0d233fc76e7c59c7f731caad555428d0e8d"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Fri Jan 06 00:12:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:39 2006 -0800"
      },
      "message": "[PATCH] mpspec: remove unneeded packed attribute\n\nGCC 4.1 gives the following warning: include/asm/mpspec.h:79: warning:\n`packed\u0027 attribute ignored for field of type `unsigned char\u0027\n\nThe packed attribute isn\u0027t really necessary anyways so just remove it.\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nAcked-by: Dave Jones \u003cdavej@codemonkey.org.uk\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"
    }
  ],
  "next": "f90b8116032f4216d260e31f966a3585319387ac"
}
