)]}'
{
  "log": [
    {
      "commit": "8524070b7982d76258942275908b7434cfcab4b4",
      "tree": "6e63c45c3b9ff6a86ad32b1de7adf48889eb0bfc",
      "parents": [
        "329c8d84ca1946c037d9859dc251b56d8b1b4630"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue May 08 00:27:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:06 2007 -0700"
      },
      "message": "Move timekeeping code to timekeeping.c\n\nMove the timekeeping code out of kernel/timer.c and into\nkernel/time/timekeeping.c.  I made no cleanups or other changes in transit.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "329c8d84ca1946c037d9859dc251b56d8b1b4630",
      "tree": "05cfd2124dd6066eb6c2e769be99f6860ffb7501",
      "parents": [
        "f75d222b836f7febfab0954c7612b23059d748cb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 08 00:27:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:06 2007 -0700"
      },
      "message": "time: SMP friendly alignment of struct clocksource\n\nstruct clocksource is a critical data structure.\n\nMost of its fields are read only, some of them are heavily modified at each\ntimer interrupt.\n\nIt makes sense to separate those fields and make sure they all share one\ncache line, or at least the minimum for machines with small cache lines.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3367b994fe4f131ab1240600682a1981de7cad0c",
      "tree": "2afbec0bf8943d628c48dfb07883b7ce62a5c318",
      "parents": [
        "28287033e12463c8ff89f1ea8038783d0360391c"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue May 08 00:27:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "\u003clinux/sysdev.h\u003e needs to include \u003clinux/module.h\u003e\n\nsysdev.h uses THIS_MODULE so should include \u003clinux/module.h\u003e.\n\n[akpm@linux-foundation.org: couple of fixes]\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28287033e12463c8ff89f1ea8038783d0360391c",
      "tree": "27eabb2890dd1e2e30363dee2f4263cbee906a42",
      "parents": [
        "6e453a67510a17f01b63835f18569e8c3939a38c"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue May 08 00:27:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Add a new deferrable delayed work init\n\nAdd a new deferrable delayed work init.  This can be used to schedule work\nthat are \u0027unimportant\u0027 when CPU is idle and can be called later, when CPU\neventually comes out of idle.\n\nUse this init in cpufreq ondemand governor.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e453a67510a17f01b63835f18569e8c3939a38c",
      "tree": "2cbc50f434cf4397d2f279480ea2c2a87defa9b0",
      "parents": [
        "da6752964290567a6b4ea180d1becda75e810e87"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue May 08 00:27:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Add support for deferrable timers\n\nIntroduce a new flag for timers - deferrable: Timers that work normally\nwhen system is busy.  But, will not cause CPU to come out of idle (just to\nservice this timer), when CPU is idle.  Instead, this timer will be\nserviced when CPU eventually wakes up with a subsequent non-deferrable\ntimer.\n\nThe main advantage of this is to avoid unnecessary timer interrupts when\nCPU is idle.  If the routine currently called by a timer can wait until\nnext event without any issues, this new timer can be used to setup timer\nevent for that routine.  This, with dynticks, allows CPUs to be lazy,\nallowing them to stay in idle for extended period of time by reducing\nunnecesary wakeup and thereby reducing the power consumption.\n\nThis patch:\n\nBuilds this new timer on top of existing timer infrastructure.  It uses\nlast bit in \u0027base\u0027 pointer of timer_list structure to store this deferrable\ntimer flag.  __next_timer_interrupt() function skips over these deferrable\ntimers when CPU looks for next timer event for which it has to wake up.\n\nThis is exported by a new interface init_timer_deferrable() that can be\ncalled in place of regular init_timer().\n\n[akpm@linux-foundation.org: Privatise a #define]\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c15a3837d2aa30e3ea41aed49d80abed355ab6bd",
      "tree": "23da1c16c1e73ac5679f81c3264fc0faeb92fcf2",
      "parents": [
        "d2d9433a4c84c9e7ed78d633fdbffb35d5afda17"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue May 08 00:27:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "parport-\u003edev driver model support\n\nCurrently a parport_driver can\u0027t get a handle on the device node for the\nunderlying parport (PNPACPI, PCI, etc).  That prevents correct placement of\nsysfs child nodes, which can affect things like power management.\n\nThis patch adds a field to \"struct parport\" pointing to that device node, and\nupdates non-legacy port drivers to initialize that device pointer.  That field\nreplaces the analagous PCI-only support in parport_pc.\n\n[akpm@linux-foundation.org: fix powerpc build]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c467a388ae9f236c039d4d0f4c4be07c7deebe97",
      "tree": "a56d519e9f06c05385b53e68921be481bbac1dff",
      "parents": [
        "dd9037a26a1e6ebec9121b4681c414dc77189a90"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Tue May 08 00:27:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Delete unused header file linux/awe_voice.h\n\nDelete the unused header file include/linux/awe_voice.h, as well as\nits corresponding Kbuild entry.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5f00f42f35e6f4699f105a3bd56874847cbf72f",
      "tree": "ac4e5c0a9fbafceacf5e78281bab508ba03e5044",
      "parents": [
        "c6b40d16d1cfa1a01158049bb887a9bbe48ef7ba"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue May 08 00:27:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "make remove_inode_dquot_ref() static\n\nremove_inode_dquot_ref() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef51c97623b94f51e439ac91d2736aab3d1b6594",
      "tree": "5c020421f1e5a6e28b5a9f341fec32479a8ffb3a",
      "parents": [
        "524e6752912a891a396a9cf74c5d7d60fff5510a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 08 00:27:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "Remove do_sync_file_range()\n\nRemove do_sync_file_range() and convert callers to just use\ndo_sync_mapping_range().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1eeb66a1bb973534dc3d064920a5ca683823372e",
      "tree": "19c22d611e6adefb352dbc107b859e4d13ba38c1",
      "parents": [
        "e3869792990f708c97be5877499cada70d469bd3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:27:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "move die notifier handling to common code\n\nThis patch moves the die notifier handling to common code.  Previous\nvarious architectures had exactly the same code for it.  Note that the new\ncode is compiled unconditionally, this should be understood as an appel to\nthe other architecture maintainer to implement support for it aswell (aka\nsprinkling a notify_die or two in the proper place)\n\narm had a notifiy_die that did something totally different, I renamed it to\narm_notify_die as part of the patch and made it static to the file it\u0027s\ndeclared and used at.  avr32 used to pass slightly less information through\nthis interface and I brought it into line with the other architectures.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix vmalloc_sync_all bustage]\n[bryan.wu@analog.com: fix vmalloc_sync_all in nommu]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98a27ba485c7508ef9d9527fe06e4686f3a163dc",
      "tree": "73d5dca7f1b5120ecf1bbcc664094044bc35dc56",
      "parents": [
        "2a65f1d9fe78475720bd8f0e0fbbf1973b1b5ac2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 08 00:26:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "tty: introduce no_tty and use it in selinux\n\nWhile researching the tty layer pid leaks I found a weird case in selinux when\nwe drop a controlling tty because of inadequate permissions we don\u0027t do the\nnormal hangup processing.  Which is a problem if it happens the session leader\nhas exec\u0027d something that can no longer access the tty.\n\nWe already have code in the kernel to handle this case in the form of the\nTIOCNOTTY ioctl.  So this patch factors out a helper function that is the\nessence of that ioctl and calls it from the selinux code.\n\nThis removes the inconsistency in handling dropping of a controlling tty and\nwho knows it might even make some part of user space happy because it received\na SIGHUP it was expecting.\n\nIn addition since this removes the last user of proc_set_tty outside of\ntty_io.c proc_set_tty is made static and removed from tty.h\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ae9200f2cab7b328e505fc9a7021db64e0590cf",
      "tree": "f3516ed394d6439f22d669329b4f47a0751e1f84",
      "parents": [
        "19c5d45a09312ca20cd1f9df3fd1a87fe0cb8aac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 08 00:26:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "enlarge console.name\n\nconsole.name[] is eight chars, but so is \"earlyvga\".  So when we try to print\nconsole-\u003ename when using earlyvga it runs off the end of the string.\n\nMake it bigger.\n\nDiagnosed-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9adef58b1d4fbb58d7daed931b6790c5a3b7543a",
      "tree": "23e5ea2b0a140d244f2ed203b4954309d052e43d",
      "parents": [
        "aa5bd7e929325dbb48be43c3dccf7d1da433e38e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 08 00:26:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "futex: get_futex_key, get_key_refs and drop_key_refs\n\nlguest uses the convenient futex infrastructure for inter-domain I/O, so\nexpose get_futex_key, get_key_refs (renamed get_futex_key_refs) and\ndrop_key_refs (renamed drop_futex_key_refs).  Also means we need to expose the\nunion that these use.\n\nNo code changes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a86b5e34e4d09e3246a983c53929ce38af52275",
      "tree": "1f7f56f6236508ff021b28e9481a1e834b50d66d",
      "parents": [
        "7c4e95bf483231d55bc0d491bc585bb9b7e852b8"
      ],
      "author": {
        "name": "Klaus Kudielka",
        "email": "klaus.kudielka@gmx.net",
        "time": "Tue May 08 00:26:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "cyclades: remove custom types\n\nSwitch from private uclong, etc over to standard types.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c4e95bf483231d55bc0d491bc585bb9b7e852b8",
      "tree": "13f9950574757685c639b141292294a7e99ee879",
      "parents": [
        "9b3af29bf33bfe08c604769632799d27d56ae103"
      ],
      "author": {
        "name": "Klaus Kudielka",
        "email": "klaus.kudielka@gmx.net",
        "time": "Tue May 08 00:26:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "fix cyclades.h for x86_64 (and probably others)\n\nAt least on x86_64 the present cyclades.h is broken due to the wrong size\nof uclong.  This affects, of course, both the kernel and the user-level\nutilities.  The symptom is that cyzload refuses to load the firmware.  I\nalso managed to freeze the machine when unloading the module.\n\nThe patch below fixes this in an architecture-independent way.  I have\ntested it with 2.6.19 and the driver works fine again with a Cyclades-Z on\nan Athlon 64 X2.\n\n[akpm@linux-foundation.org: fix warnings]\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b3af29bf33bfe08c604769632799d27d56ae103",
      "tree": "e4709e8023b717b0b20632c11f393eda568a31c2",
      "parents": [
        "6de02123bf3e8baeee97fff7efc50bc192332804"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue May 08 00:26:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "Kprobes: Make kprobe.symbol_name const\n\nKprobes doesn\u0027t scribble the kprobe.symbol_name field.  Its only set by the\nmodule when registering the probe.  Modules that exercise good hygiene\nusing the \"const\" qualifier will see warnings...\n\n\twarning: assignment discards qualifiers from pointer target type\n\nMake struct kprobe.symbol_name const char *\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c23fbb6bcb3eb9cdf39a103edadf57bde8ce309c",
      "tree": "d79ab2278774de2c1a8061aa948ed068902e87b4",
      "parents": [
        "2793274298c4423d79701e9a8190f2940bf3c785"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue May 08 00:26:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "VFS: delay the dentry name generation on sockets and pipes\n\n1) Introduces a new method in \u0027struct dentry_operations\u0027.  This method\n   called d_dname() might be called from d_path() to build a pathname for\n   special filesystems.  It is called without locks.\n\n   Future patches (if we succeed in having one common dentry for all\n   pipes/sockets) may need to change prototype of this method, but we now\n   use : char *d_dname(struct dentry *dentry, char *buffer, int buflen);\n\n2) Adds a dynamic_dname() helper function that eases d_dname() implementations\n\n3) Defines d_dname method for sockets : No more sprintf() at socket\n   creation.  This is delayed up to the moment someone does an access to\n   /proc/pid/fd/...\n\n4) Defines d_dname method for pipes : No more sprintf() at pipe\n   creation.  This is delayed up to the moment someone does an access to\n   /proc/pid/fd/...\n\nA benchmark consisting of 1.000.000 calls to pipe()/close()/close() gives a\n*nice* speedup on my Pentium(M) 1.6 Ghz :\n\n3.090 s instead of 3.450 s\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7695650a924a6859910c8c19dfa43b4d08224d66",
      "tree": "5947c3e1b24600b6440468c11b30feeef31eee2c",
      "parents": [
        "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@openvz.org",
        "time": "Tue May 08 00:25:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "Fix race between proc_get_inode() and remove_proc_entry()\n\nproc_lookup\t\t\t\tremove_proc_entry\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nlock_kernel();\nspin_lock(\u0026proc_subdir_lock);\n[find PDE with refcount 0]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find PDE with refcount 0]\n\t\t\t\t\t[check refcount and free PDE]\n\t\t\t\t\tspin_unlock(\u0026proc_subdir_lock);\nproc_get_inode:\n\tde_get(de); /* boom */\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9",
      "tree": "f19be816fef3565b7f9cc746786e29fee0ac62e6",
      "parents": [
        "880afc4d76af452267174b5989943f081c1db2c0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:25:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "add filesystem subtype support\n\nThere\u0027s a slight problem with filesystem type representation in fuse\nbased filesystems.\n\nFrom the kernel\u0027s view, there are just two filesystem types: fuse and\nfuseblk.  From the user\u0027s view there are lots of different filesystem\ntypes.  The user is not even much concerned if the filesystem is fuse based\nor not.  So there\u0027s a conflict of interest in how this should be\nrepresented in fstab, mtab and /proc/mounts.\n\nThe current scheme is to encode the real filesystem type in the mount\nsource.  So an sshfs mount looks like this:\n\n  sshfs#user@server:/   /mnt/server    fuse   rw,nosuid,nodev,...\n\nThis url-ish syntax works OK for sshfs and similar filesystems.  However\nfor block device based filesystems (ntfs-3g, zfs) it doesn\u0027t work, since\nthe kernel expects the mount source to be a real device name.\n\nA possibly better scheme would be to encode the real type in the type\nfield as \"type.subtype\".  So fuse mounts would look like this:\n\n  /dev/hda1       /mnt/windows   fuseblk.ntfs-3g   rw,...\n  user@server:/   /mnt/server    fuse.sshfs        rw,nosuid,nodev,...\n\nThis patch adds the necessary code to the kernel so that this can be\ncorrectly displayed in /proc/mounts.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e17c5508fa015f2c7690e29041f437e9308c64f",
      "tree": "d53402b77180827931fc31b190be53c6b20ec2c0",
      "parents": [
        "6f8bc500a10ab9cb3861e5bb71155d7bd2bbd2d5"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue May 08 00:25:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "init dma masks in pnp_dev\n\nPNP now initializes device dma masks, which prevents oopses when generic\ndma calls are made using pnp device nodes.\n\nThis assumes PNP only uses ISA DMA, with 24 bit addresses; and that it\u0027s\nsafe to init those masks for all devices (rather than finding out which\ndevices have been assigned DMA channels, and handling only those).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Adam Belay \u003cabelay@novell.com\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3222c4ecc649c4ae568e61dda9349482401b501",
      "tree": "d96614ef67d947a3dd8ab0929a4755bce9fdbcc1",
      "parents": [
        "4fc75ff4816c3483b4b772b2f6cb3d8fd88ca547"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Tue May 08 00:25:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "Merge sys_clone()/sys_unshare() nsproxy and namespace handling\n\nsys_clone() and sys_unshare() both makes copies of nsproxy and its associated\nnamespaces.  But they have different code paths.\n\nThis patch merges all the nsproxy and its associated namespace copy/clone\nhandling (as much as possible).  Posted on container list earlier for\nfeedback.\n\n- Create a new nsproxy and its associated namespaces and pass it back to\n  caller to attach it to right process.\n\n- Changed all copy_*_ns() routines to return a new copy of namespace\n  instead of attaching it to task-\u003ensproxy.\n\n- Moved the CAP_SYS_ADMIN checks out of copy_*_ns() routines.\n\n- Removed unnessary !ns checks from copy_*_ns() and added BUG_ON()\n  just incase.\n\n- Get rid of all individual unshare_*_ns() routines and make use of\n  copy_*_ns() instead.\n\n[akpm@osdl.org: cleanups, warning fix]\n[clg@fr.ibm.com: remove dup_namespaces() declaration]\n[serue@us.ibm.com: fix CONFIG_IPC_NS\u003dn, clone(CLONE_NEWIPC) retval]\n[akpm@linux-foundation.org: fix build with CONFIG_SYSVIPC\u003dn]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \u003ccontainers@lists.osdl.org\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "616883df78bd4b3fcdb6ddc39bd3d4cb902bfa32",
      "tree": "c1ad0fa79ae7cc50593e7b435006520b07578970",
      "parents": [
        "c761c84154dcd952182e4867d841298c9eb0b14b"
      ],
      "author": {
        "name": "Monakhov Dmitriy",
        "email": "dmonakhov@openvz.org",
        "time": "Tue May 08 00:25:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "IRQ: add __must_check to request_irq\n\nThis could help to find buggy drivers where request_irq return value wasn\u0027t\nchecked.  There\u0027s just no reason to ignore errors which can and do occur.\nAnyone who got warning during compilation have to realise what it is\u0027t\nrealy safe code.\n\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe08a9d4982d9618ec25760ea715c46fe051e508",
      "tree": "6535cfaf206d19cb0a5e09192f49b37e91ba6232",
      "parents": [
        "6f2fad748ccced5b9313efce2a2c7ae4c04ef564"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue May 08 00:24:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "reiserfs: shrink superblock if no xattrs\n\nThis makes in-core superblock fit into one cacheline here.\n\nBefore:\n    struct dentry *            xattr_root;           /*   124     4 */\n    /* --- cacheline 1 boundary (128 bytes) --- */\n    struct rw_semaphore        xattr_dir_sem;        /*   128    12 */\n    int                        j_errno;              /*   140     4 */\n    }; /* size: 144, cachelines: 2 */\n       /* sum members: 142, holes: 1, sum holes: 2 */\n       /* last cacheline: 16 bytes */\n\nAfter:\n    int                        j_errno;              /*   124     4 */\n    /* --- cacheline 1 boundary (128 bytes) --- */\n    }; /* size: 128, cachelines: 1 */\n       /* sum members: 126, holes: 1, sum holes: 2 */\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee7b9e3706b9c5f90113eb16a1a84a1c01e09f95",
      "tree": "cefd066af5ddf6f761790882efd4c7365f6538a0",
      "parents": [
        "46595390e97b3ab2741a36f5ff69e8f6033fa9c0"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "xschmi00@stud.feec.vutbr.cz",
        "time": "Tue May 08 00:24:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "Fix compilation of drivers with -O0\n\nIt is sometimes useful to compile individual drivers with optimization\ndisabled for easier debugging.  Currently drivers which use htonl() and\nsimilar functions don\u0027t compile with -O0.  This patch fixes it.  It also\nremoves obsolete and misleading comments.  This header is not for\nuserspace, so we don\u0027t have to care about strange programs these comments\nmention.\n\n(akpm: -O0 probably isn\u0027t a good idea, but this code looks pretty crufty and\nunuseful)\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46595390e97b3ab2741a36f5ff69e8f6033fa9c0",
      "tree": "911fb1bd59ecf260999eca19fad4534f719894da",
      "parents": [
        "b2ead6e012e2b2ab31851c288e0dd7872884a8a3"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue May 08 00:24:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "init/do_mounts.c: proper prepare_namespace() prototype\n\nAdd a proper protype for prepare_namespace() in include/linux/init.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ae7075bcd805c3aa5e8f53effc63a4562d6110e",
      "tree": "76ce9da136deee264b1642169522981b5175af82",
      "parents": [
        "7b8e89249ba54fb6e12358bbed7e3070fa1d1e6a"
      ],
      "author": {
        "name": "Chris Snook",
        "email": "csnook@redhat.com",
        "time": "Tue May 08 00:24:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:59 2007 -0700"
      },
      "message": "use use SEEK_MAX to validate user lseek arguments\n\nAdd SEEK_MAX and use it to validate lseek arguments from userspace.\n\nSigned-off-by: Chris Snook \u003ccsnook@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e2c20023f34b652605a5fb7c68bb843d2b100a8",
      "tree": "bd041c1762724dbbc91f4b2da3fc0716165784e5",
      "parents": [
        "02fb6149f7a64c62934c035e7635321cb9a8cf2e"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "xyzzy@speakeasy.org",
        "time": "Tue May 08 00:24:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:59 2007 -0700"
      },
      "message": "Fix constant folding and poor optimization in byte swapping code\n\nConstant folding does not work for the swabXX() byte swapping functions,\nand the C versions optimize poorly.\n\nAttempting to initialize a global variable to swab16(0x1234) or put\nsomething like \"case swab32(42):\" in a switch statement will not compile.\nIt can work, swab.h just isn\u0027t doing it correctly.  This patch fixes that.\n\nContrary to the comment in asm-i386/byteorder.h, gcc does not recognize the\n\"C\" version of swab16 and turn it into efficient code.  gcc can do this,\njust not with the current code.  The simple function:\n\nu16 foo(u16 x) { return swab16(x); }\n\nWould compile to:\n        movzwl  %ax, %eax\n        movl    %eax, %edx\n        shrl    $8, %eax\n        sall    $8, %edx\n        orl     %eax, %edx\n\nWith this patch, it will compile to:\n        rolw    $8, %ax\n\nI also attempted to document the maze different macros/inline functions\nthat are used to create the final product.\n\nSigned-off-by: Trent Piepho \u003cxyzzy@speakeasy.org\u003e\nCc: Francois-Rene Rideau \u003cfare@tunes.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97dc32cdb1b53832801159d5f634b41aad9d0a23",
      "tree": "438f59c84d3528de5f68583d312beceb1aa32659",
      "parents": [
        "4d7bf11d649c72621ca31b8ea12b9c94af380e63"
      ],
      "author": {
        "name": "William Cohen",
        "email": "wcohen@redhat.com",
        "time": "Tue May 08 00:23:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:58 2007 -0700"
      },
      "message": "reduce size of task_struct on 64-bit machines\n\nThis past week I was playing around with that pahole tool\n(http://oops.ghostprotocols.net:81/acme/dwarves/) and looking at the size\nof various struct in the kernel.  I was surprised by the size of the\ntask_struct on x86_64, approaching 4K.  I looked through the fields in\ntask_struct and found that a number of them were declared as \"unsigned\nlong\" rather than \"unsigned int\" despite them appearing okay as 32-bit\nsized fields.  On x86_64 \"unsigned long\" ends up being 8 bytes in size and\nforces 8 byte alignment.  Is there a reason there a reason they are\n\"unsigned long\"?\n\nThe patch below drops the size of the struct from 3808 bytes (60 64-byte\ncachelines) to 3760 bytes (59 64-byte cachelines).  A couple other fields\nin the task struct take a signficant amount of space:\n\nstruct thread_struct       thread;               688\nstruct held_lock           held_locks[30];       1680\n\nCONFIG_LOCKDEP is turned on in the .config\n\n[akpm@linux-foundation.org: fix printk warnings]\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab1b6f03a10ba1f5638188ab06bf46e33ac3a160",
      "tree": "2dc7ce01df5d51d81e250dd9cee1b7b04627466e",
      "parents": [
        "7e4c3690b07f04b1942c39db358a5c8a72831daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:23:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:58 2007 -0700"
      },
      "message": "simplify the stacktrace code\n\nSimplify the stacktrace code:\n\n - remove the unused task argument to save_stack_trace, it\u0027s always\n   current\n - remove the all_contexts flag, it\u0027s alwasy 0\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e9f45bd18191bbd05468b19b7064b8da8262aba",
      "tree": "06c790a9cb1afc83d170447a277e51f5a1a5f303",
      "parents": [
        "c83e44842074a87614c78eca70fa6467b0bc3c4a"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Tue May 08 00:23:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "Factor outstanding I/O error handling\n\nCleanup: setting an outstanding error on a mapping was open coded too many\ntimes.  Factor it out in mapping_set_error().\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ceb331433e8aad9c5f441a965d7c681f8b9046f",
      "tree": "fd3d679a4015242dd65f0721f52242ad47619910",
      "parents": [
        "b46b8f19c9cd435ecac4d9d12b39d78c137ecd66"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue May 08 00:23:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "mm: move common segment checks to separate helper function\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Anton Altaparmakov \u003caia21@cam.ac.uk\u003e\nAcked-by: David Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b46b8f19c9cd435ecac4d9d12b39d78c137ecd66",
      "tree": "4b1e393eeb42f70867d30a7d0116ff948941095b",
      "parents": [
        "5b94f675f57e4ff16c8fda09088d7480a84dcd91"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue May 08 00:22:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "Increase slab redzone to 64bits\n\nThere are two problems with the existing redzone implementation.\n\nFirstly, it\u0027s causing misalignment of structures which contain a 64-bit\ninteger, such as netfilter\u0027s \u0027struct ipt_entry\u0027 -- causing netfilter\nmodules to fail to load because of the misalignment.  (In particular, the\nfirst check in\nnet/ipv4/netfilter/ip_tables.c::check_entry_size_and_hooks())\n\nOn ppc32 and sparc32, amongst others, __alignof__(uint64_t) \u003d\u003d 8.\n\nWith slab debugging, we use 32-bit redzones. And allocated slab objects\naren\u0027t sufficiently aligned to hold a structure containing a uint64_t.\n\nBy _just_ setting ARCH_KMALLOC_MINALIGN to __alignof__(u64) we\u0027d disable\nredzone checks on those architectures.  By using 64-bit redzones we avoid that\nloss of debugging, and also fix the other problem while we\u0027re at it.\n\nWhen investigating this, I noticed that on 64-bit platforms we\u0027re using a\n32-bit value of RED_ACTIVE/RED_INACTIVE in the 64-bit memory location set\naside for the redzone.  Which means that the four bytes immediately before\nor after the allocated object at 0x00,0x00,0x00,0x00 for LE and BE\nmachines, respectively.  Which is probably not the most useful choice of\npoison value.\n\nOne way to fix both of those at once is just to switch to 64-bit\nredzones in all cases.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d56d3c43cc97ae48586745556f5a5b564d61582",
      "tree": "28f2edc1e69b79e94d99023041dd0358861b6956",
      "parents": [
        "0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6",
        "586759f03e2e9031ac5589912a51a909ed53c30a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "message": "Merge branch \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux:\n  gfs2: nfs lock support for gfs2\n  lockd: add code to handle deferred lock requests\n  lockd: always preallocate block in nlmsvc_lock()\n  lockd: handle test_lock deferrals\n  lockd: pass cookie in nlmsvc_testlock\n  lockd: handle fl_grant callbacks\n  lockd: save lock state on deferral\n  locks: add fl_grant callback for asynchronous lock return\n  nfsd4: Convert NFSv4 to new lock interface\n  locks: add lock cancel command\n  locks: allow {vfs,posix}_lock_file to return conflicting lock\n  locks: factor out generic/filesystem switch from setlock code\n  locks: factor out generic/filesystem switch from test_lock\n  locks: give posix_test_lock same interface as -\u003elock\n  locks: make -\u003elock release private data before returning in GETLK case\n  locks: create posix-to-flock helper functions\n  locks: trivial removal of unnecessary parentheses\n"
    },
    {
      "commit": "5cefcab3db2b13093480f2a42bf081574dd72d3d",
      "tree": "c3755a241553436a1b84d65ad3c00f77ce6d02ad",
      "parents": [
        "5f757f91e70a97eda8f0cc13bddc853209b2d173",
        "37fde8ca6c60ea61f5e9d7cb877c25ac60e74167"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:26:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:26:27 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (34 commits)\n  [GFS2] Uncomment sprintf_symbol calling code\n  [DLM] lowcomms style\n  [GFS2] printk warning fixes\n  [GFS2] Patch to fix mmap of stuffed files\n  [GFS2] use lib/parser for parsing mount options\n  [DLM] Lowcomms nodeid range \u0026 initialisation fixes\n  [DLM] Fix dlm_lowcoms_stop hang\n  [DLM] fix mode munging\n  [GFS2] lockdump improvements\n  [GFS2] Patch to detect corrupt number of dir entries in leaf and/or inode blocks\n  [GFS2] bz 236008: Kernel gpf doing cat /debugfs/gfs2/xxx (lock dump)\n  [DLM] fs/dlm/ast.c should #include \"ast.h\"\n  [DLM] Consolidate transport protocols\n  [DLM] Remove redundant assignment\n  [GFS2] Fix bz 234168 (ignoring rgrp flags)\n  [DLM] change lkid format\n  [DLM] interface for purge (2/2)\n  [DLM] add orphan purging code (1/2)\n  [DLM] split create_message function\n  [GFS2] Set drop_count to 0 (off) by default\n  ...\n"
    },
    {
      "commit": "9fa0853a85a3a4067e4ad0aaa5d90984c2dd21b5",
      "tree": "ac90f6535bc053b3859dc050cbbd577a0a1ef95b",
      "parents": [
        "ef93127e4c7b4b8d46421045641048397eaac43d",
        "cf4328cd949c2086091c62c5685f1580fe9b55e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:23:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:23:31 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [NET]: rfkill: add support for input key to control wireless radio\n  [NET] net/core: Fix error handling\n  [TG3]: Update version and reldate.\n  [TG3]: Eliminate spurious interrupts.\n  [TG3]: Add ASPM workaround.\n  [Bluetooth] Correct SCO buffer for another Broadcom based dongle\n  [Bluetooth] Add support for Targus ACB10US USB dongle\n  [Bluetooth] Disconnect L2CAP connection after last RFCOMM DLC\n  [Bluetooth] Check that device is in rfcomm_dev_list before deleting\n  [Bluetooth] Use in-kernel sockets API\n  [Bluetooth] Attach host adapters to the Bluetooth bus\n  [Bluetooth] Fix L2CAP and HCI setsockopt() information leaks\n"
    },
    {
      "commit": "e024715f5f6250179a31716a898800a48cf23b39",
      "tree": "2cba9702be41ff8263d1fb50825f6f17c9f40171",
      "parents": [
        "85ee2ce8ae7d6716beffc84451dd65cd217dbf7a"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 06 14:51:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:02 2007 -0700"
      },
      "message": "uml: improve checking and diagnostics of ethernet MACs\n\nImprove checking and diagnostics for broadcast and multicast Ethernet MAC\naddresses, and distinguish between those cases in output; also make sure the\ndevice is assigned a MAC address valid only locally to avoid collisions.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5e631cf65f4d6875efcd571275436f2964a8b48",
      "tree": "1aee9d61560ee369b4a2f077a79e37ab868a4b2d",
      "parents": [
        "f34d9d2dcb7f17b64124841345b23adc0843e7a5"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun May 06 14:51:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:00 2007 -0700"
      },
      "message": "ARRAY_SIZE: check for type\n\nWe can use a gcc extension to ensure that ARRAY_SIZE() is handed an array,\nnot a pointer.  This is especially important when code is changed from a\nfixed array to a pointer.  I assume the Intel compiler doesn\u0027t support\n__builtin_types_compatible_p.\n\n[jdike@addtoit.com: uml: update UML definition of ARRAY_SIZE]\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56f99bcb52d64d70078b41cc176dd8b6f5763108",
      "tree": "4383e31e46975ae1c1f6c7833bed0766f762f6d5",
      "parents": [
        "9b95e43763cfdfebc1318d27e55712e7b6bfe098"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "swsusp: free more memory\n\nMove the definition of PAGES_FOR_IO to kernel/power/power.h and introduce\nSPARE_PAGES representing the number of pages that should be freed by the\nswsusp\u0027s memory shrinker in addition to PAGES_FOR_IO so that device drivers\ncan allocate some memory (up to 1 MB total) in their .suspend() routines\nwithout causing the suspend to fail.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab3bfca7abf3fd0fe41d26d839610a787aa7e587",
      "tree": "e62e58beaf9d22d4156b27d4523c3728bf5769bc",
      "parents": [
        "b1296cc48b39355241470ef934a5e2270e3f23bd"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Sun May 06 14:50:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "remove software_suspend()\n\nRemove software_suspend() and all its users since\npm_suspend(PM_SUSPEND_DISK) should be equivalent and there\u0027s no point in\nhaving two interfaces for the same thing.\n\nThe patch also changes the valid_state function to return 0 (false) for\nPM_SUSPEND_DISK when SOFTWARE_SUSPEND is not configured instead of\naccepting it and having the whole thing fail later.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04293355ac9dbe81bd01b89ca2adb58be34c2c60",
      "tree": "fa5d893fee14e27056cac71dd3e3fed9fe2167a9",
      "parents": [
        "74dfd666de861c97d47bdbd892f6d21b801d0247"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "mm: remove unused page flags\n\nRemove the two page flags that were previously used by swsusp and are no\nlonger needed.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74dfd666de861c97d47bdbd892f6d21b801d0247",
      "tree": "7200946212cf546f4e5fac31db3dc97dbb144300",
      "parents": [
        "7be9823491ecbaf9700d7d3502cb4b4dd0ed868a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "swsusp: do not use page flags\n\nMake swsusp use memory bitmaps instead of page flags for marking \u0027nosave\u0027 and\nfree pages.  This allows us to \u0027recycle\u0027 two page flags that can be used for\nother purposes.  Also, the memory needed to store the bitmaps is allocated\nwhen necessary (ie.  before the suspend) and freed after the resume which is\nmore reasonable.\n\nThe patch is designed to minimize the amount of changes and there are some\nnice simplifications and optimizations possible on top of it.  I am going to\nimplement them separately in the future.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7be9823491ecbaf9700d7d3502cb4b4dd0ed868a",
      "tree": "10f606c59837d851376823dae5d8faf50a51bde8",
      "parents": [
        "433ecb4ab312f873870b67ee374502e84f6dcf92"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:58 2007 -0700"
      },
      "message": "swsusp: use inline functions for changing page flags\n\nReplace direct invocations of SetPageNosave(), SetPageNosaveFree() etc.  with\ncalls to inline functions that can be changed in subsequent patches without\nmodifying the code calling them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "194de5612777a9ff4f96dae1932f77a5a89e5f0a",
      "tree": "2def94b88b7ce3348ecd216032490754cc7a31a0",
      "parents": [
        "1394f03221790a988afc3e4b3cb79f2e477246a9"
      ],
      "author": {
        "name": "Bryan Wu",
        "email": "bryan.wu@analog.com",
        "time": "Sun May 06 14:50:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:58 2007 -0700"
      },
      "message": "blackfin: serial driver\n\nThis patch implements the driver necessary use the Analog Devices Blackfin\nprocessor\u0027s Serial Port.\n\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Russell King \u003crmk+lkml@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1394f03221790a988afc3e4b3cb79f2e477246a9",
      "tree": "2c1963c9a4f2d84a5e021307fde240c5d567cf70",
      "parents": [
        "73243284463a761e04d69d22c7516b2be7de096c"
      ],
      "author": {
        "name": "Bryan Wu",
        "email": "bryan.wu@analog.com",
        "time": "Sun May 06 14:50:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:58 2007 -0700"
      },
      "message": "blackfin architecture\n\nThis adds support for the Analog Devices Blackfin processor architecture, and\ncurrently supports the BF533, BF532, BF531, BF537, BF536, BF534, and BF561\n(Dual Core) devices, with a variety of development platforms including those\navaliable from Analog Devices (BF533-EZKit, BF533-STAMP, BF537-STAMP,\nBF561-EZKIT), and Bluetechnix!  Tinyboards.\n\nThe Blackfin architecture was jointly developed by Intel and Analog Devices\nInc.  (ADI) as the Micro Signal Architecture (MSA) core and introduced it in\nDecember of 2000.  Since then ADI has put this core into its Blackfin\nprocessor family of devices.  The Blackfin core has the advantages of a clean,\northogonal,RISC-like microprocessor instruction set.  It combines a dual-MAC\n(Multiply/Accumulate), state-of-the-art signal processing engine and\nsingle-instruction, multiple-data (SIMD) multimedia capabilities into a single\ninstruction-set architecture.\n\nThe Blackfin architecture, including the instruction set, is described by the\nADSP-BF53x/BF56x Blackfin Processor Programming Reference\nhttp://blackfin.uclinux.org/gf/download/frsrelease/29/2549/Blackfin_PRM.pdf\n\nThe Blackfin processor is already supported by major releases of gcc, and\nthere are binary and source rpms/tarballs for many architectures at:\nhttp://blackfin.uclinux.org/gf/project/toolchain/frs There is complete\ndocumentation, including \"getting started\" guides available at:\nhttp://docs.blackfin.uclinux.org/ which provides links to the sources and\npatches you will need in order to set up a cross-compiling environment for\nbfin-linux-uclibc\n\nThis patch, as well as the other patches (toolchain, distribution,\nuClibc) are actively supported by Analog Devices Inc, at:\nhttp://blackfin.uclinux.org/\n\nWe have tested this on LTP, and our test plan (including pass/fails) can\nbe found at:\nhttp://docs.blackfin.uclinux.org/doku.php?id\u003dtesting_the_linux_kernel\n\n[m.kozlowski@tuxland.pl: balance parenthesis in blackfin header files]\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Aubrey Li \u003caubrey.li@analog.com\u003e\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "906e0be197232c219197d058ef5095baa7764cd4",
      "tree": "0b2401f5448ddb1b856da8c080e71e0080183c41",
      "parents": [
        "4ab688c51226188f2d4ad4f789032c107944ef89"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "page migration: Only migrate pages if allocation in the highest zone is possible\n\nAddress spaces contain an allocation flag that specifies restriction on the\nzone for pages placed in the mapping.  I.e.  some device may require pages\nto be allocated from a DMA zone.  Block devices may not be able to use\npages from HIGHMEM.\n\nMemory policies and the common use of page migration works only on the\nhighest zone.  If the address space does not allow allocation from the\nhighest zone then the pages in the address space are not migratable simply\nbecause we can only allocate memory for a specified node if we allow\nallocation for the highest zone on each node.\n\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfce66047f1893cb7d3abb0d53e65cbbd8d605f0",
      "tree": "b6e533a6b3deee686c42abf6c9117154548c0aaf",
      "parents": [
        "4f104934591ed98534b3a4c3d17d972b790e9c42"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "Slab allocators: remove useless __GFP_NO_GROW flag\n\nThere is no user remaining and I have never seen any use of that flag.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f104934591ed98534b3a4c3d17d972b790e9c42",
      "tree": "149d7ba5ab6b9b7f8a82eb3ce41cb36f28bccaf9",
      "parents": [
        "50953fe9e00ebbeffa032a565ab2f08312d51a87"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_CTOR_ATOMIC\n\nSLAB_CTOR atomic is never used which is no surprise since I cannot imagine\nthat one would want to do something serious in a constructor or destructor.\n In particular given that the slab allocators run with interrupts disabled.\n Actions in constructors and destructors are by their nature very limited\nand usually do not go beyond initializing variables and list operations.\n\n(The i386 pgd ctor and dtors do take a spinlock in constructor and\ndestructor.....  I think that is the furthest we go at this point.)\n\nThere is no flag passed to the destructor so removing SLAB_CTOR_ATOMIC also\nestablishes a certain symmetry.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a31bd5f2bbb6473ef9d24f0063ca91cfa678b64",
      "tree": "a945e829bf6bf7a93bf844b2ee9f2a3a2fa17c5d",
      "parents": [
        "5af60839909b8e3b28ca7cd7912fa0b23475617f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "KMEM_CACHE(): simplify slab cache creation\n\nThis patch provides a new macro\n\nKMEM_CACHE(\u003cstruct\u003e, \u003cflags\u003e)\n\nto simplify slab creation. KMEM_CACHE creates a slab with the name of the\nstruct, with the size of the struct and with the alignment of the struct.\nAdditional slab flags may be specified if necessary.\n\nExample\n\nstruct test_slab {\n\tint a,b,c;\n\tstruct list_head;\n} __cacheline_aligned_in_smp;\n\ntest_slab_cache \u003d KMEM_CACHE(test_slab, SLAB_PANIC)\n\nwill create a new slab named \"test_slab\" of the size sizeof(struct\ntest_slab) and aligned to the alignment of test slab.  If it fails then we\npanic.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af60839909b8e3b28ca7cd7912fa0b23475617f",
      "tree": "774b068673ad7bb6fc67d29339c9a07bf12a7789",
      "parents": [
        "96018fdacbfcaf6a0694d066b525f67c24025688"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "slab allocators: Remove obsolete SLAB_MUST_HWCACHE_ALIGN\n\nThis patch was recently posted to lkml and acked by Pekka.\n\nThe flag SLAB_MUST_HWCACHE_ALIGN is\n\n1. Never checked by SLAB at all.\n\n2. A duplicate of SLAB_HWCACHE_ALIGN for SLUB\n\n3. Fulfills the role of SLAB_HWCACHE_ALIGN for SLOB.\n\nThe only remaining use is in sparc64 and ppc64 and their use there\nreflects some earlier role that the slab flag once may have had. If\nits specified then SLAB_HWCACHE_ALIGN is also specified.\n\nThe flag is confusing, inconsistent and has no purpose.\n\nRemove it.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9a14399aea13830d8af6798a53207bb0a900945",
      "tree": "b2501f1ce1d2a4564cd9a29c55705e524f594ad1",
      "parents": [
        "f98393a64ca1392130724c3acb4e3f325801d2b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: optimize kill_bdev()\n\nRemove duplicate work in kill_bdev().\n\nIt currently invalidates and then truncates the bdev\u0027s mapping.\ninvalidate_mapping_pages() will opportunistically remove pages from the\nmapping.  And truncate_inode_pages() will forcefully remove all pages.\n\nThe only thing truncate doesn\u0027t do is flush the bh lrus.  So do that\nexplicitly.  This avoids (very unlikely) but possible invalid lookup\nresults if the same bdev is quickly re-issued.\n\nIt also will prevent extreme kernel latencies which are observed when\nblockdevs which have a large amount of pagecache are unmounted, by avoiding\ninvalidate_mapping_pages() on that path.  invalidate_mapping_pages() has no\ncond_resched (it can be called under spinlock), whereas truncate_inode_pages()\nhas one.\n\n[akpm@linux-foundation.org: restore nrpages\u003d\u003d0 optimisation]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f98393a64ca1392130724c3acb4e3f325801d2b6",
      "tree": "b02838bdf84156ac923bb37b6cf5f5ed6aaa3d48",
      "parents": [
        "0a27a14a62921b438bb6f33772690d345a089be6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 06 14:49:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: remove destroy_dirty_buffers from invalidate_bdev()\n\nRemove the destroy_dirty_buffers argument from invalidate_bdev(), it hasn\u0027t\nbeen used in 6 years (so akpm says).\n\nfind * -name \\*.[ch] | xargs grep -l invalidate_bdev |\nwhile read file; do\n\tquilt add $file;\n\tsed -ie \u0027s/invalidate_bdev(\\([^,]*\\),[^)]*)/invalidate_bdev(\\1)/g\u0027 $file;\ndone\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6225e93735acaa09865bce746958f1046c2e0bc3",
      "tree": "c741862fbd9f6a1fa350b08debfcfb159bb8bf71",
      "parents": [
        "c09d87517298fd01543739ba26987645deb4e6a9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:54 2007 -0700"
      },
      "message": "Quicklists for page table pages\n\nOn x86_64 this cuts allocation overhead for page table pages down to a\nfraction (kernel compile / editing load.  TSC based measurement of times spend\nin each function):\n\nno quicklist\n\npte_alloc               1569048 4.3s(401ns/2.7us/179.7us)\npmd_alloc                780988 2.1s(337ns/2.7us/86.1us)\npud_alloc                780072 2.2s(424ns/2.8us/300.6us)\npgd_alloc                260022 1s(920ns/4us/263.1us)\n\nquicklist:\n\npte_alloc                452436 573.4ms(8ns/1.3us/121.1us)\npmd_alloc                196204 174.5ms(7ns/889ns/46.1us)\npud_alloc                195688 172.4ms(7ns/881ns/151.3us)\npgd_alloc                 65228 9.8ms(8ns/150ns/6.1us)\n\npgd allocations are the most complex and there we see the most dramatic\nimprovement (may be we can cut down the amount of pgds cached somewhat?).  But\neven the pte allocations still see a doubling of performance.\n\n1. Proven code from the IA64 arch.\n\n\tThe method used here has been fine tuned for years and\n\tis NUMA aware. It is based on the knowledge that accesses\n\tto page table pages are sparse in nature. Taking a page\n\toff the freelists instead of allocating a zeroed pages\n\tallows a reduction of number of cachelines touched\n\tin addition to getting rid of the slab overhead. So\n\tperformance improves. This is particularly useful if pgds\n\tcontain standard mappings. We can save on the teardown\n\tand setup of such a page if we have some on the quicklists.\n\tThis includes avoiding lists operations that are otherwise\n\tnecessary on alloc and free to track pgds.\n\n2. Light weight alternative to use slab to manage page size pages\n\n\tSlab overhead is significant and even page allocator use\n\tis pretty heavy weight. The use of a per cpu quicklist\n\tmeans that we touch only two cachelines for an allocation.\n\tThere is no need to access the page_struct (unless arch code\n\tneeds to fiddle around with it). So the fast past just\n\tmeans bringing in one cacheline at the beginning of the\n\tpage. That same cacheline may then be used to store the\n\tpage table entry. Or a second cacheline may be used\n\tif the page table entry is not in the first cacheline of\n\tthe page. The current code will zero the page which means\n\ttouching 32 cachelines (assuming 128 byte). We get down\n\tfrom 32 to 2 cachelines in the fast path.\n\n3. x86_64 gets lightweight page table page management.\n\n\tThis will allow x86_64 arch code to faster repopulate pgds\n\tand other page table entries. The list operations for pgds\n\tare reduced in the same way as for i386 to the point where\n\ta pgd is allocated from the page allocator and when it is\n\tfreed back to the page allocator. A pgd can pass through\n\tthe quicklists without having to be reinitialized.\n\n64 Consolidation of code from multiple arches\n\n\tSo far arches have their own implementation of quicklist\n\tmanagement. This patch moves that feature into the core allowing\n\tan easier maintenance and consistent management of quicklists.\n\nPage table pages have the characteristics that they are typically zero or in a\nknown state when they are freed.  This is usually the exactly same state as\nneeded after allocation.  So it makes sense to build a list of freed page\ntable pages and then consume the pages already in use first.  Those pages have\nalready been initialized correctly (thus no need to zero them) and are likely\nalready cached in such a way that the MMU can use them most effectively.  Page\ntable pages are used in a sparse way so zeroing them on allocation is not too\nuseful.\n\nSuch an implementation already exits for ia64.  Howver, that implementation\ndid not support constructors and destructors as needed by i386 / x86_64.  It\nalso only supported a single quicklist.  The implementation here has\nconstructor and destructor support as well as the ability for an arch to\nspecify how many quicklists are needed.\n\nQuicklists are defined by an arch defining CONFIG_QUICKLIST.  If more than one\nquicklist is necessary then we can define NR_QUICK for additional lists.  F.e.\n i386 needs two and thus has\n\nconfig NR_QUICK\n\tint\n\tdefault 2\n\nIf an arch has requested quicklist support then pages can be allocated\nfrom the quicklist (or from the page allocator if the quicklist is\nempty) via:\n\nquicklist_alloc(\u003cquicklist-nr\u003e, \u003cgfpflags\u003e, \u003cconstructor\u003e)\n\nPage table pages can be freed using:\n\nquicklist_free(\u003cquicklist-nr\u003e, \u003cdestructor\u003e, \u003cpage\u003e)\n\nPages must have a definite state after allocation and before\nthey are freed. If no constructor is specified then pages\nwill be zeroed on allocation and must be zeroed before they are\nfreed.\n\nIf a constructor is used then the constructor will establish\na definite page state. F.e. the i386 and x86_64 pgd constructors\nestablish certain mappings.\n\nConstructors and destructors can also be used to track the pages.\ni386 and x86_64 use a list of pgds in order to be able to dynamically\nupdate standard mappings.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "643b113849d8faa68c9f01c3c9d929bfbffd50bd",
      "tree": "d8eea2326ccee49892acaa970bf015ee69a31e8a",
      "parents": [
        "77c5e2d01af871f4bfbe08feefa3d5118cb1001b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:54 2007 -0700"
      },
      "message": "slub: enable tracking of full slabs\n\nIf slab tracking is on then build a list of full slabs so that we can verify\nthe integrity of all slabs and are also able to built list of alloc/free\ncallers.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b49af68ff9fc5d6e0d96704a1843968b91cc73c6",
      "tree": "eb5e6d9425a9069cdfc45b09a1d0f61f1419d2c2",
      "parents": [
        "6d7779538f765963ced45a3fa4bed7ba8d2c277d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:54 2007 -0700"
      },
      "message": "Add virt_to_head_page and consolidate code in slab and slub\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d7779538f765963ced45a3fa4bed7ba8d2c277d",
      "tree": "07d47e6ff1ab30309004e2ba0674dcabd83945c1",
      "parents": [
        "d85f33855c303acfa87fa457157cef755b6087df"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "mm: optimize compound_head() by avoiding a shared page flag\n\nThe patch adds PageTail(page) and PageHead(page) to check if a page is the\nhead or the tail of a compound page.  This is done by masking the two bits\ndescribing the state of a compound page and then comparing them.  So one\ncomparision and a branch instead of two bit checks and two branches.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d85f33855c303acfa87fa457157cef755b6087df",
      "tree": "f1184a1a24b432727b0399594ede37c7539db888",
      "parents": [
        "30520864839dc796fd314812e7036e754880b47d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "Make page-\u003eprivate usable in compound pages\n\nIf we add a new flag so that we can distinguish between the first page and the\ntail pages then we can avoid to use page-\u003eprivate in the first page.\npage-\u003eprivate \u003d\u003d page for the first page, so there is no real information in\nthere.\n\nFreeing up page-\u003eprivate makes the use of compound pages more transparent.\nThey become more usable like real pages.  Right now we have to be careful f.e.\n if we are going beyond PAGE_SIZE allocations in the slab on i386 because we\ncan then no longer use the private field.  This is one of the issues that\ncause us not to support debugging for page size slabs in SLAB.\n\nHaving page-\u003eprivate available for SLUB would allow more meta information in\nthe page struct.  I can probably avoid the 16 bit ints that I have in there\nright now.\n\nAlso if page-\u003eprivate is available then a compound page may be equipped with\nbuffer heads.  This may free up the way for filesystems to support larger\nblocks than page size.\n\nWe add PageTail as an alias of PageReclaim.  Compound pages cannot currently\nbe reclaimed.  Because of the alias one needs to check PageCompound first.\n\nThe RFC for the this approach was discussed at\nhttp://marc.info/?t\u003d117574302800001\u0026r\u003d1\u0026w\u003d2\n\n[nacc@us.ibm.com: fix hugetlbfs]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "614410d5892af5f86d0ec14e28f9f6d5f4ac9e9b",
      "tree": "616c8437f45590a0ca6e2efdc2a5dfb61799d0ec",
      "parents": [
        "47bfdc0d5a18a4b760ffb6a332932aaa5c0859e0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "SLUB: allocate smallest object size if the user asks for 0 bytes\n\nMakes SLUB behave like SLAB in this area to avoid issues....\n\nThrow a stack dump to alert people.\n\nAt some point the behavior should be switched back.  NULL is no memory as\nfar as I can tell and if the use asked for 0 bytes then he need to get no\nmemory.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81819f0fc8285a2a5a921c019e3e3d7b6169d225",
      "tree": "47e3da44d3ef6c74ceae6c3771b191b46467bb48",
      "parents": [
        "543691a6cd70b606dd9bed5e77b120c5d9c5c506"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "SLUB core\n\nThis is a new slab allocator which was motivated by the complexity of the\nexisting code in mm/slab.c. It attempts to address a variety of concerns\nwith the existing implementation.\n\nA. Management of object queues\n\n   A particular concern was the complex management of the numerous object\n   queues in SLAB. SLUB has no such queues. Instead we dedicate a slab for\n   each allocating CPU and use objects from a slab directly instead of\n   queueing them up.\n\nB. Storage overhead of object queues\n\n   SLAB Object queues exist per node, per CPU. The alien cache queue even\n   has a queue array that contain a queue for each processor on each\n   node. For very large systems the number of queues and the number of\n   objects that may be caught in those queues grows exponentially. On our\n   systems with 1k nodes / processors we have several gigabytes just tied up\n   for storing references to objects for those queues  This does not include\n   the objects that could be on those queues. One fears that the whole\n   memory of the machine could one day be consumed by those queues.\n\nC. SLAB meta data overhead\n\n   SLAB has overhead at the beginning of each slab. This means that data\n   cannot be naturally aligned at the beginning of a slab block. SLUB keeps\n   all meta data in the corresponding page_struct. Objects can be naturally\n   aligned in the slab. F.e. a 128 byte object will be aligned at 128 byte\n   boundaries and can fit tightly into a 4k page with no bytes left over.\n   SLAB cannot do this.\n\nD. SLAB has a complex cache reaper\n\n   SLUB does not need a cache reaper for UP systems. On SMP systems\n   the per CPU slab may be pushed back into partial list but that\n   operation is simple and does not require an iteration over a list\n   of objects. SLAB expires per CPU, shared and alien object queues\n   during cache reaping which may cause strange hold offs.\n\nE. SLAB has complex NUMA policy layer support\n\n   SLUB pushes NUMA policy handling into the page allocator. This means that\n   allocation is coarser (SLUB does interleave on a page level) but that\n   situation was also present before 2.6.13. SLABs application of\n   policies to individual slab objects allocated in SLAB is\n   certainly a performance concern due to the frequent references to\n   memory policies which may lead a sequence of objects to come from\n   one node after another. SLUB will get a slab full of objects\n   from one node and then will switch to the next.\n\nF. Reduction of the size of partial slab lists\n\n   SLAB has per node partial lists. This means that over time a large\n   number of partial slabs may accumulate on those lists. These can\n   only be reused if allocator occur on specific nodes. SLUB has a global\n   pool of partial slabs and will consume slabs from that pool to\n   decrease fragmentation.\n\nG. Tunables\n\n   SLAB has sophisticated tuning abilities for each slab cache. One can\n   manipulate the queue sizes in detail. However, filling the queues still\n   requires the uses of the spin lock to check out slabs. SLUB has a global\n   parameter (min_slab_order) for tuning. Increasing the minimum slab\n   order can decrease the locking overhead. The bigger the slab order the\n   less motions of pages between per CPU and partial lists occur and the\n   better SLUB will be scaling.\n\nG. Slab merging\n\n   We often have slab caches with similar parameters. SLUB detects those\n   on boot up and merges them into the corresponding general caches. This\n   leads to more effective memory use. About 50% of all caches can\n   be eliminated through slab merging. This will also decrease\n   slab fragmentation because partial allocated slabs can be filled\n   up again. Slab merging can be switched off by specifying\n   slub_nomerge on boot up.\n\n   Note that merging can expose heretofore unknown bugs in the kernel\n   because corrupted objects may now be placed differently and corrupt\n   differing neighboring objects. Enable sanity checks to find those.\n\nH. Diagnostics\n\n   The current slab diagnostics are difficult to use and require a\n   recompilation of the kernel. SLUB contains debugging code that\n   is always available (but is kept out of the hot code paths).\n   SLUB diagnostics can be enabled via the \"slab_debug\" option.\n   Parameters can be specified to select a single or a group of\n   slab caches for diagnostics. This means that the system is running\n   with the usual performance and it is much more likely that\n   race conditions can be reproduced.\n\nI. Resiliency\n\n   If basic sanity checks are on then SLUB is capable of detecting\n   common error conditions and recover as best as possible to allow the\n   system to continue.\n\nJ. Tracing\n\n   Tracing can be enabled via the slab_debug\u003dT,\u003cslabcache\u003e option\n   during boot. SLUB will then protocol all actions on that slabcache\n   and dump the object contents on free.\n\nK. On demand DMA cache creation.\n\n   Generally DMA caches are not needed. If a kmalloc is used with\n   __GFP_DMA then just create this single slabcache that is needed.\n   For systems that have no ZONE_DMA requirement the support is\n   completely eliminated.\n\nL. Performance increase\n\n   Some benchmarks have shown speed improvements on kernbench in the\n   range of 5-10%. The locking overhead of slub is based on the\n   underlying base allocation size. If we can reliably allocate\n   larger order pages then it is possible to increase slub\n   performance much further. The anti-fragmentation patches may\n   enable further performance increases.\n\nTested on:\ni386 UP + SMP, x86_64 UP + SMP + NUMA emulation, IA64 NUMA + Simulator\n\nSLUB Boot options\n\nslub_nomerge\t\tDisable merging of slabs\nslub_min_order\u003dx\tRequire a minimum order for slab caches. This\n\t\t\tincreases the managed chunk size and therefore\n\t\t\treduces meta data and locking overhead.\nslub_min_objects\u003dx\tMininum objects per slab. Default is 8.\nslub_max_order\u003dx\tAvoid generating slabs larger than order specified.\nslub_debug\t\tEnable all diagnostics for all caches\nslub_debug\u003d\u003coptions\u003e\tEnable selective options for all caches\nslub_debug\u003d\u003co\u003e,\u003ccache\u003e\tEnable selective options for a certain set of\n\t\t\tcaches\n\nAvailable Debug options\nF\t\tDouble Free checking, sanity and resiliency\nR\t\tRed zoning\nP\t\tObject / padding poisoning\nU\t\tTrack last free / alloc\nT\t\tTrace all allocs / frees (only use for individual slabs).\n\nTo use SLUB: Apply this patch and then select SLUB as the default slab\nallocator.\n\n[hugh@veritas.com: fix an oops-causing locking error]\n[akpm@linux-foundation.org: various stupid cleanups and small fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ce745ed39d35f9d547d00d406db2be7c6c175b3",
      "tree": "16f471389c9f619c37891fdb6e1843e1f2721c78",
      "parents": [
        "ec0f16372277052a29a6c17527c6cae5e898b3fd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 06 14:49:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "readahead: code cleanup\n\nRename file_ra_state.prev_page to prev_index and file_ra_state.offset to\nprev_offset.  Also update of prev_index in do_generic_mapping_read() is now\nmoved close to the update of prev_offset.\n\n[wfg@mail.ustc.edu.cn: fix it]\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec0f16372277052a29a6c17527c6cae5e898b3fd",
      "tree": "35636edac6ed01baf301f3aca96f090caae82c9d",
      "parents": [
        "b813e931b4c8235bb42e301096ea97dbdee3e8fe"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 06 14:49:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "readahead: improve heuristic detecting sequential reads\n\nIntroduce ra.offset and store in it an offset where the previous read\nended.  This way we can detect whether reads are really sequential (and\nthus we should not mark the page as accessed repeatedly) or whether they\nare random and just happen to be in the same page (and the page should\nreally be marked accessed again).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b813e931b4c8235bb42e301096ea97dbdee3e8fe",
      "tree": "f8182687bffe8e3b95bac69b2cc7fdfe674ddc53",
      "parents": [
        "f79f177c25016647cc92ffac8afa7cb96ce47011"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sun May 06 14:49:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "smaps: add clear_refs file to clear reference\n\nAdds /proc/pid/clear_refs.  When any non-zero number is written to this file,\npte_mkold() and ClearPageReferenced() is called for each pte and its\ncorresponding page, respectively, in that task\u0027s VMAs.  This file is only\nwritable by the user who owns the task.\n\nIt is now possible to measure _approximately_ how much memory a task is using\nby clearing the reference bits with\n\n\techo 1 \u003e /proc/pid/clear_refs\n\nand checking the reference count for each VMA from the /proc/pid/smaps output\nat a measured time interval.  For example, to observe the approximate change\nin memory footprint for a task, write a script that clears the references\n(echo 1 \u003e /proc/pid/clear_refs), sleeps, and then greps for Pgs_Referenced and\nextracts the size in kB.  Add the sizes for each VMA together for the total\nreferenced footprint.  Moments later, repeat the process and observe the\ndifference.\n\nFor example, using an efficient Mozilla:\n\n\taccumulated time\t\treferenced memory\n\t----------------\t\t-----------------\n\t\t 0 s\t\t\t\t 408 kB\n\t\t 1 s\t\t\t\t 408 kB\n\t\t 2 s\t\t\t\t 556 kB\n\t\t 3 s\t\t\t\t1028 kB\n\t\t 4 s\t\t\t\t 872 kB\n\t\t 5 s\t\t\t\t1956 kB\n\t\t 6 s\t\t\t\t 416 kB\n\t\t 7 s\t\t\t\t1560 kB\n\t\t 8 s\t\t\t\t2336 kB\n\t\t 9 s\t\t\t\t1044 kB\n\t\t10 s\t\t\t\t 416 kB\n\nThis is a valuable tool to get an approximate measurement of the memory\nfootprint for a task.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\n[akpm@linux-foundation.org: build fixes]\n[mpm@selenic.com: rename for_each_pmd]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9490991482a2091a828d997adbc088e24c310a4d",
      "tree": "dcdd9febee63e82cd792250a8a4c4dd8e6aab4be",
      "parents": [
        "a8127717cb24be7b8827a8d9e0ddbfde6b392146"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bbpetkov@yahoo.de",
        "time": "Sun May 06 14:49:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "Add unitialized_var() macro for suppressing gcc warnings\n\nIntroduce a macro for suppressing gcc from generating a warning about a\nprobable uninitialized state of a variable.\n\nExample:\n\n-\tspinlock_t *ptl;\n+\tspinlock_t *uninitialized_var(ptl);\n\nNot a happy solution, but those warnings are obnoxious.\n\n- Using the usual pointlessly-set-it-to-zero approach wastes several\n  bytes of text.\n\n- Using a macro means we can (hopefully) do something else if gcc changes\n  cause the `x \u003d x\u0027 hack to stop working\n\n- Using a macro means that people who are worried about hiding true bugs\n  can easily turn it off.\n\nSigned-off-by: Borislav Petkov \u003cbbpetkov@yahoo.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e072984179d3d421bf9ab75cc67e0961742841",
      "tree": "65a5a6f7d9756b8e7010278b58908d04da257a28",
      "parents": [
        "ac267728f13c55017ed5ee243c9c3166e27ab929"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Sun May 06 14:49:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "add pfn_valid_within helper for sub-MAX_ORDER hole detection\n\nGenerally we work under the assumption that memory the mem_map array is\ncontigious and valid out to MAX_ORDER_NR_PAGES block of pages, ie.  that if we\nhave validated any page within this MAX_ORDER_NR_PAGES block we need not check\nany other.  This is not true when CONFIG_HOLES_IN_ZONE is set and we must\ncheck each and every reference we make from a pfn.\n\nAdd a pfn_valid_within() helper which should be used when scanning pages\nwithin a MAX_ORDER_NR_PAGES block when we have already checked the validility\nof the block normally with pfn_valid().  This can then be optimised away when\nwe do not have holes within a MAX_ORDER_NR_PAGES block of pages.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac267728f13c55017ed5ee243c9c3166e27ab929",
      "tree": "d57e57c8bac716ccee49185b04c374ef1e163260",
      "parents": [
        "411f0f3edc141a582190d3605cadd1d993abb6df"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun May 06 14:49:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:52 2007 -0700"
      },
      "message": "mm/slab.c: proper prototypes\n\nAdd proper prototypes in include/linux/slab.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2",
      "tree": "8bbfe5072279227cc50a941ad4813908082426a1",
      "parents": [
        "714b8171af9c930a59a0da8f6fe50518e70ab035"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "mm: make read_cache_page synchronous\n\nEnsure pages are uptodate after returning from read_cache_page, which allows\nus to cut out most of the filesystem-internal PageUptodate calls.\n\nI didn\u0027t have a great look down the call chains, but this appears to fixes 7\npossible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in\necryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in\nblock2mtd.  All depending on whether the filler is async and/or can return\nwith a !uptodate page.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f22df00a009e3f86301366c0ecddb63ebd22af9",
      "tree": "72f0ea3e114dbb6825fc7e73f828645d364ea520",
      "parents": [
        "d2ba27e8007b35d24764c0877ab2428e00a5c5ab"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "mm: remove gcc workaround\n\nMinimum gcc version is 3.2 now.  However, with likely profiling, even\nmodern gcc versions cannot always eliminate the call.\n\nReplace the placeholder functions with the more conventional empty static\ninlines, which should be optimal for everyone.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ba27e8007b35d24764c0877ab2428e00a5c5ab",
      "tree": "d4c645000da4c208dba37fdda9897f1b7295cce4",
      "parents": [
        "1b4244647ceaad42ea6eb12899d58753d82b7727"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun May 06 14:49:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "proper prototype for hugetlb_get_unmapped_area()\n\nAdd a proper prototype for hugetlb_get_unmapped_area() in\ninclude/linux/hugetlb.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aee16b3cee2746880e40945a9b5bff4f309cfbc4",
      "tree": "887faaebf5562dc1fac5e090140da04dc7e2a174",
      "parents": [
        "eb3a1e1145ca8f12372c7c96aa0702d86a9002a9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Sun May 06 14:48:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "Add apply_to_page_range() which applies a function to a pte range\n\nAdd a new mm function apply_to_page_range() which applies a given function to\nevery pte in a given virtual address range in a given mm structure.  This is a\ngeneric alternative to cut-and-pasting the Linux idiomatic pagetable walking\ncode in every place that a sequence of PTEs must be accessed.\n\nAlthough this interface is intended to be useful in a wide range of\nsituations, it is currently used specifically by several Xen subsystems, for\nexample: to ensure that pagetables have been allocated for a virtual address\nrange, and to construct batched special pagetable update requests to map I/O\nmemory (in ioremap()).\n\n[akpm@linux-foundation.org: fix warning, unpleasantly]\nSigned-off-by: Ian Pratt \u003cian.pratt@xensource.com\u003e\nSigned-off-by: Christian Limpach \u003cChristian.Limpach@cl.cam.ac.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@waste.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abb4a2390737867353ebafc012d45f2b03f3f944",
      "tree": "e62e2ae859f235667eb2002ef9dd651e7c7a8ea0",
      "parents": [
        "bd71c182d5a02337305fc381831c11029dd17d64"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Sun May 06 14:48:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:50 2007 -0700"
      },
      "message": "serial: define FIXED_PORT flag for serial_core\n\nAt present, the serial core always allows setserial in userspace to change the\nport address, irq and base clock of any serial port.  That makes sense for\nlegacy ISA ports, but not for (say) embedded ns16550 compatible serial ports\nat peculiar addresses.  In these cases, the kernel code configuring the ports\nmust know exactly where they are, and their clocking arrangements (which can\nbe unusual on embedded boards).  It doesn\u0027t make sense for userspace to change\nthese settings.\n\nTherefore, this patch defines a UPF_FIXED_PORT flag for the uart_port\nstructure.  If this flag is set when the serial port is configured, any\nattempts to alter the port\u0027s type, io address, irq or base clock with\nsetserial are ignored.\n\nIn addition this patch uses the new flag for on-chip serial ports probed in\narch/powerpc/kernel/legacy_serial.c, and for other hard-wired serial ports\nprobed by drivers/serial/of_serial.c.\n\nSigned-off-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd71c182d5a02337305fc381831c11029dd17d64",
      "tree": "0b21234a7d1c38bfcafc12b6dcbfb3455d73b587",
      "parents": [
        "beab697ab4b2962e3d741b476abe443baad0933d"
      ],
      "author": {
        "name": "Thomas Koeller",
        "email": "thomas.koeller@baslerweb.com",
        "time": "Sun May 06 14:48:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:50 2007 -0700"
      },
      "message": "RM9000 serial driver\n\nAdd support for the integrated serial ports of the MIPS RM9122 processor\nand its relatives.\n\nThe patch also does some whitespace cleanup.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Thomas Koeller \u003cthomas.koeller@baslerweb.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "beab697ab4b2962e3d741b476abe443baad0933d",
      "tree": "f581ce38378f6cacbf0042b4eb9c084a6fc932d9",
      "parents": [
        "6179b5562d5d17c7c09b54cb11dd925ca308d7a9"
      ],
      "author": {
        "name": "Marc St-Jean",
        "email": "stjeanma@pmc-sierra.com",
        "time": "Sun May 06 14:48:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:50 2007 -0700"
      },
      "message": "serial driver PMC MSP71xx\n\nSerial driver patch for the PMC-Sierra MSP71xx devices.\n\nThere are three different fixes:\n\n1 Fix for DesignWare APB THRE errata: In brief, this is a non-standard\n  16550 in that the THRE interrupt will not re-assert itself simply by\n  disabling and re-enabling the THRI bit in the IER, it is only re-enabled\n  if a character is actually sent out.\n\n  It appears that the \"8250-uart-backup-timer.patch\" in the \"mm\" tree\n  also fixes it so we have dropped our initial workaround.  This patch now\n  needs to be applied on top of that \"mm\" patch.\n\n2 Fix for Busy Detect on LCR write: The DesignWare APB UART has a feature\n  which causes a new Busy Detect interrupt to be generated if it\u0027s busy\n  when the LCR is written.  This fix saves the value of the LCR and\n  rewrites it after clearing the interrupt.\n\n3 Workaround for interrupt/data concurrency issue: The SoC needs to\n  ensure that writes that can cause interrupts to be cleared reach the UART\n  before returning from the ISR.  This fix reads a non-destructive register\n  on the UART so the read transaction completion ensures the previously\n  queued write transaction has also completed.\n\nSigned-off-by: Marc St-Jean \u003cMarc_St-Jean@pmc-sierra.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd76bab2fa6d8f3ef6b326a4c6ae442fa21d30a4",
      "tree": "66f310ab9d7cdadfb79486700f1e01df7923ec14",
      "parents": [
        "e3ebadd95cb621e2c7436f3d3646447ac9d5c16d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun May 06 14:48:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:50 2007 -0700"
      },
      "message": "slab: introduce krealloc\n\nThis introduce krealloc() that reallocates memory while keeping the contents\nunchanged.  The allocator avoids reallocation if the new size fits the\ncurrently used cache.  I also added a simple non-optimized version for\nmm/slob.c for compatibility.\n\n[akpm@linux-foundation.org: fix warnings]\nAcked-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf4328cd949c2086091c62c5685f1580fe9b55e4",
      "tree": "bd9d96f1c99910076b6f5f34cd5cd2da30405ef1",
      "parents": [
        "2396a22e0989df6038996506bfbf7a57f116c299"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Mon May 07 00:34:20 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 00:34:20 2007 -0700"
      },
      "message": "[NET]: rfkill: add support for input key to control wireless radio\n\nThe RF kill patch that provides infrastructure for implementing\nswitches controlling radio states on various network and other cards.\n\n[dtor@insightbb.com: address review comments]\n[akpm@linux-foundation.org: cleanups, build fixes]\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "85f3f1b3f7a6197b51a2ab98d927517df730214c",
      "tree": "198465d6798b5483be2540fb6e1c0badc96d9265",
      "parents": [
        "0e4ac9d93515b27fd7635332d73eae3192ed5d4e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:27:06 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: pass cookie in nlmsvc_testlock\n\nChange NLM internal interface to pass more information for test lock; we\nneed this to make sure the cookie information is pushed down to the place\nwhere we do request deferral, which is handled for testlock by the\nfollowing patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2b36f412ab6f2e5b64af9832b20eb7ef67d025b4",
      "tree": "b4a561cc944d25d96798f97d06bd78760db7afba",
      "parents": [
        "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:26:47 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: save lock state on deferral\n\nWe need to keep some state for a pending asynchronous lock request, so this\npatch adds that state to struct nlm_block.\n\nThis also adds a function which defers the request, by calling\nrqstp-\u003erq_chandle.defer and storing the resulting deferred request in a\nnlm_block structure which we insert into lockd\u0027s global block list.  That\nnew function isn\u0027t called yet, so it\u0027s dead code until a later patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c",
      "tree": "7c5c1277f139c754d7b73a1822016574de655bd6",
      "parents": [
        "fd85b8170dabbf021987875ef7f903791f4f181e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Dec 05 23:31:28 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:49 2007 -0400"
      },
      "message": "locks: add fl_grant callback for asynchronous lock return\n\nAcquiring a lock on a cluster filesystem may require communication with\nremote hosts, and to avoid blocking lockd or nfsd threads during such\ncommunication, we allow the results to be returned asynchronously.\n\nWhen a -\u003elock() call needs to block, the file system will return\n-EINPROGRESS, and then later return the results with a call to the\nroutine in the fl_grant field of the lock_manager_operations struct.\n\nThis differs from the case when -\u003elock returns -EAGAIN to a blocking\nlock request; in that case, the filesystem calls fl_notify when the lock\nis granted, and the caller retries the original lock.  So while\nfl_notify is merely a hint to the caller that it should retry, fl_grant\nactually communicates the final result of the lock operation (with the\nlock already acquired in the succesful case).\n\nTherefore fl_grant takes a lock, a status and, for the test lock case, a\nconflicting lock.  We also allow fl_grant to return an error to the\nfilesystem, to handle the case where the fl_grant requests arrives after\nthe lock manager has already given up waiting for it.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9b9d2ab4154a42ea4a119f7d3e4e0288bfe0bb79",
      "tree": "62af6b2eff0885c26aa2af4b01890cc02cf0b2f0",
      "parents": [
        "150b393456e5a23513cace286a019e87151e47f0"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 17:52:58 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:28 2007 -0400"
      },
      "message": "locks: add lock cancel command\n\nLock managers need to be able to cancel pending lock requests.  In the case\nwhere the exported filesystem manages its own locks, it\u0027s not sufficient just\nto call posix_unblock_lock(); we need to let the filesystem know what\u0027s\nhappening too.\n\nWe do this by adding a new fcntl lock command: FL_CANCELLK.  Some day this\nmight also be made available to userspace applications that could benefit from\nan asynchronous locking api.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "150b393456e5a23513cace286a019e87151e47f0",
      "tree": "91599ec9b759f7e3c5defcb8dd361acd7288154c",
      "parents": [
        "7723ec9777d9832849b76475b1a21a2872a40d20"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 16:15:35 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 19:23:24 2007 -0400"
      },
      "message": "locks: allow {vfs,posix}_lock_file to return conflicting lock\n\nThe nfsv4 protocol\u0027s lock operation, in the case of a conflict, returns\ninformation about the conflicting lock.\n\nIt\u0027s unclear how clients can use this, so for now we\u0027re not going so far as to\nadd a filesystem method that can return a conflicting lock, but we may as well\nreturn something in the local case when it\u0027s easy to.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7723ec9777d9832849b76475b1a21a2872a40d20",
      "tree": "af712e690d1de0a2e693830f6e056455c1725a92",
      "parents": [
        "3ee17abd14c728d4e0ca7a991c58f2250cb091af"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Thu Jan 18 15:08:55 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:08:49 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from setlock code\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for all the setlk code.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ee17abd14c728d4e0ca7a991c58f2250cb091af",
      "tree": "6f49a9893dc656fac4d5a334946ccbf4e911891f",
      "parents": [
        "9d6a8c5c213e34c475e72b245a8eb709258e968c"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 21 00:58:50 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 18:06:44 2007 -0400"
      },
      "message": "locks: factor out generic/filesystem switch from test_lock\n\nFactor out the code that switches between generic and filesystem-specific lock\nmethods; eventually we want to call this from lock managers (lockd and nfsd)\ntoo; currently they only call the generic methods.\n\nThis patch does that for test_lock.\n\nNote that this hasn\u0027t been necessary until recently, because the few\nfilesystems that define -\u003elock() (nfs, cifs...) aren\u0027t exportable via NFS.\nHowever GFS (and, in the future, other cluster filesystems) need to implement\ntheir own locking to get cluster-coherent locking, and also want to be able to\nexport locking to NFS (lockd and NFSv4).\n\nSo we accomplish this by factoring out code such as this and exporting it for\nthe use of lockd and nfsd.\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9d6a8c5c213e34c475e72b245a8eb709258e968c",
      "tree": "96110535c2bd9485129c0753a9e0f012083b220f",
      "parents": [
        "70cc6487a4e08b8698c0e2ec935fb48d10490162"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Wed Feb 21 00:55:18 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 17:39:00 2007 -0400"
      },
      "message": "locks: give posix_test_lock same interface as -\u003elock\n\nposix_test_lock() and -\u003elock() do the same job but have gratuitously\ndifferent interfaces.  Modify posix_test_lock() so the two agree,\nsimplifying some code in the process.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "15700770ef7c5d12e2f1659d2ddbeb3f658d9f37",
      "tree": "7fa2f81c33c9efcb1a1568385beead75c5892cfb",
      "parents": [
        "6de410c2b0cc055ae9ee640c84331f6a70878d9b",
        "11de39e2fbbc592018e0a231d0ee773653dcc8d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:57 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (38 commits)\n  kconfig: fix mconf segmentation fault\n  kbuild: enable use of code from a different dir\n  kconfig: error out if recursive dependencies are found\n  kbuild: scripts/basic/fixdep segfault on pathological string-o-death\n  kconfig: correct minor typo in Kconfig warning message.\n  kconfig: fix path to modules.txt in Kconfig help\n  usr/Kconfig: fix typo\n  kernel-doc: alphabetically-sorted entries in index.html of \u0027htmldocs\u0027\n  kbuild: be more explicit on missing .config file\n  kbuild: clarify the creation of the LOCALVERSION_AUTO string.\n  kbuild: propagate errors from find in scripts/gen_initramfs_list.sh\n  kconfig: refer to qt3 if we cannot find qt libraries\n  kbuild: handle compressed cpio initramfs-es\n  kbuild: ignore section mismatch warning for references from .paravirtprobe to .init.text\n  kbuild: remove stale comment in modpost.c\n  kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE\n  kbuild: fix make mrproper for Documentation/DocBook/man\n  kbuild: remove kconfig binaries during make mrproper\n  kconfig/menuconfig: do not hardcode \u0027.config\u0027\n  kbuild: override build timestamp \u0026 version\n  ...\n"
    },
    {
      "commit": "6de410c2b0cc055ae9ee640c84331f6a70878d9b",
      "tree": "49dfc7df2f1977c2d665c99266ded92afc98734b",
      "parents": [
        "c6799ade4ae04b53a5f677e5289116155ff01574",
        "2ff81f70b56dc1cdd3bf2f08414608069db6ef1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:18 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (66 commits)\n  KVM: Remove unused \u0027instruction_length\u0027\n  KVM: Don\u0027t require explicit indication of completion of mmio or pio\n  KVM: Remove extraneous guest entry on mmio read\n  KVM: SVM: Only save/restore MSRs when needed\n  KVM: fix an if() condition\n  KVM: VMX: Add lazy FPU support for VT\n  KVM: VMX: Properly shadow the CR0 register in the vcpu struct\n  KVM: Don\u0027t complain about cpu erratum AA15\n  KVM: Lazy FPU support for SVM\n  KVM: Allow passing 64-bit values to the emulated read/write API\n  KVM: Per-vcpu statistics\n  KVM: VMX: Avoid unnecessary vcpu_load()/vcpu_put() cycles\n  KVM: MMU: Avoid heavy ASSERT at non debug mode.\n  KVM: VMX: Only save/restore MSR_K6_STAR if necessary\n  KVM: Fold drivers/kvm/kvm_vmx.h into drivers/kvm/vmx.c\n  KVM: VMX: Don\u0027t switch 64-bit msrs for 32-bit guests\n  KVM: VMX: Reduce unnecessary saving of host msrs\n  KVM: Handle guest page faults when emulating mmio\n  KVM: SVM: Report hardware exit reason to userspace instead of dmesg\n  KVM: Retry sleeping allocation if atomic allocation fails\n  ...\n"
    },
    {
      "commit": "ea62ccd00fd0b6720b033adfc9984f31130ce195",
      "tree": "9837b797b2466fffcb0af96c388b06eae9c3df18",
      "parents": [
        "886a0768affe9a32f18c45f8e1393bca9ece5392",
        "35060b6a9a4e1c89bc6fbea61090e302dbc61847"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (231 commits)\n  [PATCH] i386: Don\u0027t delete cpu_devs data to identify different x86 types in late_initcall\n  [PATCH] i386: type may be unused\n  [PATCH] i386: Some additional chipset register values validation.\n  [PATCH] i386: Add missing !X86_PAE dependincy to the 2G/2G split.\n  [PATCH] x86-64: Don\u0027t exclude asm-offsets.c in Documentation/dontdiff\n  [PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu\n  [PATCH] i386: white space fixes in i387.h\n  [PATCH] i386: Drop noisy e820 debugging printks\n  [PATCH] x86-64: Fix allnoconfig error in genapic_flat.c\n  [PATCH] x86-64: Shut up warnings for vfat compat ioctls on other file systems\n  [PATCH] x86-64: Share identical video.S between i386 and x86-64\n  [PATCH] x86-64: Remove CONFIG_REORDER\n  [PATCH] x86-64: Print type and size correctly for unknown compat ioctls\n  [PATCH] i386: Remove copy_*_user BUG_ONs for (size \u003c 0)\n  [PATCH] i386: Little cleanups in smpboot.c\n  [PATCH] x86-64: Don\u0027t enable NUMA for a single node in K8 NUMA scanning\n  [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible\n  [PATCH] i386: Add X86_FEATURE_RDTSCP\n  [PATCH] i386: Implement X86_FEATURE_SYNC_RDTSC on i386\n  [PATCH] i386: Implement alternative_io for i386\n  ...\n\nFix up trivial conflict in include/linux/highmem.h manually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "989485c190cc6a64e5a21d98ef2d752df1db8c27",
      "tree": "da2f2cb977df552d20784f71bfbfa342908ab9da",
      "parents": [
        "68762f3d8e7ea644fae1f490f9850ebf462548bd"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat May 05 22:05:11 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:15:32 2007 -0700"
      },
      "message": "Fix nfsroot build\n\n  CC      fs/nfs/nfsroot.o\nfs/nfs/nfsroot.c:131: error: tokens causes a section type conflict\nmake[2]: *** [fs/nfs/nfsroot.o] Error 1\n\nThis is due to mixing const and non-const content in the same section\nwhich halfway recent gccs absolutely hate.  Fixed by dropping the const.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68762f3d8e7ea644fae1f490f9850ebf462548bd",
      "tree": "81be52e9ba33fc4d8aa5f569aaab77b5a34e09ab",
      "parents": [
        "4f7a307dc6e4d8bfeb56f7cf7231b08cb845687c",
        "7544b0972c1fc1a0e6c54baa1f44c81019743daa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:13:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:13:36 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:\n  [TG3]: Add TG3_FLAG_SUPPORT_MSI flag.\n  [TG3]: Eliminate the TG3_FLAG_5701_REG_WRITE_BUG flag.\n  [TG3]: Eliminate the TG3_FLAG_GOT_SERDES_FLOWCTL flag.\n  [TG3]: Remove reset during MAC address changes.\n  [TG3]: WoL fixes.\n  [TG3]: Clear GPIO mask before storing.\n  [TG3]: Improve NVRAM sizing.\n  [TG3]: Fix TSO bugs.\n  [MAC80211]: Add maintainers entry for mac80211.\n  [MAC80211]: Add debugfs attributes.\n  [MAC80211]: Add mac80211 wireless stack.\n  [MAC80211]: Add generic include/linux/ieee80211.h\n  [NETLINK]: Remove references to process ID\n  [AF_IUCV]: Compile fix - adopt to skbuff changes.\n"
    },
    {
      "commit": "e93df705af1992dbf5956a8c80fcb9987bc595c0",
      "tree": "62ceef1f46ecde9782d7ee3f26f0a0e108418b69",
      "parents": [
        "62ea6d80211ecc88ef516927ecebf64cb505be3f"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Sat May 05 22:03:49 2007 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Sat May 05 22:03:49 2007 +0200"
      },
      "message": "sl82c105: rework PIO support (take 2)\n\nGet rid of the \u0027pio_speed\u0027 member of \u0027ide_drive_t\u0027 that was only used by this\ndriver by storing the PIO mode timings in the \u0027drive_data\u0027 instead -- this\nallows us to greatly  simplify the process of \"reloading\" of the chip\u0027s timing\nregister and do it right in sl82c150_dma_off_quietly() and to get rid of two\nextra arguments to config_for_pio() -- which got renamed to sl82c105_tune_pio()\nand now returns a PIO mode selected, with ide_config_drive_speed() call moved\ninto the tuneproc() method, now called sl82c105_tune_drive() with the code to\nset drive\u0027s \u0027io_32bit\u0027 and \u0027unmask\u0027 flags in its turn moved to its proper place\nin the init_hwif() method.\nAlso, while at it, rename get_timing_sl82c105() into get_pio_timings() and get\nrid of the code in it clamping cycle counts to 32 which was both incorrect and\nnever executed anyway...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "a9de8ce0943e03b425be18561f51159fcceb873d",
      "tree": "3b4b2ad1d8dc049fff6aebe2815680f12af44c5b",
      "parents": [
        "cf130cb102487723bdfc53e4abde1227a7563797"
      ],
      "author": {
        "name": "Jiri Benc",
        "email": "jbenc@suse.cz",
        "time": "Sat May 05 11:43:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 05 11:43:04 2007 -0700"
      },
      "message": "[MAC80211]: Add generic include/linux/ieee80211.h\n\nAdd generic IEEE 802.11 definitions.\n\nSigned-off-by: Jiri Benc \u003cjbenc@suse.cz\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cf130cb102487723bdfc53e4abde1227a7563797",
      "tree": "8a62c0bf9d31c6b33184cd71a278aa2a5b2598d8",
      "parents": [
        "af7cd373b01ccb8191dc16c77fff4cf2b11def50"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat May 05 11:42:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat May 05 11:42:03 2007 -0700"
      },
      "message": "[NETLINK]: Remove references to process ID\n\nPeople treating the *_pid fields in netlink as a process ID has caused\nendless confusion over the years.  The fact that our own netlink.h\ndoes this only adds to the confusion.\n\nSo here is a patch to change the comments to refer to it as the port\nID which hopefully will make it clear what the purpose of the fields\nreally is.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62ea6d80211ecc88ef516927ecebf64cb505be3f",
      "tree": "1920de8cd3671aedcc912afb8e5ddb2a7c674b05",
      "parents": [
        "fa24aa561a3cf91cf25b5d4066470b08a2d24206",
        "d3af5abe9a809becbe4b413144b607844560d445"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 21:44:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 21:44:34 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (46 commits)\n  mmc-omap: Clean up omap set_ios and make MMC_POWER_ON work\n  mmc-omap: Fix omap to use MMC_POWER_ON\n  mmc-omap: add missing \u0027\\n\u0027\n  mmc: make tifm_sd_set_dma_data() static\n  mmc: remove old card states\n  mmc: support unsafe resume of cards\n  mmc: separate out reading EXT_CSD\n  mmc: break apart switch function\n  MMC: Fix handling of low-voltage cards\n  MMC: Consolidate voltage definitions\n  mmc: add bus handler\n  wbsd: check for data opcode earlier\n  mmc: Separate out protocol ops\n  mmc: Move core functions to subdir\n  mmc: deprecate mmc bus topology\n  mmc: remove card upon suspend\n  mmc: allow suspended block driver to be removed\n  mmc: Flush pending detects on host removal\n  mmc: Move host and card drivers to subdirs\n  mmc: Move queue functions to mmc_block\n  ...\n"
    },
    {
      "commit": "4d4700707c0d4be0efc968989fb1cd01c60c0a35",
      "tree": "478453a4ae9453bd8d26ffc3df6eedcc30799a43",
      "parents": [
        "7e20ef030dde0e52dd5a57220ee82fa9facbea4e",
        "84dde76c4a2d99ed2d7de6ec82c53b56620900a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 19:55:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 19:55:11 2007 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (28 commits)\n  NFS: Fix a compile glitch on 64-bit systems\n  NFS: Clean up nfs_create_request comments\n  spkm3: initialize hash\n  spkm3: remove bad kfree, unnecessary export\n  spkm3: fix spkm3\u0027s use of hmac\n  NFS4: invalidate cached acl on setacl\n  NFS: Fix directory caching problem - with test case and patch.\n  NFS: Set meaningful value for fattr-\u003etime_start in readdirplus results.\n  NFS: Added support to turn off the NFSv3 READDIRPLUS RPC.\n  SUNRPC: RPC client should retry with different versions of rpcbind\n  SUNRPC: remove old portmapper\n  NFS: switch NFSROOT to use new rpcbind client\n  SUNRPC: switch the RPC server to use the new rpcbind registration API\n  SUNRPC: switch socket-based RPC transports to use rpcbind\n  SUNRPC: introduce rpcbind: replacement for in-kernel portmapper\n  SUNRPC: Eliminate side effects from rpc_malloc\n  SUNRPC: RPC buffer size estimates are too large\n  NLM: Shrink the maximum request size of NLM4 requests\n  NFS: Use pgoff_t in structures and functions that pass page cache offsets\n  NFS: Clean up nfs_sync_mapping_wait()\n  ...\n"
    },
    {
      "commit": "7e20ef030dde0e52dd5a57220ee82fa9facbea4e",
      "tree": "5006db4f85a2d7be2777748aaff2966e79dddc6f",
      "parents": [
        "a3d52136ee8f7399859f9a0824470fd49b1d1a00",
        "07d939677166cc4f000c767196872a9becc2697b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 19:36:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 19:36:58 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (49 commits)\n  [SCTP]: Set assoc_id correctly during INIT collision.\n  [SCTP]: Re-order SCTP initializations to avoid race with sctp_rcv()\n  [SCTP]: Fix the SO_REUSEADDR handling to be similar to TCP.\n  [SCTP]: Verify all destination ports in sctp_connectx.\n  [XFRM] SPD info TLV aggregation\n  [XFRM] SAD info TLV aggregationx\n  [AF_RXRPC]: Sort out MTU handling.\n  [AF_IUCV/IUCV] : Add missing section annotations\n  [AF_IUCV]: Implementation of a skb backlog queue\n  [NETLINK]: Remove bogus BUG_ON\n  [IPV6]: Some cleanups in include/net/ipv6.h\n  [TCP]: zero out rx_opt in tcp_disconnect()\n  [BNX2]: Fix TSO problem with small MSS.\n  [NET]: Rework dev_base via list_head (v3)\n  [TCP] Highspeed: Limited slow-start is nowadays in tcp_slow_start\n  [BNX2]: Update version and reldate.\n  [BNX2]: Print bus information for PCIE devices.\n  [BNX2]: Add 1-shot MSI handler for 5709.\n  [BNX2]: Restructure PHY event handling.\n  [BNX2]: Add indirect spinlock.\n  ...\n"
    },
    {
      "commit": "a3d52136ee8f7399859f9a0824470fd49b1d1a00",
      "tree": "ac0fd3d1efc356029cbbc5e413f778f7231cd909",
      "parents": [
        "5b339915762d30b21995aa7263e74081f2f1110a",
        "84767d00a8fd54dd97866561f6e2ee246c8e1cdc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:13:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:16:12 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (65 commits)\n  Input: gpio_keys - add support for switches (EV_SW)\n  Input: cobalt_btns - convert to use polldev library\n  Input: add skeleton for simple polled devices\n  Input: update some documentation\n  Input: wistron - fix typo in keymap for Acer TM610\n  Input: add input_set_capability() helper\n  Input: i8042 - add Fujitsu touchscreen/touchpad PNP IDs\n  Input: i8042 - add Panasonic CF-29 to nomux list\n  Input: lifebook - split into 2 devices\n  Input: lifebook - add signature of Panasonic CF-29\n  Input: lifebook - activate 6-byte protocol on select models\n  Input: lifebook - work properly on Panasonic CF-18\n  Input: cobalt buttons - separate device and driver registration\n  Input: ati_remote - make button repeat sensitivity configurable\n  Input: pxa27x - do not use deprecated SA_INTERRUPT flag\n  Input: ucb1400 - make delays configurable\n  Input: misc devices - switch to using input_dev-\u003edev.parent\n  Input: joysticks - switch to using input_dev-\u003edev.parent\n  Input: touchscreens - switch to using input_dev-\u003edev.parent\n  Input: mice - switch to using input_dev-\u003edev.parent\n  ...\n\nFixed up conflicts with core device model removal of \"struct subsystem\" manually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b339915762d30b21995aa7263e74081f2f1110a",
      "tree": "4e076dbd27025054b21dddd78a1cb3fef3de34d7",
      "parents": [
        "89661adaaee2f85116b399e642129ccd4dafd195",
        "823bccfc4002296ba88c3ad0f049e1abd8108d30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:48 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:\n  remove \"struct subsystem\" as it is no longer needed\n  sysfs: printk format warning\n  DOC: Fix wrong identifier name in Documentation/driver-model/devres.txt\n  platform: reorder platform_device_del\n  Driver core: fix show_uevent from taking up way too much stack\n"
    },
    {
      "commit": "89661adaaee2f85116b399e642129ccd4dafd195",
      "tree": "86a0bea62ef1ebbd454d5daa4deef1534ab5a222",
      "parents": [
        "6adae5d9e69743aede91b274224751811f7174f1",
        "9890b12a4a65a7b3181dd963421740edf0e14d69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:04:29 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (59 commits)\n  PCI: Free resource files in error path of pci_create_sysfs_dev_files()\n  pci-quirks: disable MSI on RS400-200 and RS480\n  PCI hotplug: Use menuconfig objects\n  PCI: ZT5550 CPCI Hotplug driver fix\n  PCI: rpaphp: Remove semaphores\n  PCI: rpaphp: Ensure more pcibios_add/pcibios_remove symmetry\n  PCI: rpaphp: Use pcibios_remove_pci_devices() symmetrically\n  PCI: rpaphp: Document is_php_dn()\n  PCI: rpaphp: Document find_php_slot()\n  PCI: rpaphp: Rename rpaphp_register_pci_slot() to rpaphp_enable_slot()\n  PCI: rpaphp: refactor tail call to rpaphp_register_slot()\n  PCI: rpaphp: remove rpaphp_set_attention_status()\n  PCI: rpaphp: remove print_slot_pci_funcs()\n  PCI: rpaphp: Remove setup_pci_slot()\n  PCI: rpaphp: remove a call that does nothing but a pointer lookup\n  PCI: rpaphp: Remove another wrappered function\n  PCI: rpaphp: Remve another call that is a wrapper\n  PCI: rpaphp: remove a function that does nothing but wrap debug printks\n  PCI: rpaphp: Remove un-needed goto\n  PCI: rpaphp: Fix a memleak; slot-\u003elocation string was never freed\n  ...\n"
    },
    {
      "commit": "6adae5d9e69743aede91b274224751811f7174f1",
      "tree": "5ad15959313fbf4b7a37a36e40b04ca718b1e423",
      "parents": [
        "253f04e78ded827c30f9582489773ebe2adc8924",
        "f6259deacfd55607ae57cff422d3bc7694ea14e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:01:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:01:17 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6:\n  [CRYPTO] padlock: Remove pointless padlock module\n  [CRYPTO] api: Add ablkcipher_request_set_tfm\n  [CRYPTO] cryptd: Add software async crypto daemon\n  [CRYPTO] api: Do not remove users unless new algorithm matches\n  [CRYPTO] cryptomgr: Fix parsing of nested templates \n  [CRYPTO] api: Add async blkcipher type\n  [CRYPTO] templates: Pass type/mask when creating instances\n  [CRYPTO] tcrypt: Use async blkcipher interface\n  [CRYPTO] api: Add async block cipher interface\n  [CRYPTO] api: Proc functions should be marked as unused\n"
    },
    {
      "commit": "254f9c5cd2d3b41e64f59df816630f7ca5548a8a",
      "tree": "f6e212c09a80e41ba228525869a269c75cbfc75a",
      "parents": [
        "f5456e040eaac7eb9545d49c38984af2047699be"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue May 01 22:33:07 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 17:59:08 2007 -0700"
      },
      "message": "Convert non-highmem kmap_atomic() to static inline function\n\nConvert kmap_atomic() in the non-highmem case from a macro to a static\ninline function, for better type-checking and the ability to pass void\npointers instead of struct page pointers.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f877958879d413c37bfbeb7517614f3625cdea38",
      "tree": "9a7956804b2a2299279c5896c9a70fed77254815",
      "parents": [
        "e10e5c4325b37e1a7dce9cd3d2cbcd8dd9536a7a"
      ],
      "author": {
        "name": "Finn Thain",
        "email": "fthain@telegraphics.com.au",
        "time": "Tue May 01 22:32:53 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 17:59:07 2007 -0700"
      },
      "message": "NuBus header update\n\nSync the nubus defines with the latest code in the mac68k repo. Some of these\nare needed for DP8390 driver update in the next patch.\n\nSigned-off-by: Finn Thain \u003cfthain@telegraphics.com.au\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3e2fd9cebcf4e82d0306fe7e796eeca5aac0614",
      "tree": "c25ace93e097c7fc71a8a34e25d3c23f93c53de1",
      "parents": [
        "39ad2cb352729a8b57803737905caae1e1d1942a"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Tue May 01 22:32:42 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 17:59:06 2007 -0700"
      },
      "message": "lockdep: Add missing disable/enable irq variant\n\nAdd missing disable/enable irq variant\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "c04cb856e20a8bf68762d60737b84328c1ab5900"
}
