)]}'
{
  "log": [
    {
      "commit": "814a8d50eb1d88cedcef97567be53ee0d4512631",
      "tree": "edf10598ae95e5729edca3095b60641606b62939",
      "parents": [
        "735ce95e6b9a262d1fbc0ddb5620deb3a29d1067"
      ],
      "author": {
        "name": "Andrea Paterniani",
        "email": "a.paterniani@swapp-eng.it",
        "time": "Tue May 08 00:32:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "/dev/spidevB.C interface\n\nAdd a filesystem API for \u003clinux/spi/spi.h\u003e stack.  The initial version of\nthis interface is purely synchronous.\n\ndbrownell@users.sourceforge.net:\n\n Cleaned up, bugfixed; much simplified; added preliminary documentation.\n\n Works with mdev given CONFIG_SYSFS_DEPRECATED; and presumably udev.\n\n Updated SPI_IOC_MESSAGE ioctl to full spi_message semantics, supporting\n groups of one or more transfers (each of which may be full duplex if\n desired).\n\n This is marked as EXPERIMENTAL with an explicit disclaimer that the API\n (notably the ioctls) is subject to change.\n\nSigned-off-by: Andrea Paterniani \u003ca.paterniani@swapp-eng.it\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce0be1273d1473a5a7b57bf0b4995b40c22d6b54",
      "tree": "c1473e9f0828ecaaa01f81cf18fb78d73e127c24",
      "parents": [
        "58235413b24d5e5245685b84a4efe1ebc95f7886"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue May 08 00:31:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "clockchips.h: kernel-doc fix\n\nFix misnamed fields of \u0027struct clock_event_device\u0027 in the kernel-doc\ncomment.  Convert the acronyms to uppercase, while at it...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nAcked-by: 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": "acd64b737567d88a907bb09d7e982ac5e6ad6a7b",
      "tree": "773da21eeebf6cf2c5c19e9498addd9cc9da8802",
      "parents": [
        "6d4d8c0aa255c7b4bdf0fb693ec015b56204bbb3"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue May 08 00:31:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "hide spinlock in linux/quota.h behind __KERNEL__\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d4d8c0aa255c7b4bdf0fb693ec015b56204bbb3",
      "tree": "81eafa64ecc82beb96dfe33767fdbaa364043179",
      "parents": [
        "62eb5b1f3bb842d4ea112a5dbae0ce94aab088c4"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue May 08 00:31:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "Add taskstats.h to kbuild\n\nAdd taskstats.h to include/linux/Kbuild, make headers_install would then\npickup taskstats.h.  This needs to be done as taskstats.h is a user\ninterface header.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Don Zickus \u003cdzickus@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": "cef2cf07273d12ac3453d2baff096423f17b7403",
      "tree": "807ce95b91d1a09f449d61301f1148c85d7818db",
      "parents": [
        "6f7f02e78a75a09195d963e0392b195bc2d55c5c"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue May 08 00:31:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "Misc: add sensable phantom driver\n\nAdd sensable phantom driver\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f19b121e21c1b032f6c612d2b9b499151f7b661b",
      "tree": "8ee059ce2d92e81b7d1fe1e2c4cd4cdf7384a921",
      "parents": [
        "c1f858b763de570a4ab119ade7b24ccbc8fad23a"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 08 00:31:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "Driver for the Maxim DS1WM, a 1-wire bus master ASIC core\n\nCc: Matt Reimer \u003cmreimer@vpop.net\u003e\n\n[akpm@linux-foundation.org: kconfig update]\nSigned-off-by: Matt Reimer \u003cmreimer@vpop.net\u003e\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6df95fd7ad9a842c1688d2b83bdcb7c82e9c8630",
      "tree": "ebf36c4c218a1b6beeffc2e63340059069a036c3",
      "parents": [
        "8e39c933b1b7df501dbb68879fb1640e277b8a5c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:31:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "consolidate asm/const.h to linux/const.h\n\nMake a global linux/const.h header file instead of having multiple,\nper-arch files, and convert current users of asm/const.h to use\nlinux/const.h.\n\nBuilt on x86_64 and sparc64.\n\n[akpm@linux-foundation.org: fix include/asm-x86_64/Kbuild]\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "28ec039c21839914389975b896160a815ffd8b83",
      "tree": "e6b0364c906ee7409c7bce2d8849420a46cb7c10",
      "parents": [
        "4ff773bbde87f7f7dddc0f579ad53e077a6587b9"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Tue May 08 00:31:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:13 2007 -0700"
      },
      "message": "fat: don\u0027t use free_clusters for fat32\n\nIt seems that the recent Windows changed specification, and it\u0027s\nundocumented.  Windows doesn\u0027t update -\u003efree_clusters correctly.\n\nThis patch doesn\u0027t use -\u003efree_clusters by default.  (instead, add \"usefree\"\nfor forcing to use it)\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Juergen Beisert \u003cjuergen127@kreuzholzen.de\u003e\nCc: Andreas Schwab \u003cschwab@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": "28be5abb400e5e082f5225105fdc69337ec0c0b4",
      "tree": "e4bb3e527aac316004be68e28a25b2919e30afd4",
      "parents": [
        "9926e4c74300c4b31dee007298c6475d33369df0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 08 00:30:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:12 2007 -0700"
      },
      "message": "ext3: copy i_flags to inode flags on write\n\nA patch that stores inode flags such as S_IMMUTABLE, S_APPEND, etc.  from\ni_flags to EXT3_I(inode)-\u003ei_flags when inode is written to disk.  The same\nthing is done on GETFLAGS ioctl.\n\nQuota code changes these flags on quota files (to make it harder for\nsysadmin to screw himself) and these changes were not correctly propagated\ninto the filesystem (especially, lsattr did not show them and users were\nwondering...).\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc.  from i_flags into\next3-specific i_flags.  Hence, when someone sets these flags via a\ndifferent interface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@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": "d1ab824be43842ae7429ab1df37153e1cebb4d32",
      "tree": "346280ad807fa3b60f18861dac7a7da307568695",
      "parents": [
        "b5e618181a927210f8be1d3d2249d31904ba358d"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Tue May 08 00:30:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "Document SPIN_LOCK_UNLOCKED/RW_LOCK_UNLOCKED deprecation\n\nApparently it\u0027s not cool anymore to use SPIN/RW_LOCK_UNLOCKED.  There\u0027s\nsome mention of this in Documentation/spinlocks.txt, but that only talks\nabout dynamic initialisation.\n\nA comment in the code mentioning the preferred usage would be good IMHO.\n\n[akpm@linux-foundation.org: add reason for deprecation]\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\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": "b5e618181a927210f8be1d3d2249d31904ba358d",
      "tree": "731f1ae4ff1ba56d402bb329182b7d935bb439a1",
      "parents": [
        "db9c02fa8bd50eb104781a9f78cae923d8da1e74"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue May 08 00:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:11 2007 -0700"
      },
      "message": "Introduce a handy list_first_entry macro\n\nThere are many places in the kernel where the construction like\n\n   foo \u003d list_entry(head-\u003enext, struct foo_struct, list);\n\nare used.\nThe code might look more descriptive and neat if using the macro\n\n   list_first_entry(head, type, member) \\\n             list_entry((head)-\u003enext, type, member)\n\nHere is the macro itself and the examples of its usage in the generic code.\n If it will turn out to be useful, I can prepare the set of patches to\ninject in into arch-specific code, drivers, networking, etc.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@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": "b32e41bb97971161ad34ea69364c4f9ec3909151",
      "tree": "d05e1a191c30c2320f30c2d2506bcb61d3d05c95",
      "parents": [
        "6c080f1a93591500299a514ef63209079ff007ac"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Tue May 08 00:30:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "SPIN_LOCK_UNLOCKED cleanup in init_task.h\n\nSPIN_LOCK_UNLOCKED cleanup,use __SPIN_LOCK_UNLOCKED instead\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "873ec746158403af82c57ce26780166aafc159e1",
      "tree": "a1e853e61ac328ac7dbfb7329f6a776ddf3149fb",
      "parents": [
        "f038f9a361a764ed013447174b7170073f89cbe9"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Tue May 08 00:29:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "EFI: warn only for pre-1.00 system tables\n\nWe used to warn unless the EFI system table major revision was exactly 1.\nBut EFI 2.00 firmware is starting to appear, and the 2.00 changes don\u0027t\naffect anything in Linux.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@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": "49a4ec188f9a96c9a5567956718213d38a456a19",
      "tree": "29ac9f610ed355b3e3f752206c03180054df9bd7",
      "parents": [
        "eb81d93046e7de51d47b8f1303d80e6f51ac9e33"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue May 08 00:29:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "fix hotplug for legacy platform drivers\n\nWe\u0027ve had various reports of some legacy \"probe the hardware\" style\nplatform drivers having nasty problems with hotplug support.\n\nThe core issue is that those legacy drivers don\u0027t fully conform to the\ndriver model.  They assume a role that should be the responsibility of\ninfrastructure code: creating device nodes.\n\nThe \"modprobe\" step in hotplugging relies on drivers to have split those\nroles into different modules.  The lack of this split causes the problems.\nWhen a driver creates nodes for devices that don\u0027t exist (sending a hotplug\nevent), then exits (aborting one modprobe) before the \"modprobe $MODALIAS\"\nstep completes (by failing, since it\u0027s in the middle of a modprobe), the\nresult can be an endless loop of modprobe invocations ...  badness.\n\nThis fix uses the newish per-device flag controlling issuance of \"add\"\nevents.  (A previous version of this patch used a per-device \"driver can\nhotplug\" flag, which only scrubbed $MODALIAS from the environment rather\nthan suppressing the entire hotplug event.) It also shrinks that flag to\none bit, saving a word in \"struct device\".\n\nSo the net of this patch is removing some nasty failures with legacy\ndrivers, while retaining hotplug capability for the majority of platform\ndrivers.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Andres Salomon \u003cdilinger@debian.org\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6272e2667965dfb5b59199f462cd0f001fb304a6",
      "tree": "a14a4537dcd7af09863cc3a1c19a3efe386d67ab",
      "parents": [
        "039b6b3ed84e45a6f8316358dd2bfdc83d59fc45"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:29:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "cleanup compat ioctl handling\n\nMerge all compat ioctl handling into compat_ioctl.c instead of splitting it\nover compat.c and compat_ioctl.c.  This also allows to get rid of ioctl32.h\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nLooks-good-to: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e729aa16b168fb202d1a20f936028cb7c2a0278d",
      "tree": "d0267225ebfadbaa4f55f55c3025597d86ff1c5f",
      "parents": [
        "428e6ce023c5890cfecc8ad10335da3f28dbf893"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Tue May 08 00:29:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "Pad irq_desc to internode cacheline size\n\nWe noticed a drop in n/w performance due to the irq_desc being cacheline\naligned rather than internode aligned.  We see 50% of expected performance\nwhen two e1000 nics local to two different nodes have consecutive irq\ndescriptors allocated, due to false sharing.\n\nNote that this patch does away with cacheline padding for the UP case, as\nit does not seem useful for UP configurations.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.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": "644fd4f5de9ca147daeb6dc5f844b44ec3d58b47",
      "tree": "d9bd9c9bc6c02077e5f2d19556377a30c31cd0c9",
      "parents": [
        "884f2810b15b6bb489c9dca5013aafbea2f19fba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:29:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:09 2007 -0700"
      },
      "message": "merge compat_ioctl.h into compat_ioctl.c\n\nNow that there is no arch-specific compat ioctl handling left there is not\npoint in having a separate copat_ioctl.h, so merge it into compat_ioctl.c\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\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": "0e8638e2ace18eb6b814a63fe087106be05ca267",
      "tree": "ed25d468ae48e6819fd1c4a0d0713de95c4b3385",
      "parents": [
        "2833bf68b9634a02895d9463349d8c21bd32ccf6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 08 00:28:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Deprecate SA_xxx interrupt flags -V2\n\nThe deprecation of the SA_xxx interrupt flags did not emit deprecated\nwarnings. Andrew said about the removal of the deprecated flag defines:\n\n\u003e This is going to break a lot of external stuff.  We should have found\n\u003e a way to make usage of SA_* emit deprecated warnings (or _some_\n\u003e warning) to warn people of impending doom.  But I can\u0027t immediately\n\u003e find a way of doing that. if we _can_ find a way of doing this, I\n\u003e suspect we\u0027ll need to do it, and give people another six months.  It\u0027s\n\u003e going to get ugly out there.  We shall see...\n\nDefine the deprecated flags as a call to a __deprecated inline function\nso a warning is emitted on compile time.\n\nExtend the reprieve of out of tree drivers to 9/2007.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "a5c43dae7ae38c2a6b3e9a819bcf45f010bf6a4a",
      "tree": "b30da7a4541e803e35a6a74ad33e836442c3f6c8",
      "parents": [
        "9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between cat /proc/slab_allocators and rmmod\n\nSame story as with cat /proc/*/wchan race vs rmmod race, only\n/proc/slab_allocators want more info than just symbol name.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d",
      "tree": "9e3fd1c9e61e8ed16959d115a9a3f6f7eb0bbf21",
      "parents": [
        "ffb45122766db220d0bf3d01848d575fbbcb6430"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between cat /proc/*/wchan and rmmod et al\n\nkallsyms_lookup() can go iterating over modules list unprotected which is OK\nfor emergency situations (oops), but not OK for regular stuff like\n/proc/*/wchan.\n\nIntroduce lookup_symbol_name()/lookup_module_symbol_name() which copy symbol\nname into caller-supplied buffer or return -ERANGE.  All copying is done with\nmodule_mutex held, so...\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea07890a680273b25127129fb555aac0d9324bea",
      "tree": "b0742aa5dd90792dc10be3563c1181582d0f5d9e",
      "parents": [
        "ae84e324709d6320ed8c1fd7b1736fcbaf26df95"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Fix race between rmmod and cat /proc/kallsyms\n\nmodule_get_kallsym() leaks \"struct module *\" outside of module_mutex which is\nno-no, because module can dissapear right after mutex unlock.\n\nCopy all needed information from inside module_mutex into caller-supplied\nspace.\n\n[bunk@stusta.de: is_exported() can now become static]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\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": "ae84e324709d6320ed8c1fd7b1736fcbaf26df95",
      "tree": "bb3b623f2fd491771c716957622a72e86e9582dd",
      "parents": [
        "55955aad7c09e4d93029d0cf2d360b41891f2fe4"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue May 08 00:28:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Simplify module_get_kallsym() by dropping length arg\n\nmodule_get_kallsym() could in theory truncate module symbol name to fit in\nbuffer, but nobody does this.  Always use KSYM_NAME_LEN + 1 bytes for name.\n\nSuggested by lg^WRusty.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f95b7fc839bc3272b1bf2325d8748a649bd3534",
      "tree": "c5cbf5eabc5b58867d7a8949c412163e37182542",
      "parents": [
        "8f0c45cdf87dc9141e87b0ad2fc6fff216a95f79"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue May 08 00:28:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Kprobes: print details of kretprobe on assertion failure\n\nIn certain cases like when the real return address can\u0027t be found or when\nthe number of tracked calls to a kretprobed function is less than the\nnumber of returns, we may not be able to find the correct return address\nafter processing a kretprobe.  Currently we just do a BUG_ON, but no\ninformation is provided about the actual failing kretprobe.\n\nPrint out details of the kretprobe before calling BUG().\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.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": "6672f76a5a1878d42264c1deba8f1ab52b4618d9",
      "tree": "77396eefed3548183c1f0c3d1dc38f034d8fc429",
      "parents": [
        "73285082745045bcd64333c1fbaa88f8490f2626"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Tue May 08 00:28:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "kdump/kexec: calculate note size at compile time\n\nCurrently the size of the per-cpu region reserved to save crash notes is\nset by the per-architecture value MAX_NOTE_BYTES.  Which in turn is\ncurrently set to 1024 on all supported architectures.\n\nWhile testing ia64 I recently discovered that this value is in fact too\nsmall.  The particular setup I was using actually needs 1172 bytes.  This\nlead to very tedious failure mode where the tail of one elf note would\noverwrite the head of another if they ended up being alocated sequentially\nby kmalloc, which was often the case.\n\nIt seems to me that a far better approach is to caclculate the size that\nthe area needs to be.  This patch does just that.\n\nIf a simpler stop-gap patch for ia64 to be squeezed into 2.6.21(.X) is\nneeded then this should be as easy as making MAX_NOTE_BYTES larger in\narch/asm-ia64/kexec.h.  Perhaps 2048 would be a good choice.  However, I\nthink that the approach in this patch is a much more robust idea.\n\nAcked-by:  Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73285082745045bcd64333c1fbaa88f8490f2626",
      "tree": "bb45362b563332ff1e712b5f2b3b16a47b019691",
      "parents": [
        "4f911d64e04a44c47985be30f978fb3c2efcee0c"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Tue May 08 00:28:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "remove artificial software max_loop limit\n\nRemove artificial maximum 256 loop device that can be created due to a\nlegacy device number limit.  Searching through lkml archive, there are\nseveral instances where users complained about the artificial limit that\nthe loop driver impose.  There is no reason to have such limit.\n\nThis patch rid the limit entirely and make loop device and associated block\nqueue instantiation on demand.  With on-demand instantiation, it also gives\nthe benefit of not wasting memory if these devices are not in use (compare\nto current implementation that always create 8 loop devices), a net\nimprovement in both areas.  This version is both tested with creation of\nlarge number of loop devices and is compatible with existing losetup/mount\nuser land tools.\n\nThere are a number of people who worked on this and provided valuable\nsuggestions, in no particular order, by:\n\nJens Axboe\nJan Engelhardt\nChristoph Hellwig\nThomas M\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\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": "04c9167f91e309c9c4ea982992aa08e83b2eb42e",
      "tree": "b15e7bed8eb2e22e96971bbe3156a00683c70909",
      "parents": [
        "966812dc98e6a7fcdf759cbfa0efab77500a8868"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue May 08 00:28:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:06 2007 -0700"
      },
      "message": "add touch_all_softlockup_watchdogs()\n\nAdd touch_all_softlockup_watchdogs() to allow the softlockup watchdog\ntimers on all cpus to be updated.  This is used to prevent sysrq-t from\ngenerating a spurious watchdog message when generating lots of output.\n\nSoftlockup watchdogs use sched_clock() as its timebase, which is inherently\nper-cpu (at least, when it is measuring unstolen time).  Because of this,\nit isn\u0027t possible for one CPU to directly update the other CPU\u0027s timers,\nbut it is possible to tell the other CPUs to do update themselves\nappropriately.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nAcked-by: Chris Lalancette \u003cclalance@redhat.com\u003e\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Rick Lindsley \u003cricklind@us.ibm.com\u003e\nCc: 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": "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"
    }
  ],
  "next": "85f3f1b3f7a6197b51a2ab98d927517df730214c"
}
