)]}'
{
  "log": [
    {
      "commit": "29da7eb0ec69245c6e9b4eb5bdaa04af685f5c4f",
      "tree": "14fb9ac86841af2cc17b999507b6879936616b1d",
      "parents": [
        "8741ca71a3f626a56595b88200ebf952ce77ceef"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 16 14:10:49 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 16 08:32:29 2006 -0700"
      },
      "message": "[PATCH] FRV: Use the correct preemption primitives in kmap_atomic() and co\n\nUse inc/dec_preempt_count() rather than preempt_enable/disable() and manually\nadd in the compiler barriers that were provided by the latter.  This makes FRV\nconsistent with other archs.\n\nFurthermore, the compiler barrier effects are now there unconditionally - at\nleast as far as preemption is concerned - because we don\u0027t want the compiler\nmoving memory accesses out of the section of code in which the mapping is in\nforce - in effect the kmap_atomic() must imply a LOCK-class barrier and the\nkunmap_atomic() must imply an UNLOCK-class barrier to the compiler.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e50190a8341485b413f599033cb74649f849d939",
      "tree": "c45e165f8167dd95f3b5d4163433b91c8b7afd55",
      "parents": [
        "53d5ed627df852ba8bab7f70df25290bd733792c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Wed Oct 11 01:22:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:23 2006 -0700"
      },
      "message": "[PATCH] Consolidate check_signature\n\nThere\u0027s nothing arch-specific about check_signature(), so move it to\n\u003clinux/io.h\u003e.  Use a cross between the Alpha and i386 implementations as\nthe generic one.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@parisc-linux.org\u003e\nAcked-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": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "f30c2269544bffc7bf1b0d7c0abe5be1be83b8cb",
      "tree": "2f6140d8a555af6a133690ed6b42599e78a43c54",
      "parents": [
        "670e9f34ee3c7e052514c85014d2fdd99b672cdc"
      ],
      "author": {
        "name": "Uwe Zeisberger",
        "email": "Uwe_Zeisberger@digi.com",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Zeisberger \u003cUwe_Zeisberger@digi.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "135ab6ec8fdad6f61aabe53f456821baf4a4aa0e",
      "tree": "22a46321949e6621e95f6c21a3d34e3516d07cc8",
      "parents": [
        "821278a75d270048e291fcbec9304439a176ba88"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 02 02:18:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:23 2006 -0700"
      },
      "message": "[PATCH] remove remaining errno and __KERNEL_SYSCALLS__ references\n\nThe last in-kernel user of errno is gone, so we should remove the definition\nand everything referring to it.  This also removes the now-unused lib/execve.c\nfile that was introduced earlier.\n\nAlso remove every trace of __KERNEL_SYSCALLS__ that still remained in the\nkernel.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.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.hirokazu@renesas.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\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": "a93cb055a23f3172c1e6a22ac1dc4f1c07929b08",
      "tree": "b2118140583912c78d42a3ba950be39815addc14",
      "parents": [
        "d6d861e3c963b4077c83e078e3e300c4b81f93e7"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Sat Sep 30 23:29:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:34 2006 -0700"
      },
      "message": "[PATCH] paravirt: remove set pte atomic\n\nNow that ptep_establish has a definition in PAE i386 3-level paging code, the\nonly paging model which is insane enough to have multi-word hardware PTEs\nwhich are not efficient to set atomically, we can remove the ghost of\nset_pte_atomic from other architectures which falesly duplicated it, and\nremove all knowledge of it from the generic pgtable code.\n\nset_pte_atomic is now a private pte operator which is specific to i386\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: 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": "0883d899ef862c1b0f8b2c2d38098470c193a3dd",
      "tree": "414fcb7849c285bed87928b4d5be21304cd6724e",
      "parents": [
        "f19923937321244e7dc334767eb4b67e0e3d5c74"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sat Sep 30 23:28:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:27 2006 -0700"
      },
      "message": "[PATCH] ntp: cleanup defines and comments\n\nRemove a few unused defines and remove obsolete information from comments.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebba5f9fcb882306bef7175dee987342ec6fcf2f",
      "tree": "a947175a24a3261ab3ffb5d9244e40939dd5495d",
      "parents": [
        "bd8e39f9e4c0960541c8c69e1f7cb321574d7c90"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Sep 27 01:50:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] consistently use MAX_ERRNO in __syscall_return\n\nConsistently use MAX_ERRNO when checking for errors in __syscall_return().\n\n[ralf@linux-mips.org: build fix]\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf134483b2cd657039b305777215c531a1009947",
      "tree": "2dad894d6e916bcf785611ded852151bbea5063b",
      "parents": [
        "a8ad27d03f17e6154c61e81d4a7028c56ca6390d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 25 23:32:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:54 2006 -0700"
      },
      "message": "[PATCH] FRV: Optimise ffs()\n\nOptimise ffs(x) by using fls(x \u0026 x - 1) which we optimise to use the SCAN\ninstruction.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8ad27d03f17e6154c61e81d4a7028c56ca6390d",
      "tree": "14d0367af1fafa359733b04326a95a4fe39557c5",
      "parents": [
        "92fc707208bb2e601c24b5ab65db37bcb361b658"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 25 23:32:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:54 2006 -0700"
      },
      "message": "[PATCH] FRV: Implement fls64()\n\nImplement fls64() for FRV without recource to conditional jumps.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92fc707208bb2e601c24b5ab65db37bcb361b658",
      "tree": "a0b2d56c30ade74946e9edd74f2d516f475c68f5",
      "parents": [
        "af8c65b57aaa4ae321af34dbfc5ca7f5625263fe"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 25 23:32:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:53 2006 -0700"
      },
      "message": "[PATCH] FRV: Fix fls() to handle bit 31 being set correctly\n\nFix FRV fls() to handle bit 31 being set correctly (it should return 32 not 0).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bcbba306048ed86b935d57a95d887c23d52c94b",
      "tree": "4c6e20b162415c79a177b72b97b6fb4d246a73b0",
      "parents": [
        "8d6b5eeea5eb644232cbbbe1c927fdf051e60fa5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Sep 25 23:32:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:53 2006 -0700"
      },
      "message": "[PATCH] FRV: Use the generic IRQ stuff\n\nMake the FRV arch use the generic IRQ code rather than having its own\nroutines for doing so.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46a82b2d5591335277ed2930611f6acb4ce654ed",
      "tree": "e90bc1843701af2012bae92564f7109027a8244f",
      "parents": [
        "d2e7b7d0aa021847c59f882b066e7d3812902870"
      ],
      "author": {
        "name": "Dave McCracken",
        "email": "dmccr@us.ibm.com",
        "time": "Mon Sep 25 23:31:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] Standardize pxx_page macros\n\nOne of the changes necessary for shared page tables is to standardize the\npxx_page macros.  pte_page and pmd_page have always returned the struct\npage associated with their entry, while pte_page_kernel and pmd_page_kernel\nhave returned the kernel virtual address.  pud_page and pgd_page, on the\nother hand, return the kernel virtual address.\n\nShared page tables needs pud_page and pgd_page to return the actual page\nstructures.  There are very few actual users of these functions, so it is\nsimple to standardize their usage.\n\nSince this is basic cleanup, I am submitting these changes as a standalone\npatch.  Per Hugh Dickins\u0027 comments about it, I am also changing the\npxx_page_kernel macros to pxx_page_vaddr to clarify their meaning.\n\nSigned-off-by: Dave McCracken \u003cdmccr@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a6d967a485c67ec8a1276261f39d81ace6a3e308",
      "tree": "3e46be7f279342316d4578995dfbfce99728c579",
      "parents": [
        "7c250413e5b7c3dfae89354725b70c76d7621395"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 15:33:09 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 15:33:09 2006 -0400"
      },
      "message": "[libata] No need for all those arch libata-portmap.h headers\n\nThey all contain the same thing.  Instead, have a single generic one in\ninclude/asm-generic, and permit an arch to override as needed.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "638b093255e12e066ae16b8750f37383603f7bd8",
      "tree": "2a95d93f50f855f416dcef1a52585f95471d7e33",
      "parents": [
        "b7a818e4fcd2c3ee8c34c2367d345561c4c76a15"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Sep 24 23:39:25 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Sep 24 15:55:03 2006 -0700"
      },
      "message": "[PATCH] restore libata build on frv\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52393ccc0a53c130f31fbbdb8b40b2aadb55ee72",
      "tree": "9f0bcb3ed29e9f7dbdb1cb8692cdbdfd7462c45d",
      "parents": [
        "f92213bae062cf88c099fbfd3040fef512b19905"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 14 16:05:03 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:56:14 2006 -0700"
      },
      "message": "[PATCH] remove set_wmb - arch removal\n\nset_wmb should not be used in the kernel because it just confuses the\ncode more and has no benefit.  Since it is not currently used in the\nkernel this patch removes it so that new code does not include it.\n\nAll archs define set_wmb(var, value) to do { var \u003d value; wmb(); }\nwhile(0) except ia64 and sparc which use a mb() instead.  But this is\nstill moot since it is not used anyway.\n\nHasn\u0027t been tested on any archs but x86 and x86_64 (and only compiled\ntested)\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6dc8c5b8e04ce28720155383e971561a23899d5",
      "tree": "df590e4e096ac332a7d95ef96275bebd57ce70c9",
      "parents": [
        "0f74964627e0ece4ac8da0e2cd01906ec322b4fe"
      ],
      "author": {
        "name": "Chase Venters",
        "email": "chase.venters@clientec.com",
        "time": "Sat Jul 08 11:10:29 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 12 12:56:45 2006 -0700"
      },
      "message": "[PATCH] Make cpu_relax() imply barrier() on all arches\n\nDuring the recent discussion of taking \u0027volatile\u0027 off of the spinlock, I\nnoticed that while most arches #define cpu_relax() such that it implies\nbarrier(), some arches define cpu_relax() to be empty.\n\nThis patch changes the definition of cpu_relax() for frv, h8300, m68knommu,\nsh, sh64, v850 and xtensa from an empty while(0) to the compiler barrier().\n\nSigned-off-by: Chase Venters \u003cchase.venters@clientec.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@Linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84e8cd6dbc00b4979e8d1c15c80d91987aeb3417",
      "tree": "5df8103b5e6d414bc39e165655ae8bd5341abd76",
      "parents": [
        "6d8c4e3b0150ff537902477ed62f8a8e9e70007b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jul 10 04:44:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:22 2006 -0700"
      },
      "message": "[PATCH] FRV: Introduce asm-offsets for FRV arch\n\nIntroduce the use of asm-offsets into the FRV architecture.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d8c4e3b0150ff537902477ed62f8a8e9e70007b",
      "tree": "0fe61afc565c4312f8a4395281186c0e54449c1c",
      "parents": [
        "b4cac1a0227a6f84be0381cd350a3c8730a4a671"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jul 10 04:44:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:22 2006 -0700"
      },
      "message": "[PATCH] FDPIC: Add coredump capability for the ELF-FDPIC binfmt\n\nAdd coredump capability for the ELF-FDPIC binfmt.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6fa0cb1141da80eed4f86155fb51931bc1c31888",
      "tree": "df9b3c378ae4f44260eaae1a4b9d5c4ccf7bb641",
      "parents": [
        "c6482dde1c2811afba289b2344268f850595f350",
        "257a5bdeb0441789d8e34e1b3e92b26d0f51bbf0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 12:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 12:55:45 2006 -0700"
      },
      "message": "Merge git://git.infradead.org/hdrinstall-2.6\n\n* git://git.infradead.org/hdrinstall-2.6:\n  Remove export of include/linux/isdn/tpam.h\n  Remove \u003clinux/i2c-id.h\u003e and \u003clinux/i2c-algo-ite.h\u003e from userspace export\n  Restrict headers exported to userspace for SPARC and SPARC64\n  Add empty Kbuild files for \u0027make headers_install\u0027 in remaining arches.\n  Add Kbuild file for Alpha \u0027make headers_install\u0027\n  Add Kbuild file for SPARC \u0027make headers_install\u0027\n  Add Kbuild file for IA64 \u0027make headers_install\u0027\n  Add Kbuild file for S390 \u0027make headers_install\u0027\n  Add Kbuild file for i386 \u0027make headers_install\u0027\n  Add Kbuild file for x86_64 \u0027make headers_install\u0027\n  Add Kbuild file for PowerPC \u0027make headers_install\u0027\n  Add generic Kbuild files for \u0027make headers_install\u0027\n  Basic implementation of \u0027make headers_check\u0027\n  Basic implementation of \u0027make headers_install\u0027\n"
    },
    {
      "commit": "bc2e2635bd814dc893e45e866774883a0a66cd36",
      "tree": "e9870d5b9d16a73fd1fea22fdc3c386a90631346",
      "parents": [
        "aa7135ff33bf697196f2a3104d93837096c63ff0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 01 19:29:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jul 02 13:58:46 2006 -0700"
      },
      "message": "[PATCH] irq-flags: FRV: Use the new IRQF_ constants\n\nUse the new IRQF_ constants and remove the SA_INTERRUPT define\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "877ce7c1b3afd69a9b1caeb1b9964c992641f52a",
      "tree": "740c6c0d4a2858af53c09c4635cadf06833536c1",
      "parents": [
        "d6b4991ad5d1a9840e12db507be1a6593def01fe"
      ],
      "author": {
        "name": "Catherine Zhang",
        "email": "cxzhang@watson.ibm.com",
        "time": "Thu Jun 29 12:27:47 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Jun 29 16:58:06 2006 -0700"
      },
      "message": "[AF_UNIX]: Datagram getpeersec\n\nThis patch implements an API whereby an application can determine the\nlabel of its peer\u0027s Unix datagram sockets via the auxiliary data mechanism of\nrecvmsg.\n\nPatch purpose:\n\nThis patch enables a security-aware application to retrieve the\nsecurity context of the peer of a Unix datagram socket.  The application\ncan then use this security context to determine the security context for\nprocessing on behalf of the peer who sent the packet.\n\nPatch design and implementation:\n\nThe design and implementation is very similar to the UDP case for INET\nsockets.  Basically we build upon the existing Unix domain socket API for\nretrieving user credentials.  Linux offers the API for obtaining user\ncredentials via ancillary messages (i.e., out of band/control messages\nthat are bundled together with a normal message).  To retrieve the security\ncontext, the application first indicates to the kernel such desire by\nsetting the SO_PASSSEC option via getsockopt.  Then the application\nretrieves the security context using the auxiliary data mechanism.\n\nAn example server application for Unix datagram socket should look like this:\n\ntoggle \u003d 1;\ntoggle_len \u003d sizeof(toggle);\n\nsetsockopt(sockfd, SOL_SOCKET, SO_PASSSEC, \u0026toggle, \u0026toggle_len);\nrecvmsg(sockfd, \u0026msg_hdr, 0);\nif (msg_hdr.msg_controllen \u003e sizeof(struct cmsghdr)) {\n    cmsg_hdr \u003d CMSG_FIRSTHDR(\u0026msg_hdr);\n    if (cmsg_hdr-\u003ecmsg_len \u003c\u003d CMSG_LEN(sizeof(scontext)) \u0026\u0026\n        cmsg_hdr-\u003ecmsg_level \u003d\u003d SOL_SOCKET \u0026\u0026\n        cmsg_hdr-\u003ecmsg_type \u003d\u003d SCM_SECURITY) {\n        memcpy(\u0026scontext, CMSG_DATA(cmsg_hdr), sizeof(scontext));\n    }\n}\n\nsock_setsockopt is enhanced with a new socket option SOCK_PASSSEC to allow\na server socket to receive security context of the peer.\n\nTesting:\n\nWe have tested the patch by setting up Unix datagram client and server\napplications.  We verified that the server can retrieve the security context\nusing the auxiliary data mechanism of recvmsg.\n\nSigned-off-by: Catherine Zhang \u003ccxzhang@watson.ibm.com\u003e\nAcked-by: Acked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c52c17622e27876c2395f59cfe342497a399de41",
      "tree": "460c2a539927bf13e91a77634d592c1d68cf42c8",
      "parents": [
        "8ccd05670309084c2dd2003b6840a4becb5acca0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:55 2006 -0700"
      },
      "message": "[PATCH] frv: clean frv unistd.h\n\nRemove _syscall invocations that aren\u0027t used in the kernel.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e591a55576b60156ac3dbc5087660ed82646d66",
      "tree": "65f4323f7eab9b1c8fbf66c960071a87d10e39ad",
      "parents": [
        "a73df4dfdb0e01a1cbf119416a00e520a5e22306"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:55 2006 -0700"
      },
      "message": "[PATCH] frv: Add missing qualifier to memcpy_fromio() prototype\n\nThe memcpy_fromio() function should have a const qualifier on its source\npointer.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f788435568795c4cd29301bb4ccf7aff54f5051",
      "tree": "664b5c222a42da3b44da6b11c18cccc6e13425ce",
      "parents": [
        "ffca11104c06aff1641b9787f9e5b1099187ff83"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:55 2006 -0700"
      },
      "message": "[PATCH] frv: NULL noise removal in frv xchg()\n\nClean up the FRV arch\u0027s xchg() function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "be2338f3ceb6d80170ebb495190d6aee79d8c7e3",
      "tree": "553d329dfda6160a5511bfb3799c6fb8343d2f5c",
      "parents": [
        "576132b42647e3facd28e3148a20307fadfd9afc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:55 2006 -0700"
      },
      "message": "[PATCH] frv: wrong syscall\n\nThe FRV arch should use fstatat64 not newfstatat.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "576132b42647e3facd28e3148a20307fadfd9afc",
      "tree": "3e986e0838df9c11d17a50c06a3a7d0fd9119006",
      "parents": [
        "53470aaa02ef3c83187f1ffe0d2cb647274fe397"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:55 2006 -0700"
      },
      "message": "[PATCH] frv: misc sparse annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53470aaa02ef3c83187f1ffe0d2cb647274fe397",
      "tree": "d270412696da4d845be0003d442de0421ffa009e",
      "parents": [
        "530018bf3d93e04533eec9c6516e3ce8f5310e13"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] frv: misc __user annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e4d11f8630d5350adc5d4d65180e69991c498f8",
      "tree": "d8f05482adf66069f218833ea8f14d9285dae885",
      "parents": [
        "3f4cd389c3564caf1eec70957fcbd9d88c995d45"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] frv: signal annotations\n\nAdd annotations to the FRV signal handling for sparse.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f4cd389c3564caf1eec70957fcbd9d88c995d45",
      "tree": "a7d5870592f04adc4ee2c2e004737a976b28f728",
      "parents": [
        "a8a77573c9e5345bcf6a963858745cd83c923f44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] frv: basic __iomem annotations\n\nAdd annotations to the FRV I/O handling functions for sparse.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8a77573c9e5345bcf6a963858745cd83c923f44",
      "tree": "04f9bc72aca54effdb2254dd1e0b8ec5fa94f6cf",
      "parents": [
        "86c3a7645c05a7d06b72653aa4b2bea4e7229d1b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 23 02:04:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] frv: __user infrastructure\n\nAdd general annotations to the FRV arch for sparse.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef4d04b87d16839500a77aa1279f80be7ec4ef2e",
      "tree": "58cd5908c66f90810c75505ff555023d9be00073",
      "parents": [
        "57e580f885a62c21fe75e35e9e445fb6fb82509c"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Jun 18 12:58:53 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sun Jun 18 12:58:53 2006 +0100"
      },
      "message": "Add empty Kbuild files for \u0027make headers_install\u0027 in remaining arches.\n\nThese include nothing more than the basic set of files listed in\nasm-generic/Kbuild.asm. Any extra arch-specific files will need to be\nadded.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "56142536868a2be34f261ed8fdca1610f8a73fbd",
      "tree": "0bd66166b318d8403b1881285f6813ece2acced1",
      "parents": [
        "34c278d3913a15b64943e8c40a16b4f732cc7c59"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Sat Apr 29 01:51:47 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Sat Apr 29 01:51:47 2006 +0100"
      },
      "message": "Remove unneeded _syscallX macros from user view in asm-*/unistd.h\n\nThese aren\u0027t needed by glibc or klibc, and they\u0027re broken in some cases\nanyway. The uClibc folks are apparently switching over to stop using\nthem too (now that we agreed that they should be dropped, at least).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "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": "bad7af550e90ab82e74024357438d77b561e1b5f",
      "tree": "4ba9ee182455c3329e231b96eaa366ad95aace6b",
      "parents": [
        "04dfd0de4ec04aaf7d9d42439c972c642a15a75c"
      ],
      "author": {
        "name": "Hirokazu Takata",
        "email": "takata@linux-m32r.org",
        "time": "Mon Apr 10 22:53:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:34 2006 -0700"
      },
      "message": "[PATCH] Remove unused prepare_to_switch macro\n\nRemove unused prepare_to_switch() macros.\n\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\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": "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": "5cdac7ca1b727184b1af21effaffcb9e2cd535c2",
      "tree": "4b148f7b09809f377cb896b24648f978cddf63bb",
      "parents": [
        "bb872f787a9b6a40a4aa206175e768137f595d9c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:45 2006 -0800"
      },
      "message": "[PATCH] unify pfn_to_page: FRV pfn_to_page\n\nFRV can use generic funcs.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f6d7a93c141a473e2cff428a3dbf13b4bec9325",
      "tree": "b614d718704e459450f007745b252d442b775327",
      "parents": [
        "e9f26df17266a8bd327957bd1a5957a263bd7112"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:12 2006 -0800"
      },
      "message": "[PATCH] bitops: frv: use generic bitops\n\n- remove ffz()\n- remove find_{next,first}{,_zero}_bit()\n- remove generic_ffs()\n- remove __ffs()\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\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67b0ad574b5ee90f8ea58196ff8a7f3780b75365",
      "tree": "ca9bc212f6efa8f5170185ef1fa21f75de0684fd",
      "parents": [
        "72b61a3cfd80d1321eb898be8ceae2064f0fbea1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:10 2006 -0800"
      },
      "message": "[PATCH] bitops: use non atomic operations for minix_*_bit() and ext2_*_bit()\n\nBitmap functions for the minix filesystem and the ext2 filesystem except\next2_set_bit_atomic() and ext2_clear_bit_atomic() do not require the atomic\nguarantees.\n\nBut these are defined by using atomic bit operations on several architectures.\n (cris, frv, h8300, ia64, m32r, m68k, m68knommu, mips, s390, sh, sh64, sparc,\nsparc64, v850, and xtensa)\n\nThis patch switches to non atomic bit operation.\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": "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": "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": "28baebae73c3ea8b75c7cae225a7db817ab825a9",
      "tree": "940476b4d03b96480d451b7b5b6f3df3f0ff18dc",
      "parents": [
        "68f624fc8b9fa50de9cc0ebd612ef7b7b9fa32d0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Feb 14 13:53:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:35 2006 -0800"
      },
      "message": "[PATCH] FRV: Use virtual interrupt disablement\n\nMake the FRV arch use virtual interrupt disablement because accesses to the\nprocessor status register (PSR) are relatively slow and because we will\nsoon have the need to deal with multiple interrupt controls at the same\ntime (separate h/w and inter-core interrupts).\n\nThe way this is done is to dedicate one of the four integer condition code\nregisters (ICC2) to maintaining a virtual interrupt disablement state\nwhilst inside the kernel.  This uses the ICC2.Z flag (Zero) to indicate\nwhether the interrupts are virtually disabled and the ICC2.C flag (Carry)\nto indicate whether the interrupts are physically disabled.\n\nICC2.Z is set to indicate interrupts are virtually disabled.  ICC2.C is set\nto indicate interrupts are physically enabled.  Under normal running\nconditions Z\u003d\u003d0 and C\u003d\u003d1.\n\nDisabling interrupts with local_irq_disable() doesn\u0027t then actually\nphysically disable interrupts - it merely sets ICC2.Z to 1.  Should an\ninterrupt then happen, the exception prologue will note ICC2.Z is set and\nbranch out of line using one instruction (an unlikely BEQ).  Here it will\nphysically disable interrupts and clear ICC2.C.\n\nWhen it comes time to enable interrupts (local_irq_enable()), this simply\nclears the ICC2.Z flag and invokes a trap #2 if both Z and C flags are\nclear (the HI integer condition).  This can be done with the TIHI\nconditional trap instruction.\n\nThe trap then physically reenables interrupts and sets ICC2.C again.  Upon\nreturning the interrupt will be taken as interrupts will then be enabled.\nNote that whilst processing the trap, the whole exceptions system is\ndisabled, and so an interrupt can\u0027t happen till it returns.\n\nIf no pending interrupt had happened, ICC2.C would still be set, the HI\ncondition would not be fulfilled, and no trap will happen.\n\nSaving interrupts (local_irq_save) is simply a matter of pulling the ICC2.Z\nflag out of the CCR register, shifting it down and masking it off.  This\ngives a result of 0 if interrupts were enabled and 1 if they weren\u0027t.\n\nRestoring interrupts (local_irq_restore) is then a matter of taking the\nsaved value mentioned previously and XOR\u0027ing it against 1.  If it was one,\nthe result will be zero, and if it was zero the result will be non-zero.\nThis result is then used to affect the ICC2.Z flag directly (it is a\ncondition code flag after all).  An XOR instruction does not affect the\nCarry flag, and so that bit of state is unchanged.  The two flags can then\nbe sampled to see if they\u0027re both zero using the trap (TIHI) as for the\nunconditional reenablement (local_irq_enable).\n\nThis patch also:\n\n (1) Modifies the debugging stub (break.S) to handle single-stepping crossing\n     into the trap #2 handler and into virtually disabled interrupts.\n\n (2) Removes superseded fixup pointers from the second instructions in the trap\n     tables (there\u0027s no a separate fixup table for this).\n\n (3) Declares the trap #3 vector for use in .org directives in the trap table.\n\n (4) Moves irq_enter() and irq_exit() in do_IRQ() to avoid problems with\n     virtual interrupt handling, and removes the duplicate code that has now\n     been folded into irq_exit() (softirq and preemption handling).\n\n (5) Tells the compiler in the arch Makefile that ICC2 is now reserved.\n\n (6) Documents the in-kernel ABI, including the virtual interrupts.\n\n (7) Renames the old irq management functions to different names.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68f624fc8b9fa50de9cc0ebd612ef7b7b9fa32d0",
      "tree": "2e25482dd6a482ccf1378d2b01b863f99603bab5",
      "parents": [
        "06027bdd278a32a84b273e41db68a5db8ffd2bb6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Feb 14 13:53:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:35 2006 -0800"
      },
      "message": "[PATCH] FRV: Miscellaneous fixes\n\nMake various alterations and fixes to the FRV arch:\n\n (1) Resyncs the FRV system call collection with the i386 arch.\n\n (2) Discards __iounmap() as it\u0027s not used.\n\n (3) Fixes the use of the SWAP/SWAPI instruction to get the arguments the right\n     way around in atomic.h, and also to get the asm constraints correct.\n\n (4) Moves copy_to/from_user_page() to asm/cacheflush.h to be consistent with\n     other archs.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.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": "bcc68b8616bcac47dbfc414398e382b3b10faf4c",
      "tree": "b636e8378c1823d75f2f6512cb2eb6c4f52d2dd9",
      "parents": [
        "54e8ce463a7e21dbe9dad57723ed47653ee5db15"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 03 03:03:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:02 2006 -0800"
      },
      "message": "[PATCH] include/asm-*/bitops.h: fix more \"~0UL \u003e\u003e size\" typos\n\n\"[PATCH] m68knommu: fix find_next_zero_bit in bitops.h\" fixed a typo in\nm68knommu implementation of find_next_zero_bit().\n\ngrep(1) shows that cris, frv, h8300, v850 are also affected.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.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: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a411aee96ea7fe6fe065df65bf29ea755bcdb554",
      "tree": "3a6cfece835c6d896a035e05fbcfe34a4c691bfc",
      "parents": [
        "150256d8aadb3a337c31efa9e175cbd25bf06b06"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jan 18 17:43:59 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 FRV\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 FRV.\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) Make 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\nThis patch depends on the FRV signalling patches as well as the\nsys_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": "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": "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": "2acbb8c657af86b2fa5b185f1d7048385e310585",
      "tree": "bc106bb2665a9c6267e6cc4eec9085deedd9e636",
      "parents": [
        "823d0f4f67252115212eb86caba14d5795bbe643"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Jan 09 15:59:19 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:19 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, add default include/asm-*/mutex.h files\n\nadd the per-arch mutex.h files for the remaining architectures.\n\nWe default to asm-generic/mutex-dec.h, because that performs\nquite well on most arches. Arches that do not have atomic\ndecrement/increment instructions should switch to mutex-xchg.h\ninstead. Arches can also provide their own implementation for\nthe mutex fastpath primitives.\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": "41be6aef38c08f1f85ac1c4bd8191b0d1ec61b4c",
      "tree": "50c3cca13c3c069fb2061bcf324ff553128c6700",
      "parents": [
        "5c15d41bab185431a9a28982b5aaac251dde4556"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:01:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:38 2006 -0800"
      },
      "message": "[PATCH] frv: miscellaneous changes\n\nFix a number of miscellanous items:\n\n (1) Declare lock sections in the linker script.\n\n (2) Recurse in the correct manner in the arch makefile.\n\n (3) asm/bug.h requires asm/linkage.h to be included first. One C file puts\n     asm/bug.h first.\n\n (4) Add an empty RTC header file to avoid missing header file errors.\n\n (5) sg_dma_address() should use the dma_address member of a scatter list.\n\n (6) Add trivial pci_unmap support.\n\n (7) Add pgprot_noncached()\n\n (8) Discard u_quad_t.\n\n (9) Use ~0UL rather than ULONG_MAX in unistd.h in case the latter isn\u0027t\n     declared.\n\n(10) Add an empty VGA header file to avoid missing header file errors.\n\n(11) Add an XOR header file to use the generic XOR stuff.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c15d41bab185431a9a28982b5aaac251dde4556",
      "tree": "5cc009ca5a0822f32f73961556a0a4401a38e8c9",
      "parents": [
        "f8aec7573b87d2bc09cafab459476953353d2efa"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:01:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:38 2006 -0800"
      },
      "message": "[PATCH] frv: make get_user macro cast pointers\n\nMake the get_user macro cast the source pointer to an appropriate type for the\nspecified size.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00d76710c253341b1e84795923e59ccdb099628f",
      "tree": "0865a6f51fc6034a40dc7e35fad882b7e181e0a1",
      "parents": [
        "a90a72c85fb202d0b172da27d8df2579b6591783"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:01:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:37 2006 -0800"
      },
      "message": "[PATCH] frv: add module support stubs\n\nAdd stubs for FRV module support.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a90a72c85fb202d0b172da27d8df2579b6591783",
      "tree": "6876226fe257b0f191031492d83714f000a78d25",
      "parents": [
        "018b8d12bc85f8fb332239b11d919ea0724c49a4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:01:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:36 2006 -0800"
      },
      "message": "[PATCH] frv: supply various missing I/O access primitives\n\nSupply various I/O access primitives that are missing for the FRV arch:\n\n (*) mmiowb()\n\n (*) read*_relaxed()\n\n (*) ioport_*map()\n\n (*) ioread*(), iowrite*(), ioread*_rep() and iowrite*_rep()\n\n (*) pci_io*map()\n\n (*) check_signature()\n\nThe patch also makes __is_PCI_addr() more efficient.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2fa9e7e2dce6aafecc1890461bdc00d78897be8b",
      "tree": "ea17c2801b5f9b59027641cb1aebc87d83397363",
      "parents": [
        "2919b51075b3906c2f476e5a932244af1947bf80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Jan 08 01:01:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:36 2006 -0800"
      },
      "message": "[PATCH] frv: drop 8/16-bit xchg and cmpxchg\n\nDrop support for 8-bit and 16-bit xchg and cmpxchg emulation and implements\n32-bit xchg with the SWAP/SWAPI instruction.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fef2b580eb50281ae1d2413ab340f677f6722281",
      "tree": "a0cd5204a30a06e72123b7030a8279e1239255da",
      "parents": [
        "8efc0ab50edbac5c65191b8a58dfdab3741b7901"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:33 2006 -0800"
      },
      "message": "[PATCH] frv: improve signal handling\n\nThe attached patch improves the signal handling:\n\n (1) It makes do_signal() static as it isn\u0027t called from anywhere outside of\n     the arch code.\n\n (2) It removes the regs argument to all the static functions within that file,\n     using __frame instead (which is the same thing held in a global register).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c40f7f373889930d176a515ec375b60a70b5b49",
      "tree": "718d63553f5b9b23c5883592a2fe45b84f275687",
      "parents": [
        "b0e15190ead07056ab0c3844a499ff35e66d27cc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:33 2006 -0800"
      },
      "message": "[PATCH] FRV: Implement futex operations for FRV\n\nThe attached patch implements futex operations for the FRV architecture. The\noperations are applicable to both MMU and no-MMU modes; though the EFAULT\nhandling will be a little bit of wasted space on the latter.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3cb487149bd706aa6aeb02042332a450978dc1c",
      "tree": "69051e0f9853314cf275e4e800faad950e3053c3",
      "parents": [
        "070f80326a215d8e6c4fd6f175e28eb446c492bc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:29 2006 -0800"
      },
      "message": "[PATCH] atomic_long_t \u0026 include/asm-generic/atomic.h V2\n\nSeveral counters already have the need to use 64 atomic variables on 64 bit\nplatforms (see mm_counter_t in sched.h).  We have to do ugly ifdefs to fall\nback to 32 bit atomic on 32 bit platforms.\n\nThe VM statistics patch that I am working on will also make more extensive\nuse of atomic64.\n\nThis patch introduces a new type atomic_long_t by providing definitions in\nasm-generic/atomic.h that works similar to the c \"long\" type.  Its 32 bits\non 32 bit platforms and 64 bits on 64 bit platforms.\n\nAlso cleans up the determination of the mm_counter_t in sched.h.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6b3ec238d12c8cc6cc71490c6e3127988460349",
      "tree": "b395c1054802760b0e938199231a9de9ac2f358a",
      "parents": [
        "d7339071f6a8b50101d7ba327926b770f22d5d8b"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Fri Jan 06 00:10:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store\n\nHere is the patch to implement madvise(MADV_REMOVE) - which frees up a\ngiven range of pages \u0026 its associated backing store.  Current\nimplementation supports only shmfs/tmpfs and other filesystems return\n-ENOSYS.\n\n\"Some app allocates large tmpfs files, then when some task quits and some\nclient disconnect, some memory can be released.  However the only way to\nrelease tmpfs-swap is to MADV_REMOVE\". - Andrea Arcangeli\n\nDatabases want to use this feature to drop a section of their bufferpool\n(shared memory segments) - without writing back to disk/swap space.\n\nThis feature is also useful for supporting hot-plug memory on UML.\n\nConcerns raised by Andrew Morton:\n\n- \"We have no plan for holepunching!  If we _do_ have such a plan (or\n  might in the future) then what would the API look like?  I think\n  sys_holepunch(fd, start, len), so we should start out with that.\"\n\n- Using madvise is very weird, because people will ask \"why do I need to\n  mmap my file before I can stick a hole in it?\"\n\n- None of the other madvise operations call into the filesystem in this\n  manner.  A broad question is: is this capability an MM operation or a\n  filesytem operation?  truncate, for example, is a filesystem operation\n  which sometimes has MM side-effects.  madvise is an mm operation and with\n  this patch, it gains FS side-effects, only they\u0027re really, really\n  significant ones.\"\n\nComments:\n\n- Andrea suggested the fs operation too but then it\u0027s more efficient to\n  have it as a mm operation with fs side effects, because they don\u0027t\n  immediatly know fd and physical offset of the range.  It\u0027s possible to\n  fixup in userland and to use the fs operation but it\u0027s more expensive,\n  the vmas are already in the kernel and we can use them.\n\nShort term plan \u0026  Future Direction:\n\n- We seem to need this interface only for shmfs/tmpfs files in the short\n  term.  We have to add hooks into the filesystem for correctness and\n  completeness.  This is what this patch does.\n\n- In the future, plan is to support both fs and mmap apis also.  This\n  also involves (other) filesystem specific functions to be implemented.\n\n- Current patch doesn\u0027t support VM_NONLINEAR - which can be addressed in\n  the future.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: 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": "3821af2fe13700cab6fd67367128fa180e43f8b8",
      "tree": "a70f63c24bd7d2ac8b25e3e4ee0ef6a50847aa67",
      "parents": [
        "c865e5d99e25a171e8262fc0f7ba608568633c64"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Wed Dec 21 19:30:53 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:06 2006 -0800"
      },
      "message": "[FLS64]: generic version\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8080f231224ccd3169f39e73fd750ba98d5b98a7",
      "tree": "e86762b01f248dbf735e786783d3d9eb0e7c9950",
      "parents": [
        "c13cf856cbe16aec3007604dc013cbf3a16c6686"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Nov 28 13:43:51 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] FRV: Make the FRV arch work again\n\nThe attached patch implements a bunch of small changes to the FRV arch to\nmake it work again.\n\nIt deals with the following problems:\n\n (1) SEM_DEBUG should be SEMAPHORE_DEBUG.\n\n (2) The argument list to pcibios_penalize_isa_irq() has changed.\n\n (3) CONFIG_HIGHMEM can\u0027t be used directly in #if as it may not be defined.\n\n (4) page-\u003eprivate is no longer directly accessible.\n\n (5) linux/hardirq.h assumes asm/hardirq.h will include linux/irq.h\n\n (6) The IDE MMIO access functions are given pointers, not integers, and so\n     get type casting errors.\n\n (7) __pa() is passed an explicit u64 type in drivers/char/mem.c, but that\n     can\u0027t be cast directly to a pointer on a 32-bit platform.\n\n (8) SEMAPHORE_DEBUG should not be contingent on WAITQUEUE_DEBUG as that no\n     longer exists.\n\n (9) PREEMPT_ACTIVE is too low a value.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8426e1f6af0fd7f44d040af7263750c5a52f3cc3",
      "tree": "827bd2588c2b73d11cea6869de8ff42dba134375",
      "parents": [
        "4a6dae6d382e9edf3ff440b819e554ed706359bc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:07:25 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] atomic: inc_not_zero\n\nIntroduce an atomic_inc_not_zero operation.  Make this a special case of\natomic_add_unless because lockless pagecache actually wants\natomic_inc_not_negativeone due to its offset refcount.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a6dae6d382e9edf3ff440b819e554ed706359bc",
      "tree": "2945a5095973e2ecf05b503d6deb859083045b8e",
      "parents": [
        "53e86b91b7ae66d4c2757195cbd42e00d9199cf2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:07:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] atomic: cmpxchg\n\nIntroduce an atomic_cmpxchg operation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c65b4a60450590e79a28e9717ceffa9e4debb3f",
      "tree": "e0e42b5faee0a1c44746a36d9df7a8fbb2a2c24c",
      "parents": [
        "6fdcc2162285a8fc96ab12ff85086c37bceaa494"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Mon Nov 07 00:59:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:41 2005 -0800"
      },
      "message": "[PATCH] fix remaining missing includes\n\nFix more include file problems that surfaced since I submitted the previous\nfix-missing-includes.patch.  This should now allow not to include sched.h\nfrom module.h, which is done by a followup patch.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "727a53bd535fe3bde644ac346db27456ad964083",
      "tree": "5dddcea38f3dd417311b1bcbf5692ad2aebe8c7e",
      "parents": [
        "d269cdd0e22ef22f7f597ea917b1e8bdc6999fcb"
      ],
      "author": {
        "name": "Arthur Othieno",
        "email": "a.othieno@bluewin.ch",
        "time": "Sun Oct 30 15:03:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] semaphore: Remove __MUTEX_INITIALIZER()\n\n__MUTEX_INITIALIZER() has no users, and equates to the more commonly used\nDECLARE_MUTEX(), thus making it pretty much redundant.  Remove it for good.\n\nSigned-off-by: Arthur Othieno \u003ca.othieno@bluewin.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1426d7a81dea8e9d85f9d69de85ab04ba37018ab",
      "tree": "f2a7bbe0e60437cf73199b6003da677ee8ff0424",
      "parents": [
        "c7e9dd4dd0b8dd75c410011b3c8f9980112fd0f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Oct 30 15:02:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] vm: remove unused/broken page_pte[_prot] macros\n\nThis patch removes page_pte_prot and page_pte macros from all\narchitectures.  Some architectures define both, some only page_pte (broken)\nand others none.  These macros are not used anywhere.\n\npage_pte_prot(page, prot) is identical to mk_pte(page, prot) and\npage_pte(page) is identical to page_pte_prot(page, __pgprot(0)).\n\n* The following architectures define both page_pte_prot and page_pte\n\n  arm, arm26, ia64, sh64, sparc, sparc64\n\n* The following architectures define only page_pte (broken)\n\n  frv, i386, m32r, mips, sh, x86-64\n\n* All other architectures define neither\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a5da7d3c6e8fcd7aaab6c4e1e9101ba333248ffb",
      "tree": "ce17675418c32fbf62073a3c809390e9518d3555",
      "parents": [
        "43b7eae1f5c5424a49ea4a65e9b0e9d5d2fd9446"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:21:18 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:48 2005 -0700"
      },
      "message": "[PATCH] gfp_t: dma-mapping (frv)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "676067cfeaa16f6f338e067e83ce4733b41c0b24",
      "tree": "4468541d1b970fc240c115b69d894443d3ed564c",
      "parents": [
        "c51179fb0c77ad91df5825f8f7eb670da97e137e"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Sep 21 18:38:09 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 21 16:16:29 2005 -0700"
      },
      "message": "[PATCH] Remove unused var from asm/futex.h\n\nAs recently done by Russell King for ARM, commit\n4732efbeb997189d9f9b04708dc26bf8613ed721 introduces a generic asm/futex.h copied\nalong most arches, which includes a \"-ENOSYS support\" to be changed if needed.\nHowever, it includes an unused var (taken from the \"real\" version) which GCC\nwarns about.\n\nRemove it from all arches having that file version (i.e. same GIT id).\n$ git-diff-tree -r HEAD\nand\n$ git-ls-tree  -r HEAD include/|grep 9feff4ce1424bc390608326240be369eb13aa648\n\nmay be more interesting than looking at the patch itself, to make sure I\u0027ve\njust copied the arm header to all other archs having the original dummy version\nof this file.\n\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33bf56106d9be272696b73d9179da4e56b277472",
      "tree": "905fe909edf96831a988de8fd35d22ee96ab4db0",
      "parents": [
        "82006d084109bb4118f1de0dc5855abe5ccae430"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Sep 13 01:25:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:33 2005 -0700"
      },
      "message": "[PATCH] feature removal of io_remap_page_range()\n\nAs written in Documentation/feature-removal-schedule.txt, remove the\nio_remap_page_range() kernel API.\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": "8d286aa5eaf951bf53d4a0f64576d4b377c435ba",
      "tree": "c2304e6fc3af25b6a09f974fa09db753f6bd8cea",
      "parents": [
        "5ac353f9baf7169298ebb7de86b2d697b25bca44"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Sep 06 15:18:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:38 2005 -0700"
      },
      "message": "[PATCH] Clean up struct flock64 definitions\n\nThis patch gathers all the struct flock64 definitions (and the operations),\nputs them under !CONFIG_64BIT and cleans up the arch files.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ac353f9baf7169298ebb7de86b2d697b25bca44",
      "tree": "2591e241e07c96d19db85d418ff6623ec394f984",
      "parents": [
        "1abf62afb6e9cdc1b2618b69067a186b94281587"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Sep 06 15:18:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:38 2005 -0700"
      },
      "message": "[PATCH] Clean up struct flock definitions\n\nThis patch just gathers together all the struct flock definitions except\nxtensa into asm-generic/fcntl.h.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1abf62afb6e9cdc1b2618b69067a186b94281587",
      "tree": "a3e3266a23d8d75bf6c302763327b60b7372a41c",
      "parents": [
        "e64ca97fd80a129e538ca42d0b12c379746b83db"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Sep 06 15:17:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:38 2005 -0700"
      },
      "message": "[PATCH] Clean up the fcntl operations\n\nThis patch puts the most popular of each fcntl operation/flag into\nasm-generic/fcntl.h and cleans up the arch files.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e64ca97fd80a129e538ca42d0b12c379746b83db",
      "tree": "196c445874941ffbcca785be713338f647b42d5b",
      "parents": [
        "2b2fa38e5f3f17a5e1ef3fe29a9869d93197ebfd"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Sep 06 15:17:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:38 2005 -0700"
      },
      "message": "[PATCH] Clean up the open flags\n\nThis patch puts the most popular of each open flag into asm-generic/fcntl.h\nand cleans up the arch files.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9317259ead88fe6c05120ae1e3ace99738e2c698",
      "tree": "b899748ca57a96d59003945f97ceae01b5fdc48c",
      "parents": [
        "5ba4d46dc44c5399bc4e7a39239de5a1690848a4"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Sep 06 15:17:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:37 2005 -0700"
      },
      "message": "[PATCH] Create asm-generic/fcntl.h\n\nThis set of patches creates asm-generic/fcntl.h and consolidates as much as\npossible from the asm-*/fcntl.h files into it.\n\nThis patch just gathers all the identical bits of the asm-*/fcntl.h files into\nasm-generic/fcntl.h.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Yoichi Yuasa \u003cyuasa@hh.iij4u.or.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97de50c0add1e8f3b4e764c66a13c07235fee631",
      "tree": "161be1faee50800677bd01e1ca907cd135ffe0a0",
      "parents": [
        "5e5d7a22292613e55da8e91d75bcc062fd861f41"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Sep 06 15:17:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:35 2005 -0700"
      },
      "message": "[PATCH] remove verify_area(): remove verify_area() from various uaccess.h headers\n\nRemove the deprecated (and unused) verify_area() from various uaccess.h\nheaders.\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": "36d57ac4a818cb4aa3edbdf63ad2ebc31106f925",
      "tree": "445eda00ee5974a65e21152cd240fb604c6d112d",
      "parents": [
        "32605a18152b246df483fadc1c23854addde8755"
      ],
      "author": {
        "name": "H. J. Lu",
        "email": "hjl@lucon.org",
        "time": "Tue Sep 06 15:16:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:21 2005 -0700"
      },
      "message": "[PATCH] auxiliary vector cleanups\n\nThe size of auxiliary vector is fixed at 42 in linux/sched.h.  But it isn\u0027t\nvery obvious when looking at linux/elf.h.  This patch adds AT_VECTOR_SIZE\nso that we can change it if necessary when a new vector is added.\n\nBecause of include file ordering problems, doing this necessitated the\nextraction of the AT_* symbols into a standalone header file.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4732efbeb997189d9f9b04708dc26bf8613ed721",
      "tree": "885308bb2b521e52e13aaa8a67c78b2ab3c18cd8",
      "parents": [
        "5b039e681b8c5f30aac9cc04385cc94be45d0823"
      ],
      "author": {
        "name": "Jakub Jelinek",
        "email": "jakub@redhat.com",
        "time": "Tue Sep 06 15:16:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:17 2005 -0700"
      },
      "message": "[PATCH] FUTEX_WAKE_OP: pthread_cond_signal() speedup\n\nATM pthread_cond_signal is unnecessarily slow, because it wakes one waiter\n(which at least on UP usually means an immediate context switch to one of\nthe waiter threads).  This waiter wakes up and after a few instructions it\nattempts to acquire the cv internal lock, but that lock is still held by\nthe thread calling pthread_cond_signal.  So it goes to sleep and eventually\nthe signalling thread is scheduled in, unlocks the internal lock and wakes\nthe waiter again.\n\nNow, before 2003-09-21 NPTL was using FUTEX_REQUEUE in pthread_cond_signal\nto avoid this performance issue, but it was removed when locks were\nredesigned to the 3 state scheme (unlocked, locked uncontended, locked\ncontended).\n\nFollowing scenario shows why simply using FUTEX_REQUEUE in\npthread_cond_signal together with using lll_mutex_unlock_force in place of\nlll_mutex_unlock is not enough and probably why it has been disabled at\nthat time:\n\nThe number is value in cv-\u003e__data.__lock.\n        thr1            thr2            thr3\n0       pthread_cond_wait\n1       lll_mutex_lock (cv-\u003e__data.__lock)\n0       lll_mutex_unlock (cv-\u003e__data.__lock)\n0       lll_futex_wait (\u0026cv-\u003e__data.__futex, futexval)\n0                       pthread_cond_signal\n1                       lll_mutex_lock (cv-\u003e__data.__lock)\n1                                       pthread_cond_signal\n2                                       lll_mutex_lock (cv-\u003e__data.__lock)\n2                                         lll_futex_wait (\u0026cv-\u003e__data.__lock, 2)\n2                       lll_futex_requeue (\u0026cv-\u003e__data.__futex, 0, 1, \u0026cv-\u003e__data.__lock)\n                          # FUTEX_REQUEUE, not FUTEX_CMP_REQUEUE\n2                       lll_mutex_unlock_force (cv-\u003e__data.__lock)\n0                         cv-\u003e__data.__lock \u003d 0\n0                         lll_futex_wake (\u0026cv-\u003e__data.__lock, 1)\n1       lll_mutex_lock (cv-\u003e__data.__lock)\n0       lll_mutex_unlock (cv-\u003e__data.__lock)\n          # Here, lll_mutex_unlock doesn\u0027t know there are threads waiting\n          # on the internal cv\u0027s lock\n\nNow, I believe it is possible to use FUTEX_REQUEUE in pthread_cond_signal,\nbut it will cost us not one, but 2 extra syscalls and, what\u0027s worse, one of\nthese extra syscalls will be done for every single waiting loop in\npthread_cond_*wait.\n\nWe would need to use lll_mutex_unlock_force in pthread_cond_signal after\nrequeue and lll_mutex_cond_lock in pthread_cond_*wait after lll_futex_wait.\n\nAnother alternative is to do the unlocking pthread_cond_signal needs to do\n(the lock can\u0027t be unlocked before lll_futex_wake, as that is racy) in the\nkernel.\n\nI have implemented both variants, futex-requeue-glibc.patch is the first\none and futex-wake_op{,-glibc}.patch is the unlocking inside of the kernel.\n The kernel interface allows userland to specify how exactly an unlocking\noperation should look like (some atomic arithmetic operation with optional\nconstant argument and comparison of the previous futex value with another\nconstant).\n\nIt has been implemented just for ppc*, x86_64 and i?86, for other\narchitectures I\u0027m including just a stub header which can be used as a\nstarting point by maintainers to write support for their arches and ATM\nwill just return -ENOSYS for FUTEX_WAKE_OP.  The requeue patch has been\n(lightly) tested just on x86_64, the wake_op patch on ppc64 kernel running\n32-bit and 64-bit NPTL and x86_64 kernel running 32-bit and 64-bit NPTL.\n\nWith the following benchmark on UP x86-64 I get:\n\nfor i in nptl-orig nptl-requeue nptl-wake_op; do echo time elf/ld.so --library-path .:$i /tmp/bench; \\\nfor j in 1 2; do echo ( time elf/ld.so --library-path .:$i /tmp/bench ) 2\u003e\u00261; done; done\ntime elf/ld.so --library-path .:nptl-orig /tmp/bench\nreal 0m0.655s user 0m0.253s sys 0m0.403s\nreal 0m0.657s user 0m0.269s sys 0m0.388s\ntime elf/ld.so --library-path .:nptl-requeue /tmp/bench\nreal 0m0.496s user 0m0.225s sys 0m0.271s\nreal 0m0.531s user 0m0.242s sys 0m0.288s\ntime elf/ld.so --library-path .:nptl-wake_op /tmp/bench\nreal 0m0.380s user 0m0.176s sys 0m0.204s\nreal 0m0.382s user 0m0.175s sys 0m0.207s\n\nThe benchmark is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00001.txt\nOlder futex-requeue-glibc.patch version is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00002.txt\nOlder futex-wake_op-glibc.patch version is at:\nhttp://sourceware.org/ml/libc-alpha/2005-03/txt00003.txt\nWill post a new version (just x86-64 fixes so that the patch\napplies against pthread_cond_signal.S) to libc-hacker ml soon.\n\nAttached is the kernel FUTEX_WAKE_OP patch as well as a simple-minded\ntestcase that will not test the atomicity of the operation, but at least\ncheck if the threads that should have been woken up are woken up and\nwhether the arithmetic operation in the kernel gave the expected results.\n\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Yoichi Yuasa \u003cyuasa@hh.iij4u.or.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa5b08d5f818063d18433194f20359ef2ae50254",
      "tree": "f2b2bc88347a618f0c4b535d57d2a5271a5eb98e",
      "parents": [
        "0e5c9f39f64d8a55c5db37a5ea43e37d3422fd92"
      ],
      "author": {
        "name": "Kyle Moffett",
        "email": "mrmacman_g4@mac.com",
        "time": "Sat Sep 03 15:55:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:48 2005 -0700"
      },
      "message": "[PATCH] sab: consolidate kmem_bufctl_t\n\nThis is used only in slab.c and each architecture gets to define whcih\nunderlying type is to be used.\n\nSeems a bit silly - move it to slab.c and use the same type for all\narchitectures: unsigned int.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd4fd5aac1282825195c6816ed40a2a6d42db5bf",
      "tree": "5908cf4c88a7c9d69ea7bdc1c354d51b6ff47f86",
      "parents": [
        "28ae55c98e4d16eac9a05a8a259d7763ef3aeb18"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Sat Sep 03 15:54:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:39 2005 -0700"
      },
      "message": "[PATCH] mm: consolidate get_order\n\nSomeone mentioned that almost all the architectures used basically the same\nimplementation of get_order.  This patch consolidates them into\nasm-generic/page.h and includes that in the appropriate places.  The\nexceptions are ia64 and ppc which have their own (presumably optimised)\nversions.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0573dea1fb32ebc72ffa05980fd840df1d80860",
      "tree": "ae10ad849dce6dbeec1b281fbd51214030f21902",
      "parents": [
        "f9e815b376dc19e6afc551cd755ac64e9e42d81f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Aug 09 19:30:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:31:35 2005 -0700"
      },
      "message": "[NET]: Introduce SO_{SND,RCV}BUFFORCE socket options\n\nAllows overriding of sysctl_{wmem,rmrm}_max\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c9034735eccbf82608a4602c59aaf6053ea9416",
      "tree": "219e8cd4b5cfffeb261f42a2bd8e512be19cba40",
      "parents": [
        "abcd9e51f5b832439b119d530db1353c12fd4073"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Jul 26 11:29:55 2005 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 26 14:35:41 2005 -0700"
      },
      "message": "[PATCH] Add emergency_restart()\n\nWhen the kernel is working well and we want to restart cleanly\nkernel_restart is the function to use.   But in many instances\nthe kernel wants to reboot when thing are expected to be working\nvery badly such as from panic or a software watchdog handler.\n\nThis patch adds the function emergency_restart() so that\ncallers can be clear what semantics they expect when calling\nrestart.  emergency_restart() is expected to be callable\nfrom interrupt context and possibly reliable in even more\ntrying circumstances.\n\nThis is an initial generic implementation for all architectures.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb4a61b6eaee01707f24deeefc5d7136f25f75c5",
      "tree": "8d353d7b04addad950de8ae24eda7cdfe6fbea85",
      "parents": [
        "e24c2d963a604d9eaa560c90371fa387d3eec8f1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Jun 06 23:07:46 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 27 21:52:46 2005 -0700"
      },
      "message": "[PATCH] PCI: fix up errors after dma bursting patch and CONFIG_PCI\u003dn\n\nWith CONFIG_PCI\u003dn:\n\nIn file included from include/linux/pci.h:917,\n                 from lib/iomap.c:6:\ninclude/asm/pci.h:104: warning: `enum pci_dma_burst_strategy\u0027 declared inside parameter list\ninclude/asm/pci.h:104: warning: its scope is only this definition or declaration, which is probably not what you want.\ninclude/asm/pci.h: In function `pci_dma_burst_advice\u0027:\ninclude/asm/pci.h:106: dereferencing pointer to incomplete type\ninclude/asm/pci.h:106: `PCI_DMA_BURST_INFINITY\u0027 undeclared (first use in this function)\ninclude/asm/pci.h:106: (Each undeclared identifier is reported only once\ninclude/asm/pci.h:106: for each function it appears in.)\nmake[1]: *** [lib/iomap.o] Error 1\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e24c2d963a604d9eaa560c90371fa387d3eec8f1",
      "tree": "66be193d59dd22fac0b62980769c4f19e045b5a2",
      "parents": [
        "2311b1f2bbd36fa5f366a7448c718b2556e0f02c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 02 12:55:50 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 27 21:52:45 2005 -0700"
      },
      "message": "[PATCH] PCI: DMA bursting advice\n\nAfter seeing, at best, \"guesses\" as to the following kind\nof information in several drivers, I decided that we really\nneed a way for platforms to specifically give advice in this\narea for what works best with their PCI controller implementation.\n\nBasically, this new interface gives DMA bursting advice on\nPCI.  There are three forms of the advice:\n\n1) Burst as much as possible, it is not necessary to end bursts\n   on some particular boundary for best performance.\n\n2) Burst on some byte count multiple.  A DMA burst to some multiple of\n   number of bytes may be done, but it is important to end the burst\n   on an exact multiple for best performance.\n\n   The best example of this I am aware of are the PPC64 PCI\n   controllers, where if you end a burst mid-cacheline then\n   chip has to refetch the data and the IOMMU translations\n   which hurts performance a lot.\n\n3) Burst on a single byte count multiple.  Bursts shall end\n   exactly on the next multiple boundary for best performance.\n\n   Sparc64 and Alpha\u0027s PCI controllers operate this way.  They\n   disconnect any device which tries to burst across a cacheline\n   boundary.\n\n   Actually, newer sparc64 PCI controllers do not have this behavior.\n   That is why the \"pdev\" is passed into the interface, so I can\n   add code later to check which PCI controller the system is using\n   and give advice accordingly.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "dcd497f99a1ef29a7c5e76142965be77e9dacabd",
      "tree": "684d64753c6cd71917cf3c360023dd273be376b4",
      "parents": [
        "35a82d1a53e1a9ad54efafcc940f9335beaed5c3"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 00:09:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] streamline preempt_count type across archs\n\nThe preempt_count member of struct thread_info is currently either defined\nas int, unsigned int or __s32 depending on arch.  This patch makes the type\nof preempt_count an int on all archs.\n\nHaving preempt_count be an unsigned type prevents the catching of\npreempt_count \u003c 0 bugs, and using int on some archs and __s32 on others is\nnot exactely \"neat\" - much nicer when it\u0027s just int all over.\n\nA previous version of this patch was already ACK\u0027ed by Robert Love, and the\nonly change in this version of the patch compared to the one he ACK\u0027ed is\nthat this one also makes sure the preempt_count member is consistently\ncommented.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b1ecb4c3a9e33cc8b93ac9cb046b535b72a15f68",
      "tree": "d34b412e61ff720926da836ff989d1c821b5ef1b",
      "parents": [
        "0555985d046348b39e44ff1da2719d73409d7981"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@www.linux.org.uk",
        "time": "Wed May 04 05:40:12 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Wed May 04 07:33:15 2005 -0700"
      },
      "message": "[PATCH] asm/signal.h unification\n\nNew file - asm-generic/signal.h.  Contains declarations of\n__sighandler_t, __sigrestore_t, SIG_DFL, SIG_IGN, SIG_ERR and default\ndefinitions of SIG_BLOCK, SIG_UNBLOCK and SIG_SETMASK.\n\nasm-*/signal.h switched to including it.  The only exception is\nasm-parisc/signal.h that wants its own declaration of __sighandler_t;\nthat one is left as-is.\n\nasm-ppc64/signal.h required one more thing - unlike everybody else it\nused __sigrestorer_t instead of usual __sigrestore_t.  PPC64 switched to\ncommon spelling.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e49332bd12e92da2df6d002f857ec62675ba2648",
      "tree": "f975cc5e4d93fc33e80f7213d2013e035bfc3ae7",
      "parents": [
        "a71c1ab50a2a0f4dd9834bf5a917a2f064535c6b"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Sun May 01 08:59:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:08 2005 -0700"
      },
      "message": "[PATCH] misc verify_area cleanups\n\nThere were still a few comments left refering to verify_area, and two\nfunctions, verify_area_skas \u0026 verify_area_tt that just wrap corresponding\naccess_ok_skas \u0026 access_ok_tt functions, just like verify_area does for\naccess_ok - deprecate those.\n\nThere was also a few places that still used verify_area in commented-out\ncode, fix those up to use access_ok.\n\nAfter applying this one there should not be anything left but finally\nremoving verify_area completely, which will happen after a kernel release\nor two.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f261b5f0dccd53ed3a9a95b55c36e24a698a92a",
      "tree": "c6f94657e1f50e59168184758ba2859d2ad5abc9",
      "parents": [
        "d59745ce3e7aa13856bca16d3bcbb95041775ff6"
      ],
      "author": {
        "name": "Stas Sergeev",
        "email": "stsp@aknet.ru",
        "time": "Sun May 01 08:59:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:02 2005 -0700"
      },
      "message": "[PATCH] move SA_xxx defines to linux/signal.h\n\nThe attached patch moves the IRQ-related SA_xxx flags (namely, SA_PROBE,\nSA_SAMPLE_RANDOM and SA_SHIRQ) from all the arch-specific headers to\nlinux/signal.h.  This looks like a left-over after the irq-handling code\nwas consolidated.  The code was moved to kernel/irq/*, but the flags are\nstill left per-arch.\n\nRight now, adding a new IRQ flag to the arch-specific header, like this\npatch does:\nhttp://cvs.sourceforge.net/viewcvs.py/*checkout*/alsa/alsa-driver/utils/patches/pcsp-kernel-2.6.10-03.diff?rev\u003d1.1\nno longer works, it breaks the compilation for all other arches, unless you\nadd that flag to all the other arch-specific headers too.  So I think such\na clean-up makes sense.\n\nSigned-off-by: Stas Sergeev \u003cstsp@aknet.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c8538a7aa5527d02c7191ac5da124efadf6a2827",
      "tree": "6a2fae8be308d38ed1abe1d5c7539db29238ae61",
      "parents": [
        "e43379f10b42194b8a6e1de342cfb44463c0f6da"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun May 01 08:59:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:01 2005 -0700"
      },
      "message": "[PATCH] remove all kernel BUGs\n\nThis patch eliminates all kernel BUGs, trims about 35k off the typical\nkernel, and makes the system slightly faster.\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": "d455a3696c72283923e6870e9e4fe1daa861d7cd",
      "tree": "572661a1ed6cceaf83cad55921b7812feace69ee",
      "parents": [
        "cdfb82fff33cf3b1a367a427e5d89a012dc568b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Apr 19 13:29:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org.(none)",
        "time": "Tue Apr 19 13:29:23 2005 -0700"
      },
      "message": "[PATCH] freepgt: arch FIRST_USER_ADDRESS 0\n\nReplace misleading definition of FIRST_USER_PGD_NR 0 by definition of\nFIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
