)]}'
{
  "log": [
    {
      "commit": "ceffc078528befc008c6f2c2c4decda79eabd534",
      "tree": "a289e10162bdef0c0d9f6533f1a647b0fe1ed7a9",
      "parents": [
        "420edbcc09008342c7b2665453f6b370739aadb0"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: fs/mm: execute in place\n\n- generic_file* file operations do no longer have a xip/non-xip split\n- filemap_xip.c implements a new set of fops that require get_xip_page\n  aop to work proper. all new fops are exported GPL-only (don\u0027t like to\n  see whatever code use those except GPL modules)\n- __xip_unmap now uses page_check_address, which is no longer static\n  in rmap.c, and defined in linux/rmap.h\n- mm/filemap.h is now much more clean, plainly having just Linus\u0027\n  inline funcs moved here from filemap.c\n- fix includes in filemap_xip to make it build cleanly on i386\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "420edbcc09008342c7b2665453f6b370739aadb0",
      "tree": "9eae7b2d378d4e280dcc5c1b6b159e18e5e5dbe0",
      "parents": [
        "3d41088fa327782b14b5659dbcfff62ec704c23c"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Thu Jun 23 22:05:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:41 2005 -0700"
      },
      "message": "[PATCH] xip: bdev: execute in place\n\nThis is the block device related part.  The block device operation\ndirect_access now has a struct block_device as first parameter.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c988d2b2845495373f666a381d354a7f80981d62",
      "tree": "aece734adc28728437c9c87ba53428e79ac4c25f",
      "parents": [
        "f5bec39639d386e1893dc440dd536761136ab36b"
      ],
      "author": {
        "name": "Matt Domsch",
        "email": "Matt_Domsch@dell.com",
        "time": "Thu Jun 23 22:05:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:40 2005 -0700"
      },
      "message": "[PATCH] modules: add version and srcversion to sysfs\n\nThis patch adds version and srcversion files to\n/sys/module/${modulename} containing the version and srcversion fields\nof the module\u0027s modinfo section (if present).\n\n/sys/module/e1000\n|-- srcversion\n`-- version\n\nThis patch differs slightly from the version posted in January, as it\nnow uses the new kstrdup() call in -mm.\n\nWhy put this in sysfs?\n\na) Tools like DKMS, which deal with changing out individual kernel\n   modules without replacing the whole kernel, can behave smarter if they\n   can tell the version of a given module.  The autoinstaller feature, for\n   example, which determines if your system has a \"good\" version of a\n   driver (i.e.  if the one provided by DKMS has a newer verson than that\n   provided by the kernel package installed), and to automatically compile\n   and install a newer version if DKMS has it but your kernel doesn\u0027t yet\n   have that version.\n\nb) Because sysadmins manually, or with tools like DKMS, can switch out\n   modules on the file system, you can\u0027t count on \u0027modinfo foo.ko\u0027, which\n   looks at /lib/modules/${kernelver}/...  actually matching what is loaded\n   into the kernel already.  Hence asking sysfs for this.\n\nc) as the unbind-driver-from-device work takes shape, it will be\n   possible to rebind a driver that\u0027s built-in (no .ko to modinfo for the\n   version) to a newly loaded module.  sysfs will have the\n   currently-built-in version info, for comparison.\n\nd) tech support scripts can then easily grab the version info for what\u0027s\n   running presently - a question I get often.\n\nThere has been renewed interest in this patch on linux-scsi by driver\nauthors.\n\nAs the idea originated from GregKH, I leave his Signed-off-by: intact,\nthough the implementation is nearly completely new.  Compiled and run on\nx86 and x86_64.\n\nFrom: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\n\n      build fix\n\nFrom: Thierry Vignaud \u003ctvignaud@mandriva.com\u003e\n\n      build fix\n\nFrom: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\n\n      warning fix\n\nSigned-off-by: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\nSigned-off-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac19ecc6fa57b0ea320f01831175ff163f47d6a2",
      "tree": "e57248fd223eddb98a43eed6abbac704863a0abd",
      "parents": [
        "56fc08ca375491b965cb76fad65bfb98973e80d8"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@brturbo.com.br",
        "time": "Thu Jun 23 22:05:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:39 2005 -0700"
      },
      "message": "[PATCH] v4l: update for SAA7134 cards\n\nThis patch adds support for various SAA7134 cards and brings some fixes.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@brturbo.com.br\u003e\nSigned-off-by: Fabrice Aeschbacher \u003cfabrice.aeschbacher@laposte.net\u003e\nSigned-off-by: Hermann Pitton \u003chermann.pitton@onlinehome.de\u003e.\nSigned-off-by: Nickolay V Shmyrev \u003cnshmyrev@yandex.ru\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "56fc08ca375491b965cb76fad65bfb98973e80d8",
      "tree": "d19bb1d6e1d139dda8989188fae49cf124f3aaac",
      "parents": [
        "b45009b0288a96a3458f4f8e93cb776678d41875"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@brturbo.com.br",
        "time": "Thu Jun 23 22:05:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:39 2005 -0700"
      },
      "message": "[PATCH] v4l: update for tuner cards and some V4L chips\n\nTuner improvements and additions.  TEA5767 FM tuner added.  Several small\nfixes.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@brturbo.com.br\u003e\nSigned-off-by: Nickolay V Shmyrev \u003cnshmyrev@yandex.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3c1d0185db6a44b6304c404f4da1a1a98746ca46",
      "tree": "8837af3c12bd6ab030c83666255ace841461c02e",
      "parents": [
        "80d34362f391840dcb10c0ec261f765871a586f7"
      ],
      "author": {
        "name": "Michael Krufky",
        "email": "mkrufky@m1k.net",
        "time": "Thu Jun 23 22:04:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:38 2005 -0700"
      },
      "message": "[PATCH] v4l: support tuner for Thomson DDT 7611 (ATSC/NTSC)\n\nAdd support for tuner#60: Thomson DDT 7611 (ATSC/NTSC) Change tuner in\ncard#28 (DViCO FusionHDTV3 Gold-T) from tuner\u003d52 (Tuner Thomson DDT 7610)\nto tuner\u003d60 (Tuner Thomson DDT 7611)\n\nSigned-off-by: Michael Krufky \u003cmkrufky@m1k.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "239df2e2b0e1f4f69fdf76fb67e865824029e8ab",
      "tree": "57088068f1f464c9d1c71f9a4e9dccfcd5106c66",
      "parents": [
        "d81ef559daf2a8afa9292035d58b00e7cb23dd1a"
      ],
      "author": {
        "name": "Manuel Capinha",
        "email": "mcapinha@gmail.com",
        "time": "Thu Jun 23 22:04:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:38 2005 -0700"
      },
      "message": "[PATCH] v4l: add support for PixelView Ultra Pro\n\nThe following patch adds support for the PixelView Ultra Pro video capture\ncard in v4l.\n\n- It removes the remote control key definitions from ir-kbd-gpio.c and\n  moves them to ir-common.c so that they can be shared between bt878 and\n  cx88 based cards.\n\n- The patch also moves the FUSIONHDTV_3_GOLD_Q card from number 27 to 28\n  to regain compatibility with the V4L cvs.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0964a3d3f1aa96468091924f6b0c391a46dc6d0b",
      "tree": "0a6b0587d1922d64ca7e4aa7f306ad869bccf452",
      "parents": [
        "c7b9a45927e74c81d6562153f7fde9d32da00159"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:36 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4 reboot dirname fix\n\nSet the recovery directory via /proc/fs/nfsd/nfs4recoverydir.\n\nIt may be changed any time, but is used only on startup.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7b9a45927e74c81d6562153f7fde9d32da00159",
      "tree": "d21fb5d43052bce7469c168d1ad485c821a42079",
      "parents": [
        "190e4fbf96037e5e526ba3210f2bcc2a3b6fe964"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:36 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: reboot recovery\n\nThis patch adds the code to create and remove client subdirectories from the\nrecovery directory, as described in the previous patch comment.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "190e4fbf96037e5e526ba3210f2bcc2a3b6fe964",
      "tree": "957fb35a6a2895622c4db0052160fd91d06153e8",
      "parents": [
        "cb36d6345752fa24827044c68e15f6708a40d9f6"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: initialize recovery directory\n\nNFSv4 clients are required to know what state they have on the server so that\nthey can reclaim it on server reboot.  However, it is possible for\npathalogical combinations of server reboots and network partitions to leave a\nclient in a state where it cannot know whether it has lost its state on the\nserver.\n\nFor this reason, rfc3530 requires that we store some information about clients\nto stable storage.\n\nSo we maintain a directory /var/lib/nfs/v4recovery with a subdirectory for\neach client with active state.  We leave open the possibility of including\nfiles underneath each such subdirectory with information about the client, but\nfor now the subdirectories are empty.\n\nWe create a client subdirectory whenever a client makes its first non-reclaim\nopen_confirm.\n\nWe remove a client subdirectory whenever either\n        a) its lease expires, or\n\tb) the grace period ends without it reclaiming anything.\nWhen handling reclaims, we allow the reclaim if and only if the client doing\nthe reclaim has a subdirectory.\n\nThis patch adds just the code to scan the recovery directory on nfsd startup.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb36d6345752fa24827044c68e15f6708a40d9f6",
      "tree": "adc6b7201525c87685815037cfa5fd1c248f6e95",
      "parents": [
        "3e9e3dbe0fe36c824ce2c5d7b05997c87a64bbdc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: remove cb_parsed\n\nThe cb_parsed field is only used by probe_callback, to determine whether the\ncallback information has been filled in by setclientid.  But there is no way\nthat probe_callback() can be called without that having already happened, so\nthat check is superfluous, as is cb_parsed.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea1da636e956ad1591a74904f23d98bbc26a644b",
      "tree": "193d0667adad25b094e209856dfcc1300d1d85dc",
      "parents": [
        "21ab45a480ec7705d177e959ebf452d62340c004"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:35 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: rename state list fields\n\nTrivial renaming patch:\n\nI can never remember, while looking at various lists relating the nfsd4 state\nstructures, which are the \"heads\" and which are items on other lists, or which\nstructures are actually on the various lists.  The following convention helps\nme: given structures foo and bar, with foo containing the head of a list of\nbars, use \"bars\" for the name of the head of the list contained in the struct\nfoo, and use \"per_foo\" for the entries in the struct bars.\n\nAlready done for struct nfs4_file; go ahead and do it for the other nfsd4\nstate structures.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd39ca9a808c6026989bc2188868a0574eb37108",
      "tree": "9dbb4df308afd32e1a913e3df9c828863c6f98ee",
      "parents": [
        "a76b4319ca85b5e3a8098470c623a272d40271cd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:04:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: make needlessly global code static\n\nThis patch contains the following possible cleanups:\n\n- make needlessly global code static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a55370a3c0106106a975c5a09cee800611d0cf50",
      "tree": "408d5dc0ecf970c103ef091388e66da267adb2e2",
      "parents": [
        "7dea9d280c96f90382ec5d5709433e66a0993ec9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:33 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: reboot hash\n\nFor the purposes of reboot recovery we keep a directory with subdirectories\neach having a name that is the ascii hex representation of the md5 sum of a\nclient identifier for an active client.\n\nThis adds the code to calculate that name.  We also use it for the purposes of\ncomparing clients, so if someone ever manages to find two client names that\nare md5 collisions, then we\u0027ll return clid_inuse to the second.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd0b1e954e3ba3e5d2cab941458cf98206471bd2",
      "tree": "3637bcc40dc0725becc5e47dc51a4ded1bf3f673",
      "parents": [
        "707d4ab7b3aa6d1f7a7d2cd123fb83ba9a528205"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:32 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: idmap initialization\n\nAdopt standard kernel style by defining a no-op function instead of putting\nifdef\u0027s in the code where the function is called.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac4d8ff2a57179de3ef7834c6ab3fac430b0a05d",
      "tree": "8c0f7125177a47d4140a73e4b59309a5bb3ffd2c",
      "parents": [
        "76a3550ec50ed86885a10a767ebaebb7c9104721"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:32 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: clean up state initialization\n\nSeparate out stuff that needs initialization on startup from stuff that only\nneeds initialization on module init from static data.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76a3550ec50ed86885a10a767ebaebb7c9104721",
      "tree": "0961d1eb0a61378852cf90f203dba09a22ac012d",
      "parents": [
        "7b190fecfa33d72bcf74c9473134c2ad14ae9545"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: rename nfs4_state_init\n\nSomewhat gratuitous rename to simplify following patch.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b190fecfa33d72bcf74c9473134c2ad14ae9545",
      "tree": "94769b846f9d4e38a831f6e343db34bbfdb403bc",
      "parents": [
        "d99a05adf8490cc171b7709554936b8f3ac9e362"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:31 2005 -0700"
      },
      "message": "[PATCH] knfsd: nfsd4: delegation recovery\n\nAllow recovery of delegations after reboot.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13cd21845d6a9729ca95e36ae6e8c669623fbfd4",
      "tree": "d60064a17994393bfdc412cc1a85ffdf2a5f5914",
      "parents": [
        "8beefa249371f55432394ac96864c83b0b309c28"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:30 2005 -0700"
      },
      "message": "[PATCH] nfsd4: reference count struct nfs4_file\n\nAdd a struct kref to each nfs4_file and take a reference to it from each\nstateid and delegation that refers to it.  The atomicity guarantees are\noverkill given that all this stuff is done under the single nfsd4 state lock,\nbut a) we\u0027d like finer-grained locking some day, and b) this simplifies the\ncleanup of the structures a bit, something that has previously been a bit\ncomplicated and bug-prone.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8beefa249371f55432394ac96864c83b0b309c28",
      "tree": "1d31a36da779a930a6676bdfc7d8fe4fa564a05c",
      "parents": [
        "6fa305ded4cc859deb4727ad9b25df0bbc064e99"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:03:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:29 2005 -0700"
      },
      "message": "[PATCH] nfsd4: rename nfs4_file fields\n\nTrivial renaming patch:\n\nI can never remember, while looking at various lists relating the nfsd4 state\nstructures, which are the \"heads\" and which are items on other lists, or which\nstructures are actually on the various lists.  The following convention helps\nme: given structures foo and bar, with foo containing the head of a list of\nbars, use \"bars\" for the name of the head of the list contained in the struct\nfoo, and use \"per_foo\" for the entries in the struct bars.\n\nGo ahead and do this for struct nfs4_file.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "496400014f22c4dbdbc1e89249a2feba46939708",
      "tree": "1d05116cef2e6ecfeef9fab0a733a9f2cf2a18e3",
      "parents": [
        "0dd3c19212961453817f219cd6200981c38564bc"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@cse.unsw.edu.au",
        "time": "Thu Jun 23 22:02:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:06:28 2005 -0700"
      },
      "message": "[PATCH] nfsd4: fix fh_expire_type\n\nWe\u0027re returning NFS4_FH_NOEXPIRE_WITH_OPEN | NFS4_FH_VOL_RENAME for the\nfh_expire_type attribute.  This is incorrect:\n\t1. The spec actually only allows NOEXPIRE_WITH_OPEN when\n\t   VOLATILE_ANY is also set.\n\t2. Filehandles for open files can expire, if the file is removed\n\t   and there is a reboot.\n\t3. Filehandles are only volatile on rename in the nosubtree check\n\t   case.\n\nUnfortunately, there\u0027s no way to indicate that we only expire on remove.  So\nour only choice is FH4_VOLATILE_ANY.  Although it\u0027s redundant, we also set\nFH4_VOL_RENAME in the subtree check case, since subtreecheck does actually\ncause problems in practice and it seems possibly useful to give clients some\nway to distinguish that case.\n\nFix a mispelled #define while we\u0027re at it.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "391cd727eac2e10be7685efd739a3ea9de87393c",
      "tree": "564ac5faefc87d6a8806d56a82d22a0404da0fdc",
      "parents": [
        "55f51efdb696ff6e9d2056377d05268a97f3d4e4"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@brturbo.com.br",
        "time": "Thu Jun 23 22:02:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:31 2005 -0700"
      },
      "message": "[PATCH] tuner-core.c improvments and Ymec Tvision TVF8533MF support\n\ntuner-core.c, tuner.h:\n\n- tuner-core changed to support multiple I2C devices used on some\n  adapters;\n\n- Kconfig now has an option (CONFIG_TUNER_MULTI_I2C) to enable this new\n  behavor;\n\n- By default, even enabling CONFIG_TUNER_MULTI_I2C, tuner-core emulates\n  the old behavor, using first I2C device for both FM and TV;\n\n- There is a new i2c command (TUNER_SET_ADDR) to allow tuner clients to\n  select I2C address for FM or TV tuner;\n\n- Tuner I2C dettach now generates a warning on syslog if failed.\n\ntuner-simple.c:\n\n- TVision TVF-8531MF and TVF-5533 MF tuner included.  It uses, by\n  default, I2C on 0xC2 address for TV and on 0xC0 for Radio.  Both TV and\n  FM Radio mode are working.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@brturbo.com.br\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f33213ecf49c98da4e85121b592c3bea8057c2e6",
      "tree": "da7e51e7204625f21371eac23a931f4fe479e9db",
      "parents": [
        "9e87545f06930c1d294423a8091d1077e7444a47"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:29 2005 -0700"
      },
      "message": "[PATCH] I2O: Lindent run and replacement of printk through osm printing functions\n\nLindent run and replaced printk() through the corresponding osm_*() function\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e87545f06930c1d294423a8091d1077e7444a47",
      "tree": "ef05fca1becfa0e1584f234ddf9b1a430b7d018e",
      "parents": [
        "b2aaee33fbb354a2f08121aa1c1be55841102761"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:29 2005 -0700"
      },
      "message": "[PATCH] I2O: second code cleanup of sparse warnings and unneeded syncronization\n\nChanges:\n - Added header \"core.h\" for i2o_core.ko internal definitions\n - More sparse fixes\n - Changed display of TID\u0027s in sysfs attributes from XXX to 0xXXX\n - Use the right functions for accessing I/O and normal memory\n - Removed error handling of SCSI device errors and let the SCSI layer\n   take care of it\n - Added new device / removed device handling to SCSI-OSM\n - Make status access volatile\n - Cleaned up activation of I2O controller\n - Removed unnecessary wmb() and rmb() calls\n - Use own struct i2o_io for I/O memory instead of struct i2o_dma\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2aaee33fbb354a2f08121aa1c1be55841102761",
      "tree": "7567ca61aaf5eed8bb1acd01cd87aa235b854fd4",
      "parents": [
        "f10378fff658f61307496e0ae00095041725cf07"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:28 2005 -0700"
      },
      "message": "[PATCH] I2O: Adaptec specific SG_IO access, firmware access through sysfs and 2400A workaround\n\nChanges:\n - Provide SG_IO access to BLOCK and EXECUTIVE class on Adaptec\n   controllers\n - Use PRIVATE messages in SCSI-OSM because on some controllers normal\n   SCSI class commands like READ or READ CAPACITY cause errors\n - Use new DMA and SG list creation function\n - Added workaround to limit sectors per request for Adaptec 2400A\n   controllers\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f10378fff658f61307496e0ae00095041725cf07",
      "tree": "0c0413649317677771fa325dded94f1e12a6a0b7",
      "parents": [
        "f88e119c4b824a5017456fa094950d0f4092d96c"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:28 2005 -0700"
      },
      "message": "[PATCH] I2O: new sysfs attributes and Adaptec specific block device access and 64-bit DMA support\n\nChanges:\n - Added Bus-OSM which could be used by user space programs to reset a\n   channel on the controller\n - Make ioctl\u0027s in Config-OSM obsolete in prefer for sysfs attributes and\n   move those to its own file\n - Added sysfs attribute for firmware read and write access for I2O\n   controllers\n - Added special handling of firmware read and write access for Adaptec\n   controllers\n - Added vendor id and product id as sysfs-attribute to Executive classes\n - Added automatic notification of LCT change handling to Exec-OSM\n - Added flushing function to Block-OSM for later barrier implementation\n - Use PRIVATE messages for Block access on Adaptec controllers, which are\n   faster then BLOCK class access\n - Cleaned up support for Promise controller\n - New messages are now detected using the IRQ status register as\n   suggested by the I2O spec\n - Added i2o_dma_high() and i2o_dma_low() functions\n - Added facility for SG tablesize calculation when using 32-bit and\n   64-bit DMA addresses\n - Added i2o_dma_map_single() and i2o_dma_map_sg() which could build the\n   SG list for 32-bit as well as 64-bit DMA addresses\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f88e119c4b824a5017456fa094950d0f4092d96c",
      "tree": "7a0fea02c195732e299a576fd22fd439fbc38bdd",
      "parents": [
        "61fbfa8129c1771061a0e9f47747854293081c5b"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:28 2005 -0700"
      },
      "message": "[PATCH] I2O: first code cleanup of spare warnings and unused functions\n\nChanges:\n\n - Removed unnecessary checking of NULL before calling kfree()\n - Make some functions static\n - Changed pr_debug() into osm_debug()\n - Use i2o_msg_in_to_virt() for getting a pointer to the message frame\n - Cleaned up some comments\n - Changed some le32_to_cpu() into readl() where necessary\n - Make error messages of OSM\u0027s look the same\n - Cleaned up error handling in i2o_block_end_request()\n - Removed unused error handling of failed messages in Block-OSM, which\n   are not allowed by the I2O spec\n - Corrected the blocksize detection in i2o_block\n - Added hrt and lct sysfs-attribute to controller\n - Call done() function in SCSI-OSM after freeing DMA buffers\n - Removed unneeded variable for message size calculation in\n   i2o_scsi_queuecommand()\n - Make some changes to remove sparse warnings\n - Reordered some functions\n - Cleaned up controller initialization\n - Replaced some magic numbers by defines\n - Removed unnecessary dma_sync_single_for_cpu() call on coherent DMA\n - Removed some unused fields in i2o_controller and removed some unused\n   functions\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61fbfa8129c1771061a0e9f47747854293081c5b",
      "tree": "03fe14c41e2a49d3841ae6820a2dd43a91fddee9",
      "parents": [
        "34d6e07570ef74b965131452a862b13dfa779188"
      ],
      "author": {
        "name": "Markus Lidel",
        "email": "Markus.Lidel@shadowconnect.com",
        "time": "Thu Jun 23 22:02:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:28 2005 -0700"
      },
      "message": "[PATCH] I2O: bugfixes and compability enhancements\n\nChanges:\n\n - Fixed sysfs bug where user and parent links where added to the I2O\n   device itself\n - Fixed bug when calculating TID for the event handler and cleaned up the\n   workflow of i2o_driver_dispatch()\n - Fixed oops when no I2O device could be found for an event delivered to\n   Exec-OSM\n - Fixed initialization of spinlock in Exec-OSM\n - Fixed memory leak in i2o_cfg_passthru() and i2o_cfg_passthru()\n - Removed MTRR support\n - Added PCI ID of Promise SX6000 with firmware \u003e\u003d 1.20.x.x\n - Turn of caching for ioremapped memory of in_queue\n - Added initialization sequence for Promise controllers\n - Moved definition of u8 / u16 / u32 for raidutils before first use\n\nSigned-off-by: Markus Lidel \u003cMarkus.Lidel@shadowconnect.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a6df7da8f7ee99e6fd1995fad852bacb978a6447",
      "tree": "df65fb612c3e372990ca1380098ba02d95247bee",
      "parents": [
        "5e976d5557d3dd1e835b8be52e6201556dcfa052"
      ],
      "author": {
        "name": "Kylene Hall",
        "email": "kjhall@us.ibm.com",
        "time": "Thu Jun 23 22:02:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:27 2005 -0700"
      },
      "message": "[PATCH] tpm: TPMs on additional LPC bus\n\nAdd support for TPMs on additional LPC buses.\n\nSigned-off-by: Kylene Hall \u003ckjhall@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b6259432dee81f928c22c48c080d5f6325ed92e",
      "tree": "4b22a1a9a547a6e3da9d1a45cd83d210d9398fcd",
      "parents": [
        "8f43f84f13a49fe5f0f7d1595082b6d7ec6daa85"
      ],
      "author": {
        "name": "Corey Minyard",
        "email": "minyard@acm.org",
        "time": "Thu Jun 23 22:01:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:23 2005 -0700"
      },
      "message": "[PATCH] ipmi: add power cycle capability\n\nThis patch to adds \"power cycle\" functionality to the IPMI power off module\nipmi_poweroff.  It also contains changes to support procfs control of the\nfeature.\n\nThe power cycle action is considered an optional chassis control in the IPMI\nspecification.  However, it is definitely useful when the hardware supports\nit.  A power cycle is usually required in order to reset a firmware in a bad\nstate.  This action is critical to allow remote management of servers.\n\nThe implementation adds power cycle as optional to the ipmi_poweroff module.\nIt can be modified dynamically through the proc entry mentioned above.  During\na power down and enabled, the power cycle command is sent to the BMC firmware.\n If it fails either due to non-support or some error, it will retry to send\nthe command as power off.\n\nSigned-off-by: Christopher A. Poblete \u003cChris_Poblete@dell.com\u003e\nSigned-off-by: Corey Minyard \u003cminyard@acm.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7282bee78798294bb1f0211a842cdb9f4872db3d",
      "tree": "7a659275aaa7f4c741bd24eeb9f827b2f0a926d5",
      "parents": [
        "e344b63eeec7850b5e900e10c8a6c61d083fd3a4"
      ],
      "author": {
        "name": "Chris Zankel",
        "email": "czankel@tensilica.com",
        "time": "Thu Jun 23 22:01:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:22 2005 -0700"
      },
      "message": "[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 8\n\nThe attached patches provides part 8 of an architecture implementation\nfor the Tensilica Xtensa CPU series.\n\nSigned-off-by: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e344b63eeec7850b5e900e10c8a6c61d083fd3a4",
      "tree": "4871ace0c16423ce4697e4065841c3a0f55563c6",
      "parents": [
        "9a8fd5589902153a134111ed7a40f9cca1f83254"
      ],
      "author": {
        "name": "Chris Zankel",
        "email": "czankel@tensilica.com",
        "time": "Thu Jun 23 22:01:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:22 2005 -0700"
      },
      "message": "[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 7\n\nThe attached patches provides part 7 of an architecture implementation for the\nTensilica Xtensa CPU series.\n\nSigned-off-by: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a8fd5589902153a134111ed7a40f9cca1f83254",
      "tree": "6f7a06de25bdf0b2d94623794c2cbbc66b5a77f6",
      "parents": [
        "3f65ce4d141e435e54c20ed2379d983d362a2cb5"
      ],
      "author": {
        "name": "Chris Zankel",
        "email": "czankel@tensilica.com",
        "time": "Thu Jun 23 22:01:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:22 2005 -0700"
      },
      "message": "[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 6\n\nThe attached patches provides part 6 of an architecture implementation for the\nTensilica Xtensa CPU series.\n\nSigned-off-by: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "556a2a45bce1740f035befaa7201e4ad836c7257",
      "tree": "d4a85b6f2bd02ab5c7c194e351508b80035f07c5",
      "parents": [
        "1f54587bea84a35125c95e19b98c2f464c50871b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:01:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:20 2005 -0700"
      },
      "message": "[PATCH] quota: reiserfs: improve quota credit estimates\n\nUse improved credits estimates for quota operations.  Also reserve space\nfor a quota operation in a transaction only if filesystem was mounted with\nsome quota option.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f54587bea84a35125c95e19b98c2f464c50871b",
      "tree": "42f2467d6892be821271a2257e1259922bdafd45",
      "parents": [
        "4e5117ba0af4582b6ec9164874f719d7f3f1eb2b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:01:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:20 2005 -0700"
      },
      "message": "[PATCH] quota: ext3: Improve quota credit estimates\n\nUse improved credits estimates for quota operations.  Also reserve a space\nfor a quota operation in a transaction only if filesystem was mounted with\nsome quota options.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e5117ba0af4582b6ec9164874f719d7f3f1eb2b",
      "tree": "d667e418571366ecea1188cb113e786a4a1d7f5c",
      "parents": [
        "bd6a1f16fffdfe010fdc2979fd01f12357816762"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:01:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] quota: improve credits estimates\n\nImprove estimates on the number of needed credits for quota transaction.\nNow we distinguish blocks that might need to be allocated and blocks that\nonly need to be rewritten.  Also we distinguish deleting of a quota\nstructure and creating of a new one.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92198f7eaa5df3479341dd8fa20c2c81aa3b1e25",
      "tree": "b2b7f8c73b94b4179d5002eaaa30f683b6dc5132",
      "parents": [
        "16c29b67fb3bbacfc2a71f9e5f7d85728ef45efa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 22:00:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] pass iocb to dio_iodone_t\n\nXFS will have to look at iocb-\u003eprivate to fix aio+dio.  No other filesystem\nis using the blockdev_direct_IO* end_io callback.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e30148c3d524a9c1c63ca28261bc24c457eb07a",
      "tree": "a2fcc46cc11fe871ad976c07476d934a07313576",
      "parents": [
        "8589b4e00e352f983259140f25a262d973be6bc5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jun 23 22:00:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:19 2005 -0700"
      },
      "message": "[PATCH] Keys: Make request-key create an authorisation key\n\nThe attached patch makes the following changes:\n\n (1) There\u0027s a new special key type called \".request_key_auth\".\n\n     This is an authorisation key for when one process requests a key and\n     another process is started to construct it. This type of key cannot be\n     created by the user; nor can it be requested by kernel services.\n\n     Authorisation keys hold two references:\n\n     (a) Each refers to a key being constructed. When the key being\n     \t constructed is instantiated the authorisation key is revoked,\n     \t rendering it of no further use.\n\n     (b) The \"authorising process\". This is either:\n\n     \t (i) the process that called request_key(), or:\n\n     \t (ii) if the process that called request_key() itself had an\n     \t      authorisation key in its session keyring, then the authorising\n     \t      process referred to by that authorisation key will also be\n     \t      referred to by the new authorisation key.\n\n\t This means that the process that initiated a chain of key requests\n\t will authorise the lot of them, and will, by default, wind up with\n\t the keys obtained from them in its keyrings.\n\n (2) request_key() creates an authorisation key which is then passed to\n     /sbin/request-key in as part of a new session keyring.\n\n (3) When request_key() is searching for a key to hand back to the caller, if\n     it comes across an authorisation key in the session keyring of the\n     calling process, it will also search the keyrings of the process\n     specified therein and it will use the specified process\u0027s credentials\n     (fsuid, fsgid, groups) to do that rather than the calling process\u0027s\n     credentials.\n\n     This allows a process started by /sbin/request-key to find keys belonging\n     to the authorising process.\n\n (4) A key can be read, even if the process executing KEYCTL_READ doesn\u0027t have\n     direct read or search permission if that key is contained within the\n     keyrings of a process specified by an authorisation key found within the\n     calling process\u0027s session keyring, and is searchable using the\n     credentials of the authorising process.\n\n     This allows a process started by /sbin/request-key to read keys belonging\n     to the authorising process.\n\n (5) The magic KEY_SPEC_*_KEYRING key IDs when passed to KEYCTL_INSTANTIATE or\n     KEYCTL_NEGATE will specify a keyring of the authorising process, rather\n     than the process doing the instantiation.\n\n (6) One of the process keyrings can be nominated as the default to which\n     request_key() should attach new keys if not otherwise specified. This is\n     done with KEYCTL_SET_REQKEY_KEYRING and one of the KEY_REQKEY_DEFL_*\n     constants. The current setting can also be read using this call.\n\n (7) request_key() is partially interruptible. If it is waiting for another\n     process to finish constructing a key, it can be interrupted. This permits\n     a request-key cycle to be broken without recourse to rebooting.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-Off-By: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7888e7ff4ee579442128d7d12a9c9dbf2cf7de6a",
      "tree": "abe428ecb966e1dae07fce17f38e3e0c0ab4f134",
      "parents": [
        "76d8aeabfeb1c42641a81c44280177b9a08670d8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jun 23 22:00:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:18 2005 -0700"
      },
      "message": "[PATCH] Keys: Pass session keyring to call_usermodehelper()\n\nThe attached patch makes it possible to pass a session keyring through to the\nprocess spawned by call_usermodehelper().  This allows patch 3/3 to pass an\nauthorisation key through to /sbin/request-key, thus permitting better access\ncontrols when doing just-in-time key creation.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76d8aeabfeb1c42641a81c44280177b9a08670d8",
      "tree": "0a584439bb44e440717aa77a1398ba9eea24a137",
      "parents": [
        "7286aa9b9ab35f20b1ff16d867f4535701df99b5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jun 23 22:00:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:18 2005 -0700"
      },
      "message": "[PATCH] keys: Discard key spinlock and use RCU for key payload\n\nThe attached patch changes the key implementation in a number of ways:\n\n (1) It removes the spinlock from the key structure.\n\n (2) The key flags are now accessed using atomic bitops instead of\n     write-locking the key spinlock and using C bitwise operators.\n\n     The three instantiation flags are dealt with with the construction\n     semaphore held during the request_key/instantiate/negate sequence, thus\n     rendering the spinlock superfluous.\n\n     The key flags are also now bit numbers not bit masks.\n\n (3) The key payload is now accessed using RCU. This permits the recursive\n     keyring search algorithm to be simplified greatly since no locks need be\n     taken other than the usual RCU preemption disablement. Searching now does\n     not require any locks or semaphores to be held; merely that the starting\n     keyring be pinned.\n\n (4) The keyring payload now includes an RCU head so that it can be disposed\n     of by call_rcu(). This requires that the payload be copied on unlink to\n     prevent introducing races in copy-down vs search-up.\n\n (5) The user key payload is now a structure with the data following it. It\n     includes an RCU head like the keyring payload and for the same reason. It\n     also contains a data length because the data length in the key may be\n     changed on another CPU whilst an RCU protected read is in progress on the\n     payload. This would then see the supposed RCU payload and the on-key data\n     length getting out of sync.\n\n     I\u0027m tempted to drop the key\u0027s datalen entirely, except that it\u0027s used in\n     conjunction with quota management and so is a little tricky to get rid\n     of.\n\n (6) Update the keys documentation.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16822e62053e73fa7def9decc38a7e287d27d980",
      "tree": "fc736377c5c7e23ee78569392ed31a6030289e44",
      "parents": [
        "a39451c17f53bbae053555670c7b678d46bcebba",
        "e608a8072b10258aa18c2e33324def225199ba1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:27:24 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n"
    },
    {
      "commit": "e608a8072b10258aa18c2e33324def225199ba1d",
      "tree": "4b29a7e50c52a009ea7d38eb3935b57945edc88d",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50"
      ],
      "author": {
        "name": "David Mosberger-Tang",
        "email": "davidm@hpl.hp.com",
        "time": "Wed Jun 22 22:24:00 2005 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jun 23 14:52:51 2005 -0700"
      },
      "message": "[IA64] Fix pfn_to_nid() so the kernel compiles again for !CONFIG_DISCONTIGMEM.\n\nSigned-off-by: David Mosberger-Tang \u003cdavidm@hpl.hp.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "056ede6cface66b400cd3b8e60ed077cc5b85c18",
      "tree": "cb9ac506ae90158a804f8998d3e3907bc7d487ce",
      "parents": [
        "7c99c909fa69a183c1b80bd64fb9f0d11459aff3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:21:28 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:21:28 2005 -0700"
      },
      "message": "[TCP]: Report congestion control algorithm in tcp_diag.\n\nEnhancement to the tcp_diag interface used by the iproute2 ss command\nto report the tcp congestion control being used by a socket.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "317a76f9a44b437d6301718f4e5d08bd93f98da7",
      "tree": "caeba9839dee264f59b035b81c3d13d6c61b638e",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "message": "[TCP]: Add pluggable congestion control algorithm infrastructure.\n\nAllow TCP to have multiple pluggable congestion control algorithms.\nAlgorithms are defined by a set of operations and can be built in\nor modules.  The legacy \"new RENO\" algorithm is used as a starting\npoint and fallback.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4749f32da939d4e4160541b2cadc22492bb507ec",
      "tree": "a04b8d1d711f5f7c7dcc4dd43f6bfe17c54c306f",
      "parents": [
        "24665cd00dd06c741ef6268515ca9e6d3cda5c57"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jun 23 11:36:56 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 10:04:15 2005 -0700"
      },
      "message": "[PATCH] better USB_MON dependencies\n\nThis makes the USB_MON less confusing.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24665cd00dd06c741ef6268515ca9e6d3cda5c57",
      "tree": "d55e925db2b78bc6529965fa6b1df07a76b56610",
      "parents": [
        "fed2fc18a4567d613cd35115322257c6c6c710e9",
        "d7152fe14cad075d6dd4ee4194acd131aed0244e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:49:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:49:55 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6\n"
    },
    {
      "commit": "bfb07599da289881d3bcbb601a110e997fc7444b",
      "tree": "601c5e683c87e103de37bd68f014ec1f57d09bc7",
      "parents": [
        "790a19cd5711133f40daad7c55bf148de2b1d12c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:10:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] Introduce tty_unregister_ldisc()\n\nIt\u0027s a bit strange to see tty_register_ldisc call in modules\u0027 exit\nfunctions.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c43dc2fd885b5658cfd7cedb7bcca20910c517a4",
      "tree": "98b723badf4a71c9dbf04cfd0babcb02ac577982",
      "parents": [
        "63e6880918e75dcb92d60aff218a76e063a471ef"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Thu Jun 23 00:10:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] aio: make wait_queue -\u003etask -\u003eprivate\n\nIn the upcoming aio_down patch, it is useful to store a private data\npointer in the kiocb\u0027s wait_queue.  Since we provide our own wake up\nfunction and do not require the task_struct pointer, it makes sense to\nconvert the task pointer into a generic private pointer.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a59f452abe11f569e13ec16c51e6d61c54b9838",
      "tree": "0fc242afbf51aac7214e3a9b7620e83d0d4016f2",
      "parents": [
        "f9fd27a253d5e0b23531d12ce7ad15b6535d4486"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:10:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] remove \u003clinux/xattr_acl.h\u003e\n\nThis file duplicates \u003clinux/posix_acl_xattr.h\u003e, using slightly different\nnames.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9fd27a253d5e0b23531d12ce7ad15b6535d4486",
      "tree": "1ff92c3b1ec8c707f71154313ce98e73423b6d54",
      "parents": [
        "30aaa80885df5d1518d498a450e73282cea8d8b1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:10:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] acl endianess annotations\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45778ca819accab1a4a3378b3566cab0f189164f",
      "tree": "9214491346c8d2d91eb1a11cb6c2e6a9387e4290",
      "parents": [
        "280dedb8d64ccfe1166ae03d3b254fc3b65de6a5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@graphe.net",
        "time": "Thu Jun 23 00:10:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] Remove f_error field from struct file\n\nThe following patch removes the f_error field and all checks of f_error.\n\nTrond said:\n\n  f_error was introduced for NFS, and made sense when we were guaranteed\n  always to have a file pointer around when write errors occurred.  Since\n  then, we have (for various reasons) had to introduce the nfs_open_context in\n  order to track the file read/write state, and it made sense to move our\n  f_error tracking there too.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb93e3a52f8db7210258a1a2134cced0b78a46e1",
      "tree": "b6def4c3fe5624769de64e242bb2007fffea55c8",
      "parents": [
        "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jun 23 00:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] block: add unlocked_ioctl support for block devices\n\nThis patch allows block device drivers to convert their ioctl functions to\nunlocked_ioctl() like character devices and other subsystems.  All\nfunctions that were called with the BKL held before are still used that\nway, but I would not be surprised if it could be removed from the ioctl\nfunctions in drivers/block/ioctl.c themselves.\n\nAs a side note, I found that compat_blkdev_ioctl() acquires the BKL as\nwell, which looks like a bug.  I have checked that every user of\ndisk-\u003efops-\u003ecompat_ioctl() in the current git tree gets the BKL itself, so\nit could easily be removed from compat_blkdev_ioctl().\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9",
      "tree": "1696bd7881e36381b9cdaafe713c413202727228",
      "parents": [
        "fa912bcb06d5dc9525d8912a145db2bf4b7668c5"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Jun 23 00:10:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] compat: introduce compat_time_t\n\nThis patch is based on work by Carlos O\u0027Donell and Matthew Wilcox.  It\nintroduces/updates the compat_time_t type and uses it for compat siginfo\nstructures.  I have built this on ppc64 and x86_64.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa912bcb06d5dc9525d8912a145db2bf4b7668c5",
      "tree": "5c62d9a1ef416c83d3e149ca94c4e646eb29daf2",
      "parents": [
        "7007cab53176dc906e67b4efa62f20ff1432805a"
      ],
      "author": {
        "name": "Daniel Ritz",
        "email": "daniel.ritz@gmx.ch",
        "time": "Thu Jun 23 00:10:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:31 2005 -0700"
      },
      "message": "[PATCH] yenta TI: turn off interrupts during card power-on #2\n\n- make boot-up card recognition more reliable (ie.  redo interrogation\n  always if there is no valid \u0027card inserted\u0027 state) (and yes, i saw it\n  happening on an o2micro controller that both CB_CBARD and CB_16BITCARD\n  bits were set at the same time)\n\n- also redo interrogation before probing the ISA interrupts.  it\u0027s safer\n  to do the probing with the socket in a clean state.\n\n- make card insert detect more reliable.  yenta_get_status() now returns\n  SS_PENDING as long as the card is not completley inserted and one of the\n  voltage bits is set.  also !CB_CBARD doesn\u0027t mean CB_16BITCARD.  there is\n  CB_NOTACARD as well, so make an explicit check for CB_16BITCARD.\n\n- for TI bridges: disable IRQs during power-on.  in all-serial and tied\n  interrupt mode the interrupts are always disabled for single-slot\n  controllers.  for two-slot contollers the disabling is only done when the\n  other slot is empty.  to force disabling there is a new module parameter\n  now: pwr_irqs_off\u003dY (which is a regression for working setups.  that\u0027s\n  why it\u0027s an option, only use when required)\n\n- modparm to disable ISA interrupt probing (isa_probe, defaults to on)\n\n- remove unneeded code/cleanups (ie.  merge yenta_events() into\n  yenta_interrupts())\n\nSigned-off-by: Daniel Ritz \u003cdaniel.ritz@gmx.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46c271bedd2c8444b1d05bc44928beec0c07debc",
      "tree": "2e28cad2355b62b01815d1acc10d35a806f10ea0",
      "parents": [
        "dfb388bf8a328f206bba33933dd97230f412238b"
      ],
      "author": {
        "name": "Peter Osterlund",
        "email": "petero2@telia.com",
        "time": "Thu Jun 23 00:10:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] Improve CD/DVD packet driver write performance\n\nThis patch improves write performance for the CD/DVD packet writing driver.\n The logic for switching between reading and writing has been changed so\nthat streaming writes are no longer interrupted by read requests.\n\nSigned-off-by: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "11c80c8367db0a9d342529ed74464670cd86a1f6",
      "tree": "d4625a9565866dc6565972b069c57cdedb7e0f27",
      "parents": [
        "c7ea4b31fd962b4baadb42c0b8d7c6851c584102"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Thu Jun 23 00:09:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:28 2005 -0700"
      },
      "message": "[PATCH] adjust per_cpu definition in non-SMP case\n\nFix (in the architectures I\u0027m actually building for) the UP definition of\nper_cpu so that the cpu specified may be any expression, not just an\nidentifier or a suffix expression.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef3daeda7b58f046f94b26637d500354038d39f4",
      "tree": "acce3fb6a4ef5fa5c4e6962490d6f0db434fbad3",
      "parents": [
        "44e58a6a0bd604f46be9d808408a1cd880cc9b19"
      ],
      "author": {
        "name": "Yoav Zach",
        "email": "yoav_zach@yahoo.com",
        "time": "Thu Jun 23 00:09:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:28 2005 -0700"
      },
      "message": "[PATCH] Don\u0027t force O_LARGEFILE for 32 bit processes on ia64\n\nIn ia64 kernel, the O_LARGEFILE flag is forced when opening a file.  This\nis problematic for execution of 32 bit processes, which are not largefile\naware, either by SW emulation or by HW execution.\n\nFor such processes, the problem is two-fold:\n\n1) When trying to open a file that is larger than 4G\n   the operation should fail, but it\u0027s not\n2) Writing to offset larger than 4G should fail, but\n   it\u0027s not\n\nThe proposed patch takes advantage of the way 32 bit processes are\nidentified in ia64 systems.  Such processes have PER_LINUX32 for their\npersonality.  With the patch, the ia64 kernel will not enforce the\nO_LARGEFILE flag if the current process has PER_LINUX32 set.  The behavior\nfor all other architectures remains unchanged.\n\nSigned-off-by: Yoav Zach \u003cyoav.zach@intel.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6e711448137ca3301512cec41a2c2ce852b3d0a",
      "tree": "f0765ebd90fdbdf270c05fcd7f3d32b24ba56681",
      "parents": [
        "8b0914ea7475615c7c8965c1ac8fe4069270f25c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 23 00:09:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] setuid core dump\n\nAdd a new `suid_dumpable\u0027 sysctl:\n\nThis value can be used to query and set the core dump mode for setuid\nor otherwise protected/tainted binaries. The modes are\n\n0 - (default) - traditional behaviour.  Any process which has changed\n    privilege levels or is execute only will not be dumped\n\n1 - (debug) - all processes dump core when possible.  The core dump is\n    owned by the current user and no security is applied.  This is intended\n    for system debugging situations only.  Ptrace is unchecked.\n\n2 - (suidsafe) - any binary which normally would not be dumped is dumped\n    readable by root only.  This allows the end user to remove such a dump but\n    not access it directly.  For security reasons core dumps in this mode will\n    not overwrite one another or other files.  This mode is appropriate when\n    adminstrators are attempting to debug problems in a normal environment.\n\n(akpm:\n\n\u003e \u003e +EXPORT_SYMBOL(suid_dumpable);\n\u003e\n\u003e EXPORT_SYMBOL_GPL?\n\nNo problem to me.\n\n\u003e \u003e  \tif (current-\u003eeuid \u003d\u003d current-\u003euid \u0026\u0026 current-\u003eegid \u003d\u003d current-\u003egid)\n\u003e \u003e  \t\tcurrent-\u003emm-\u003edumpable \u003d 1;\n\u003e\n\u003e Should this be SUID_DUMP_USER?\n\nActually the feedback I had from last time was that the SUID_ defines\nshould go because its clearer to follow the numbers. They can go\neverywhere (and there are lots of places where dumpable is tested/used\nas a bool in untouched code)\n\n\u003e Maybe this should be renamed to `dump_policy\u0027 or something.  Doing that\n\u003e would help us catch any code which isn\u0027t using the #defines, too.\n\nFair comment. The patch was designed to be easy to maintain for Red Hat\nrather than for merging. Changing that field would create a gigantic\ndiff because it is used all over the place.\n\n)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea32c65cc2d2294c04e9f81d0578a6f51febfdbf",
      "tree": "b301766bcc903f982b0ae85b5edffe9477a65408",
      "parents": [
        "89cb14c0dd0e4a7d0315d19f449389c4d49237ee"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:24 2005 -0700"
      },
      "message": "[PATCH] kprobes: Temporary disarming of reentrant probe\n\nIn situations where a kprobes handler calls a routine which has a probe on it,\nthen kprobes_handler() disarms the new probe forever.  This patch removes the\nabove limitation by temporarily disarming the new probe.  When the another\nprobe hits while handling the old probe, the kprobes_handler() saves previous\nkprobes state and handles the new probe without calling the new kprobes\nregistered handlers.  kprobe_post_handler() restores back the previous kprobes\nstate and the normal execution continues.\n\nHowever on x86_64 architecture, re-rentrancy is provided only through\npre_handler().  If a routine having probe is referenced through\npost_handler(), then the probes on that routine are disarmed forever, since\nthe exception stack is gets changed after the processor single steps the\ninstruction of the new probe.\n\nThis patch includes generic changes to support temporary disarming on\nreentrancy of probes.\n\nSigned-of-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1674eafcbd3e3c68556cf19fbf4a2c30f7add729",
      "tree": "d57a4698902a4bc2c2e6a08d24c42ec2a5c67706",
      "parents": [
        "a5403183d84d419651672f1aee5ff2273d185efa"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:23 2005 -0700"
      },
      "message": "[PATCH] Kprobes IA64: cmp ctype unc support\n\nThe current Kprobes when patching the original instruction with the break\ninstruction tries to retain the original qualifying predicate(qp), however\nfor cmp.crel.ctype where ctype \u003d\u003d unc, which is a special instruction\nalways needs to be executed irrespective of qp.  Hence, if the instruction\nwe are patching is of this type, then we should not copy the original qp to\nthe break instruction, this is because we always want the break fault to\nhappen so that we can emulate the instruction.\n\nThis patch is based on the feedback given by David Mosberger\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bc76772ad653bcaad1b0af72aafb6072ef0fa87",
      "tree": "d778f0cc2640e078338d84cdc67cda403cc47d7b",
      "parents": [
        "cd2675bf65455a45b54228b7acc0c6a26a164cb6"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Thu Jun 23 00:09:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:23 2005 -0700"
      },
      "message": "[PATCH] Kprobes ia64 cleanup\n\nA cleanup of the ia64 kprobes implementation such that all of the bundle\nmanipulation logic is concentrated in arch_prepare_kprobe().\n\nWith the current design for kprobes, the arch specific code only has a\nchance to return failure inside the arch_prepare_kprobe() function.\n\nThis patch moves all of the work that was happening in arch_copy_kprobe()\nand most of the work that was happening in arch_arm_kprobe() into\narch_prepare_kprobe().  By doing this we can add further robustness checks\nin arch_arm_kprobe() and refuse to insert kprobes that will cause problems.\n\nSigned-off-by: Rusty Lynch \u003cRusty.lynch@intel.com\u003e\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd2675bf65455a45b54228b7acc0c6a26a164cb6",
      "tree": "102dd9bdf79ce8a5728dd098fb2b3a574c113186",
      "parents": [
        "b2761dc262b428475890fffd979687051beb12ba"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:23 2005 -0700"
      },
      "message": "[PATCH] Kprobes/IA64: support kprobe on branch/call instructions\n\nThis patch is required to support kprobe on branch/call instructions.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2761dc262b428475890fffd979687051beb12ba",
      "tree": "088fcb3fb1a5e3fc73614dcbfcde9aa2ff7bc1ce",
      "parents": [
        "fd7b231ff98578308d8f5fb76a25a369ce1074ae"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:22 2005 -0700"
      },
      "message": "[PATCH] Kprobes/IA64: architecture specific JProbes support\n\nThis patch adds IA64 architecture specific JProbes support on top of Kprobes\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Rusty Lynch \u003cRusty.lynch@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd7b231ff98578308d8f5fb76a25a369ce1074ae",
      "tree": "529490442b281ce08015376fa6247647ca232e69",
      "parents": [
        "7213b2521889eb087eed8abaa48d1a692575da3e"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:22 2005 -0700"
      },
      "message": "[PATCH] Kprobes/IA64: arch specific handling\n\nThis is an IA64 arch specific handling of Kprobes\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Rusty Lynch \u003cRusty.lynch@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7213b2521889eb087eed8abaa48d1a692575da3e",
      "tree": "8a9a0b5cfaa9824de97d9dae45b20d2a7309db5b",
      "parents": [
        "0aa55e4d7db822059fe8132fe9f2b7773c48216c"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:22 2005 -0700"
      },
      "message": "[PATCH] Kprobes/IA64: kdebug die notification mechanism\n\nAs many of you know that kprobes exist in the main line kernel for various\narchitecture including i386, x86_64, ppc64 and sparc64.  Attached patches\nfollowing this mail are a port of Kprobes and Jprobes for IA64.\n\nI have tesed this patches for kprobes and Jprobes and this seems to work fine.\n I have tested this patch by inserting kprobes on various slots and various\ntemplates including various types of branch instructions.\n\nI have also tested this patch using the tool\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d111657358022586\u0026w\u003d2 and the\nkprobes for IA64 works great.\n\nHere is list of TODO things and pathes for the same will appear soon.\n\n1) Support kprobes on \"mov r1\u003dip\" type of instruction\n2) Support Kprobes and Jprobes to exist on the same address\n3) Support Return probes\n3) Architecture independent cleanup of kprobes\n\nThis patch adds the kdebug die notification mechanism needed by Kprobes.\n\nFor break instruction on Branch type slot, imm21 is ignored and value\nzero is placed in IIM register, hence we need to handle kprobes\nfor switch case zero.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Rusty Lynch \u003cRusty.lynch@intel.com\u003e\n\nFrom: Rusty Lynch \u003crusty.lynch@intel.com\u003e\n\nAt the point in traps.c where we recieve a break with a zero value, we can\nnot say if the break was a result of a kprobe or some other debug facility.\n\nThis simple patch changes the informational string to a more correct \"break\n0\" value, and applies to the 2.6.12-rc2-mm2 tree with all the kprobes\npatches that were just recently included for the next mm cut.\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0aa55e4d7db822059fe8132fe9f2b7773c48216c",
      "tree": "84075ac377f29f393aff802f00def309a98bcf40",
      "parents": [
        "7e1048b11c5afe79aac46a42e3ccec86b8365c6d"
      ],
      "author": {
        "name": "Hien Nguyen",
        "email": "hien@us.ibm.com",
        "time": "Thu Jun 23 00:09:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] kprobes: moves lock-unlock to non-arch kprobe_flush_task\n\nThis patch moves the lock/unlock of the arch specific kprobe_flush_task()\nto the non-arch specific kprobe_flusk_task().\n\nSigned-off-by: Hien Nguyen \u003chien@us.ibm.com\u003e\nAcked-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e1048b11c5afe79aac46a42e3ccec86b8365c6d",
      "tree": "4f9caee0153e688f22d7e7b6fdc62e35be4fc3fe",
      "parents": [
        "73649dab0fd524cb8545a8cb83c6eaf77b107105"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Thu Jun 23 00:09:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] Move kprobe [dis]arming into arch specific code\n\nThe architecture independent code of the current kprobes implementation is\narming and disarming kprobes at registration time.  The problem is that the\ncode is assuming that arming and disarming is a just done by a simple write\nof some magic value to an address.  This is problematic for ia64 where our\ninstructions look more like structures, and we can not insert break points\nby just doing something like:\n\n*p-\u003eaddr \u003d BREAKPOINT_INSTRUCTION;\n\nThe following patch to 2.6.12-rc4-mm2 adds two new architecture dependent\nfunctions:\n\n     * void arch_arm_kprobe(struct kprobe *p)\n     * void arch_disarm_kprobe(struct kprobe *p)\n\nand then adds the new functions for each of the architectures that already\nimplement kprobes (spar64/ppc64/i386/x86_64).\n\nI thought arch_[dis]arm_kprobe was the most descriptive of what was really\nhappening, but each of the architectures already had a disarm_kprobe()\nfunction that was really a \"disarm and do some other clean-up items as\nneeded when you stumble across a recursive kprobe.\" So...  I took the\nliberty of changing the code that was calling disarm_kprobe() to call\narch_disarm_kprobe(), and then do the cleanup in the block of code dealing\nwith the recursive kprobe case.\n\nSo far this patch as been tested on i386, x86_64, and ppc64, but still\nneeds to be tested in sparc64.\n\nSigned-off-by: Rusty Lynch \u003crusty.lynch@intel.com\u003e\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73649dab0fd524cb8545a8cb83c6eaf77b107105",
      "tree": "70f43b37ba915de148c28008e275dacec200e33f",
      "parents": [
        "b94cce926b2b902b79380ccba370d6f9f2980de0"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Thu Jun 23 00:09:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] x86_64 specific function return probes\n\nThe following patch adds the x86_64 architecture specific implementation\nfor function return probes.\n\nFunction return probes is a mechanism built on top of kprobes that allows\na caller to register a handler to be called when a given function exits.\nFor example, to instrument the return path of sys_mkdir:\n\nstatic int sys_mkdir_exit(struct kretprobe_instance *i, struct pt_regs *regs)\n{\n\tprintk(\"sys_mkdir exited\\n\");\n\treturn 0;\n}\nstatic struct kretprobe return_probe \u003d {\n\t.handler \u003d sys_mkdir_exit,\n};\n\n\u003cinside setup function\u003e\n\nreturn_probe.kp.addr \u003d (kprobe_opcode_t *) kallsyms_lookup_name(\"sys_mkdir\");\nif (register_kretprobe(\u0026return_probe)) {\n\tprintk(KERN_DEBUG \"Unable to register return probe!\\n\");\n\t/* do error path */\n}\n\n\u003cinside cleanup function\u003e\nunregister_kretprobe(\u0026return_probe);\n\nThe way this works is that:\n\n* At system initialization time, kernel/kprobes.c installs a kprobe\n  on a function called kretprobe_trampoline() that is implemented in\n  the arch/x86_64/kernel/kprobes.c  (More on this later)\n\n* When a return probe is registered using register_kretprobe(),\n  kernel/kprobes.c will install a kprobe on the first instruction of the\n  targeted function with the pre handler set to arch_prepare_kretprobe()\n  which is implemented in arch/x86_64/kernel/kprobes.c.\n\n* arch_prepare_kretprobe() will prepare a kretprobe instance that stores:\n  - nodes for hanging this instance in an empty or free list\n  - a pointer to the return probe\n  - the original return address\n  - a pointer to the stack address\n\n  With all this stowed away, arch_prepare_kretprobe() then sets the return\n  address for the targeted function to a special trampoline function called\n  kretprobe_trampoline() implemented in arch/x86_64/kernel/kprobes.c\n\n* The kprobe completes as normal, with control passing back to the target\n  function that executes as normal, and eventually returns to our trampoline\n  function.\n\n* Since a kprobe was installed on kretprobe_trampoline() during system\n  initialization, control passes back to kprobes via the architecture\n  specific function trampoline_probe_handler() which will lookup the\n  instance in an hlist maintained by kernel/kprobes.c, and then call\n  the handler function.\n\n* When trampoline_probe_handler() is done, the kprobes infrastructure\n  single steps the original instruction (in this case just a top), and\n  then calls trampoline_post_handler().  trampoline_post_handler() then\n  looks up the instance again, puts the instance back on the free list,\n  and then makes a long jump back to the original return instruction.\n\nSo to recap, to instrument the exit path of a function this implementation\nwill cause four interruptions:\n\n  - A breakpoint at the very beginning of the function allowing us to\n    switch out the return address\n  - A single step interruption to execute the original instruction that\n    we replaced with the break instruction (normal kprobe flow)\n  - A breakpoint in the trampoline function where our instrumented function\n    returned to\n  - A single step interruption to execute the original instruction that\n    we replaced with the break instruction (normal kprobe flow)\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b94cce926b2b902b79380ccba370d6f9f2980de0",
      "tree": "da2680b1ec36eae6423ba446d09284d2642ae82b",
      "parents": [
        "2fa389c5eb8c97d621653184d2adf5fdbd4a3167"
      ],
      "author": {
        "name": "Hien Nguyen",
        "email": "hien@us.ibm.com",
        "time": "Thu Jun 23 00:09:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] kprobes: function-return probes\n\nThis patch adds function-return probes to kprobes for the i386\narchitecture.  This enables you to establish a handler to be run when a\nfunction returns.\n\n1. API\n\nTwo new functions are added to kprobes:\n\n\tint register_kretprobe(struct kretprobe *rp);\n\tvoid unregister_kretprobe(struct kretprobe *rp);\n\n2. Registration and unregistration\n\n2.1 Register\n\n  To register a function-return probe, the user populates the following\n  fields in a kretprobe object and calls register_kretprobe() with the\n  kretprobe address as an argument:\n\n  kp.addr - the function\u0027s address\n\n  handler - this function is run after the ret instruction executes, but\n  before control returns to the return address in the caller.\n\n  maxactive - The maximum number of instances of the probed function that\n  can be active concurrently.  For example, if the function is non-\n  recursive and is called with a spinlock or mutex held, maxactive \u003d 1\n  should be enough.  If the function is non-recursive and can never\n  relinquish the CPU (e.g., via a semaphore or preemption), NR_CPUS should\n  be enough.  maxactive is used to determine how many kretprobe_instance\n  objects to allocate for this particular probed function.  If maxactive \u003c\u003d\n  0, it is set to a default value (if CONFIG_PREEMPT maxactive\u003dmax(10, 2 *\n  NR_CPUS) else maxactive\u003dNR_CPUS)\n\n  For example:\n\n    struct kretprobe rp;\n    rp.kp.addr \u003d /* entrypoint address */\n    rp.handler \u003d /*return probe handler */\n    rp.maxactive \u003d /* e.g., 1 or NR_CPUS or 0, see the above explanation */\n    register_kretprobe(\u0026rp);\n\n  The following field may also be of interest:\n\n  nmissed - Initialized to zero when the function-return probe is\n  registered, and incremented every time the probed function is entered but\n  there is no kretprobe_instance object available for establishing the\n  function-return probe (i.e., because maxactive was set too low).\n\n2.2 Unregister\n\n  To unregiter a function-return probe, the user calls\n  unregister_kretprobe() with the same kretprobe object as registered\n  previously.  If a probed function is running when the return probe is\n  unregistered, the function will return as expected, but the handler won\u0027t\n  be run.\n\n3. Limitations\n\n3.1 This patch supports only the i386 architecture, but patches for\n    x86_64 and ppc64 are anticipated soon.\n\n3.2 Return probes operates by replacing the return address in the stack\n    (or in a known register, such as the lr register for ppc).  This may\n    cause __builtin_return_address(0), when invoked from the return-probed\n    function, to return the address of the return-probes trampoline.\n\n3.3 This implementation uses the \"Multiprobes at an address\" feature in\n    2.6.12-rc3-mm3.\n\n3.4 Due to a limitation in multi-probes, you cannot currently establish\n    a return probe and a jprobe on the same function.  A patch to remove\n    this limitation is being tested.\n\nThis feature is required by SystemTap (http://sourceware.org/systemtap),\nand reflects ideas contributed by several SystemTap developers, including\nWill Cohen and Ananth Mavinakayanahalli.\n\nSigned-off-by: Hien Nguyen \u003chien@us.ibm.com\u003e\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@laposte.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84de856ed30c568c2bb7b9ac0679772bd2737d9b",
      "tree": "532e4f6bcc0db2d1baf0455484ec7f64a2a51e71",
      "parents": [
        "df164db5fd16888ddbe2a63a47b2f6dda9a428b5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:09:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:20 2005 -0700"
      },
      "message": "[PATCH] quota: consolidate code surrounding vfs_quota_on_mount\n\nMove some code duplicated in both callers into vfs_quota_on_mount\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac20427ef6aa63da663bdc88b71d16f7394f5e23",
      "tree": "49ba4f88c5cea42d59b386c508174f585efc8a01",
      "parents": [
        "3bc1ee3e8f1c05c0f64a479c6d56eb34a6190599"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@redhat.com",
        "time": "Thu Jun 23 00:09:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] add check to /proc/devices read routines\n\nPatch to add check to get_chrdev_list and get_blkdev_list to prevent reads\nof /proc/devices from spilling over the provided page if more than 4096\nbytes of string data are generated from all the registered character and\nblock devices in a system\n\nSigned-off-by: Neil Horman \u003cnhorman@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dcd497f99a1ef29a7c5e76142965be77e9dacabd",
      "tree": "684d64753c6cd71917cf3c360023dd273be376b4",
      "parents": [
        "35a82d1a53e1a9ad54efafcc940f9335beaed5c3"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 00:09:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] streamline preempt_count type across archs\n\nThe preempt_count member of struct thread_info is currently either defined\nas int, unsigned int or __s32 depending on arch.  This patch makes the type\nof preempt_count an int on all archs.\n\nHaving preempt_count be an unsigned type prevents the catching of\npreempt_count \u003c 0 bugs, and using int on some archs and __s32 on others is\nnot exactely \"neat\" - much nicer when it\u0027s just int all over.\n\nA previous version of this patch was already ACK\u0027ed by Robert Love, and the\nonly change in this version of the patch compared to the one he ACK\u0027ed is\nthat this one also makes sure the preempt_count member is consistently\ncommented.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "35a82d1a53e1a9ad54efafcc940f9335beaed5c3",
      "tree": "776d5b01970c5ce3e2c9fd4a2c4cf2168a0afa3c",
      "parents": [
        "ab4af03a4054bd78bcabfb2214c9597201beae35"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Thu Jun 23 00:09:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] optimise loop driver a bit\n\nLooks like locking can be optimised quite a lot.  Increase lock widths\nslightly so lo_lock is taken fewer times per request.  Also it was quite\ntrivial to cover lo_pending with that lock, and remove the atomic\nrequirement.  This also makes memory ordering explicitly correct, which is\nnice (not that I particularly saw any mem ordering bugs).\n\nTest was reading 4 250MB files in parallel on ext2-on-tmpfs filesystem (1K\nblock size, 4K page size).  System is 2 socket Xeon with HT (4 thread).\n\nintel:/home/npiggin# umount /dev/loop0 ; mount /dev/loop0 /mnt/loop ; /usr/bin/time ./mtloop.sh\n\nBefore:\n0.24user 5.51system 0:02.84elapsed 202%CPU (0avgtext+0avgdata 0maxresident)k\n0.19user 5.52system 0:02.88elapsed 198%CPU (0avgtext+0avgdata 0maxresident)k\n0.19user 5.57system 0:02.89elapsed 198%CPU (0avgtext+0avgdata 0maxresident)k\n0.22user 5.51system 0:02.90elapsed 197%CPU (0avgtext+0avgdata 0maxresident)k\n0.19user 5.44system 0:02.91elapsed 193%CPU (0avgtext+0avgdata 0maxresident)k\n\nAfter:\n0.07user 2.34system 0:01.68elapsed 143%CPU (0avgtext+0avgdata 0maxresident)k\n0.06user 2.37system 0:01.68elapsed 144%CPU (0avgtext+0avgdata 0maxresident)k\n0.06user 2.39system 0:01.68elapsed 145%CPU (0avgtext+0avgdata 0maxresident)k\n0.06user 2.36system 0:01.68elapsed 144%CPU (0avgtext+0avgdata 0maxresident)k\n0.06user 2.42system 0:01.68elapsed 147%CPU (0avgtext+0avgdata 0maxresident)k\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "543537bd922692bc978e2e356fcd8bfc9c2ee7d5",
      "tree": "0089e3907e7d6c17c01cffc6ea4a8962ed053079",
      "parents": [
        "991114c6fa6a21d1fa4d544abe78592352860c82"
      ],
      "author": {
        "name": "Paulo Marques",
        "email": "pmarques@grupopie.com",
        "time": "Thu Jun 23 00:09:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] create a kstrdup library function\n\nThis patch creates a new kstrdup library function and changes the \"local\"\nimplementations in several places to use this function.\n\nMost of the changes come from the sound and net subsystems.  The sound part\nhad already been acknowledged by Takashi Iwai and the net part by David S.\nMiller.\n\nI left UML alone for now because I would need more time to read the code\ncarefully before making changes there.\n\nSigned-off-by: Paulo Marques \u003cpmarques@grupopie.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "991114c6fa6a21d1fa4d544abe78592352860c82",
      "tree": "cc81f871756a70a3312552409ee5cacd6625aa1d",
      "parents": [
        "f972be33ce6a08b5f096ba013c7459a3a82f5f39"
      ],
      "author": {
        "name": "Alexander Viro",
        "email": "aviro@redhat.com",
        "time": "Thu Jun 23 00:09:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:17 2005 -0700"
      },
      "message": "[PATCH] fix for prune_icache()/forced final iput() races\n\nBased on analysis and a patch from Russ Weight \u003crweight@us.ibm.com\u003e\n\nThere is a race condition that can occur if an inode is allocated and then\nreleased (using iput) during the -\u003efill_super functions.  The race\ncondition is between kswapd and mount.\n\nFor most filesystems this can only happen in an error path when kswapd is\nrunning concurrently.  For isofs, however, the error can occur in a more\ncommon code path (which is how the bug was found).\n\nThe logic here is \"we want final iput() to free inode *now* instead of\nletting it sit in cache if fs is going down or had not quite come up\".  The\nproblem is with kswapd seeing such inodes in the middle of being killed and\nhappily taking over.\n\nThe clean solution would be to tell kswapd to leave those inodes alone and\nlet our final iput deal with them.  I.e.  add a new flag\n(I_FORCED_FREEING), set it before write_inode_now() there and make\nprune_icache() leave those alone.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd450b7318b75343fd76b3d95416853e34e72c95",
      "tree": "e747348f7d3c9f1615963dde4f2c8baaf842415f",
      "parents": [
        "55c888d6d09a0df236adfaf8ccf06ff5d0646775"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:08:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] timers: introduce try_to_del_timer_sync()\n\nThis patch splits del_timer_sync() into 2 functions.  The new one,\ntry_to_del_timer_sync(), returns -1 when it hits executing timer.\n\nIt can be used in interrupt context, or when the caller hold locks which\ncan prevent completion of the timer\u0027s handler.\n\nNOTE.  Currently it can\u0027t be used in interrupt context in UP case, because\n-\u003erunning_timer is used only with CONFIG_SMP.\n\nShould the need arise, it is possible to kill #ifdef CONFIG_SMP in\nset_running_timer(), it is cheap.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55c888d6d09a0df236adfaf8ccf06ff5d0646775",
      "tree": "deb9434abe3cf7c9b714ccb267ef5d943a847dfe",
      "parents": [
        "bdd646a44672115c986593956aa4ef105485a184"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:08:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] timers fixes/improvements\n\nThis patch tries to solve following problems:\n\n1. del_timer_sync() is racy. The timer can be fired again after\n   del_timer_sync have checked all cpus and before it will recheck\n   timer_pending().\n\n2. It has scalability problems. All cpus are scanned to determine\n   if the timer is running on that cpu.\n\n   With this patch del_timer_sync is O(1) and no slower than plain\n   del_timer(pending_timer), unless it has to actually wait for\n   completion of the currently running timer.\n\n   The only restriction is that the recurring timer should not use\n   add_timer_on().\n\n3. The timers are not serialized wrt to itself.\n\n   If CPU_0 does mod_timer(jiffies+1) while the timer is currently\n   running on CPU 1, it is quite possible that local interrupt on\n   CPU_0 will start that timer before it finished on CPU_1.\n\n4. The timers locking is suboptimal. __mod_timer() takes 3 locks\n   at once and still requires wmb() in del_timer/run_timers.\n\n   The new implementation takes 2 locks sequentially and does not\n   need memory barriers.\n\nCurrently -\u003ebase !\u003d NULL means that the timer is pending. In that case\n-\u003ebase.lock is used to lock the timer. __mod_timer also takes timer-\u003elock\nbecause -\u003ebase can be \u003d\u003d NULL.\n\nThis patch uses timer-\u003eentry.next !\u003d NULL as indication that the timer is\npending. So it does __list_del(), entry-\u003enext \u003d NULL instead of list_del()\nwhen the timer is deleted.\n\nThe -\u003ebase field is used for hashed locking only, it is initialized\nin init_timer() which sets -\u003ebase \u003d per_cpu(tvec_bases). When the\ntvec_bases.lock is locked, it means that all timers which are tied\nto this base via timer-\u003ebase are locked, and the base itself is locked\ntoo.\n\nSo __run_timers/migrate_timers can safely modify all timers which could\nbe found on -\u003etvX lists (pending timers).\n\nWhen the timer\u0027s base is locked, and the timer removed from -\u003eentry list\n(which means that _run_timers/migrate_timers can\u0027t see this timer), it is\npossible to set timer-\u003ebase \u003d NULL and drop the lock: the timer remains\nlocked.\n\nThis patch adds lock_timer_base() helper, which waits for -\u003ebase !\u003d NULL,\nlocks the -\u003ebase, and checks it is still the same.\n\n__mod_timer() schedules the timer on the local CPU and changes it\u0027s base.\nHowever, it does not lock both old and new bases at once. It locks the\ntimer via lock_timer_base(), deletes the timer, sets -\u003ebase \u003d NULL, and\nunlocks old base. Then __mod_timer() locks new_base, sets -\u003ebase \u003d new_base,\nand adds this timer. This simplifies the code, because AB-BA deadlock is not\npossible. __mod_timer() also ensures that the timer\u0027s base is not changed\nwhile the timer\u0027s handler is running on the old base.\n\n__run_timers(), del_timer() do not change -\u003ebase anymore, they only clear\npending flag.\n\nSo del_timer_sync() can test timer-\u003ebase-\u003erunning_timer \u003d\u003d timer to detect\nwhether it is running or not.\n\nWe don\u0027t need timer_list-\u003elock anymore, this patch kills it.\n\nWe also don\u0027t need barriers. del_timer() and __run_timers() used smp_wmb()\nbefore clearing timer\u0027s pending flag. It was needed because __mod_timer()\ndid not lock old_base if the timer is not pending, so __mod_timer()-\u003elist_add()\ncould race with del_timer()-\u003elist_del(). With this patch these functions are\nserialized through base-\u003elock.\n\nOne problem. TIMER_INITIALIZER can\u0027t use per_cpu(tvec_bases). So this patch\nadds global\n\n        struct timer_base_s {\n                spinlock_t lock;\n                struct timer_list *running_timer;\n        } __init_timer_base;\n\nwhich is used by TIMER_INITIALIZER. The corresponding fields in tvec_t_base_s\nstruct are replaced by struct timer_base_s t_base.\n\nIt is indeed ugly. But this can\u0027t have scalability problems. The global\n__init_timer_base.lock is used only when __mod_timer() is called for the first\ntime AND the timer was compile time initialized. After that the timer migrates\nto the local CPU.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Renaud Lienhart \u003crenaud.lienhart@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7d37d028dfba90b1b747f8ac685bf0959aeda8b",
      "tree": "38627ec042c05f42feddff2ada95290ebe73679e",
      "parents": [
        "fa72b903f75e4f0f0b2c2feed093005167da4023"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 23 00:08:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:15 2005 -0700"
      },
      "message": "[PATCH] blk: remove BLK_TAGS_{PER_LONG|MASK}\n\nReplace BLK_TAGS_PER_LONG with BITS_PER_LONG and remove unused BLK_TAGS_MASK.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa72b903f75e4f0f0b2c2feed093005167da4023",
      "tree": "12087e87fb8d41d10013946e5b2c91e57265c29e",
      "parents": [
        "2bf0fdad51c6710bf15d0bf4b9b30b8498fe4ddd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 23 00:08:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:15 2005 -0700"
      },
      "message": "[PATCH] blk: remove blk_queue_tag-\u003ereal_max_depth optimization\n\nblk_queue_tag-\u003ereal_max_depth was used to optimize out unnecessary\nallocations/frees on tag resize.  However, the whole thing was very broken -\ntag_map was never allocated to real_max_depth resulting in access beyond the\nend of the map, bits in [max_depth..real_max_depth] were set when initializing\na map and copied when resizing resulting in pre-occupied tags.\n\nAs the gain of the optimization is very small, well, almost nill, remove the\nwhole thing.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9129e56e9ec50c0689eb4cf7a3ca132f1e776db",
      "tree": "46ef37651b1d25afbe002e00d8c80c85df27d5fd",
      "parents": [
        "717b594a415bfaf2dbd5e8266636488f2564c689"
      ],
      "author": {
        "name": "Vincent Hanquez",
        "email": "vincent.hanquez@cl.cam.ac.uk",
        "time": "Thu Jun 23 00:08:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:14 2005 -0700"
      },
      "message": "[PATCH] xen: x86_64: Add macro for debugreg\n\nAdd 2 macros to set and get debugreg on x86_64.  This is useful for Xen\nbecause it will need only to redefine each macro to a hypervisor call.\n\nSigned-off-by: Vincent Hanquez \u003cvincent.hanquez@cl.cam.ac.uk\u003e\nCc: Ian Pratt \u003cm+Ian.Pratt@cl.cam.ac.uk\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa1e1bdf78d405f9905b8290ee9211e7a7bbc99b",
      "tree": "92b63c9965beb9718cfe426f2c2a81f397eb87c4",
      "parents": [
        "1cc6f12e03ebc064b74161c684f987284ce9d0cc"
      ],
      "author": {
        "name": "Vincent Hanquez",
        "email": "vincent.hanquez@cl.cam.ac.uk",
        "time": "Thu Jun 23 00:08:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:14 2005 -0700"
      },
      "message": "[PATCH] xen: x86: Rename usermode macro\n\nRename user_mode to user_mode_vm and add a user_mode macro similar to the\nx86-64 one.\n\nThis is useful for Xen because the linux xen kernel does not runs on the same\npriviledge that a vanilla linux kernel, and with this we just need to redefine\nuser_mode().\n\nSigned-off-by: Vincent Hanquez \u003cvincent.hanquez@cl.cam.ac.uk\u003e\nCc: Ian Pratt \u003cm+Ian.Pratt@cl.cam.ac.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5012310e35bd62fd39fce338ee44422c975ff3c",
      "tree": "c50cb94b050947c41f285f5b40896ad0a977777b",
      "parents": [
        "701067c4661ebcdc155cc8f696acb24c016c058b"
      ],
      "author": {
        "name": "Vincent Hanquez",
        "email": "vincent.hanquez@cl.cam.ac.uk",
        "time": "Thu Jun 23 00:08:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:13 2005 -0700"
      },
      "message": "[PATCH] xen: x86: add macro for debugreg\n\nAdd 2 macros to set and get debugreg on x86.  This is useful for Xen because\nit will need only to redefine each macro to a hypervisor call.\n\nSigned-off-by: Vincent Hanquez \u003cvincent.hanquez@cl.cam.ac.uk\u003e\nCc: Ian Pratt \u003cm+Ian.Pratt@cl.cam.ac.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "32ecd42b6f94d3ee320a22827b46bd19ccf924e5",
      "tree": "ea74d38338f800940e630d075ca157149871f37d",
      "parents": [
        "0928d6ef7f204979749fb241a90a04a35dae133a"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Thu Jun 23 00:08:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:13 2005 -0700"
      },
      "message": "[PATCH] eliminate duplicate rdpmc definition\n\nEliminate duplicate definition of rdpmc in x86-64\u0027s mtrr.h.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3a255e744dfa672e741dc24306491139d0de2d8",
      "tree": "c19348966183d3ed79f6e9593a40d95c736e0665",
      "parents": [
        "129f69465b411592247c408f93d7106939223be1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Jun 23 00:08:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:11 2005 -0700"
      },
      "message": "[PATCH] x86: cpu_khz type fix\n\nx86_64\u0027s cpu_khz is unsigned int and there is no reason why x86 needs to use\nunsigned long.\n\nSo make cpu_khz unsigned int on x86 as well.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9ed8817966dd723754a990f1003264a21b5747e",
      "tree": "8fe7560aaa06288c18a098db21591e51bbff925a",
      "parents": [
        "80bb82afea9eeb94ae3bfed418d079930da5d3b3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:08:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:11 2005 -0700"
      },
      "message": "[PATCH] x86: #include asm/uaccess.h in asm/checksum.h\n\ncsum_and_copy_to_user is static inline and uses VERIFY_WRITE.  Patch allows\nto remove asm/uaccess.h from i386_ksyms.c without dependency surprises.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5d23e5b8c7ecd97d32f6ad7680d9909977580a7",
      "tree": "3155d7c690af52862991f25fbfaa0d467d0c5249",
      "parents": [
        "59121003721a8fad11ee72e646fd9d3076b5679c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Jun 23 00:08:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:10 2005 -0700"
      },
      "message": "[PATCH] ia64: Selectable Timer Interrupt Frequency\n\nIt allows a selectable timer interrupt frequency of 100, 250 and 1000 HZ.\nReducing the timer frequency may have important performance benefits on\nlarge systems.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59121003721a8fad11ee72e646fd9d3076b5679c",
      "tree": "c9279c1b74cce81a9dbaf1e7fd038cd55caf26f2",
      "parents": [
        "799d19f6ec5ca2102c61122f5219a17f1c4e961a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:08:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:10 2005 -0700"
      },
      "message": "[PATCH] i386: Selectable Frequency of the Timer Interrupt\n\nMake the timer frequency selectable. The timer interrupt may cause bus\nand memory contention in large NUMA systems since the interrupt occurs\non each processor HZ times per second.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca05fea6db5259c6d62e517c41d448a4249175f4",
      "tree": "fae2369b5a38a7b01be366129b5dc3105acfacf6",
      "parents": [
        "7c1def1652c6c1a95eafca2991baace34afaed0f"
      ],
      "author": {
        "name": "Natalie Protasevich",
        "email": "Natalie.Protasevich@unisys.com",
        "time": "Thu Jun 23 00:08:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:09 2005 -0700"
      },
      "message": "[PATCH] Do not enforce unique IO_APIC_ID check for xAPIC systems (i386)\n\nThis patch is per Andi\u0027s request to remove NO_IOAPIC_CHECK from genapic and\nuse heuristics to prevent unique I/O APIC ID check for systems that don\u0027t\nneed it.  The patch disables unique I/O APIC ID check for Xeon-based and\nother platforms that don\u0027t use serial APIC bus for interrupt delivery.\nAndi stated that AMD systems don\u0027t need unique IO_APIC_IDs either.\n\nSigned-off-by: Natalie Protasevich \u003cNatalie.Protasevich@unisys.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1946089a109251655c5438d92c539bd2930e71ea",
      "tree": "819a492d5a7c4e6e695b150a86abeb99d5ac46eb",
      "parents": [
        "8c5a09082f4e61a176382e96a831a0636b918602"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:08:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:09 2005 -0700"
      },
      "message": "[PATCH] NUMA aware block device control structure allocation\n\nPatch to allocate the control structures for for ide devices on the node of\nthe device itself (for NUMA systems).  The patch depends on the Slab API\nchange patch by Manfred and me (in mm) and the pcidev_to_node patch that I\nposted today.\n\nDoes some realignment too.\n\nSigned-off-by: Justin M. Forbes \u003cjmforbes@linuxtx.org\u003e\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Pravin Shelar \u003cpravin@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhit@calsoftinc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c5a09082f4e61a176382e96a831a0636b918602",
      "tree": "89a7086ebbec9d94dc7b7b3483d3750220ba979c",
      "parents": [
        "e164f5573bef0e6caf53519719cf0228c9c15ce3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:08:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:08 2005 -0700"
      },
      "message": "[PATCH] x86/x86_64: pcibus_to_node\n\nDefine pcibus_to_node to be able to figure out which NUMA node contains a\ngiven PCI device.  This defines pcibus_to_node(bus) in\ninclude/linux/topology.h and adjusts the macros for i386 and x86_64 that\nalready provided a way to determine the cpumask of a pci device.\n\nx86_64 was changed to not build an array of cpumasks anymore.  Instead an\narray of nodes is build which can be used to generate the cpumask via\nnode_to_cpumask.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e164f5573bef0e6caf53519719cf0228c9c15ce3",
      "tree": "beb6820d42219d34fb83b008de774cebd5e7bac8",
      "parents": [
        "4a35293667f8691b45fdb72770f087c086fb9702"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:08:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:08 2005 -0700"
      },
      "message": "[PATCH] ppc64: pcibus_to_node fix\n\nasm-generic/topology.h must also be included if CONFIG_NUMA is set in order to\nprovide the fall back pcibus_to_node function.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a35293667f8691b45fdb72770f087c086fb9702",
      "tree": "d128481d011dab5c030ddea816ba518446fbc4dd",
      "parents": [
        "8a9e1b0f564615bd92ba50162623e25c2904e564"
      ],
      "author": {
        "name": "Hirokazu Takata",
        "email": "takata@linux-m32r.org",
        "time": "Thu Jun 23 00:08:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:08 2005 -0700"
      },
      "message": "[PATCH] m32r: build fix for asm-m32r/topology.h\n\nUse asm-generic/topology.h to fix yet another pcibus_to_node() build error.\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a9e1b0f564615bd92ba50162623e25c2904e564",
      "tree": "ff8fe9b280cc539e4a57826e2dee072d247d284a",
      "parents": [
        "0f8e2d62fa04441cd12c08ce521e84e5bd3f8a46"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Jun 23 00:08:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:08 2005 -0700"
      },
      "message": "[PATCH] Platform SMIs and their interferance with tsc based delay calibration\n\nIssue:\nCurrent tsc based delay_calibration can result in significant errors in\nloops_per_jiffy count when the platform events like SMIs\n(System Management Interrupts that are non-maskable) are present. This could\nlead to potential kernel panic(). This issue is becoming more visible with 2.6\nkernel (as default HZ is 1000) and on platforms with higher SMI handling\nlatencies. During the boot time, SMIs are mostly used by BIOS (for things\nlike legacy keyboard emulation).\n\nDescription:\nThe psuedocode for current delay calibration with tsc based delay looks like\n(0) Estimate a value for loops_per_jiffy\n(1) While (loops_per_jiffy estimate is accurate enough)\n(2)   wait for jiffy transition (jiffy1)\n(3)   Note down current tsc (tsc1)\n(4)   loop until tsc becomes tsc1 + loops_per_jiffy\n(5)   check whether jiffy changed since jiffy1 or not and refine\nloops_per_jiffy estimate\n\nConsider the following cases\nCase 1:\nIf SMIs happen between (2) and (3) above, we can end up with a\nloops_per_jiffy value that is too low. This results in shorted delays and\nkernel can panic () during boot (Mostly at IOAPIC timer initialization\ntimer_irq_works() as we don\u0027t have enough timer interrupts in a specified\ninterval).\n\nCase 2:\nIf SMIs happen between (3) and (4) above, then we can end up with a\nloops_per_jiffy value that is too high. And with current i386 code, too\nhigh lpj value (greater than 17M) can result in a overflow in\ndelay.c:__const_udelay() again resulting in shorter delay and panic().\n\nSolution:\nThe patch below makes the calibration routine aware of asynchronous events\nlike SMIs. We increase the delay calibration time and also identify any\nsignificant errors (greater than 12.5%) in the calibration and notify it to\nuser.\n\nPatch below changes both i386 and x86-64 architectures to use this\nnew and improved calibrate_delay_direct() routine.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbfceef47fb9467424113a004070bf37a806a97c",
      "tree": "3c12cef85abaaa0ca42088fc7600ed687b74fb5e",
      "parents": [
        "2b97690f4cd960779fb351b7cd9974390afabb36"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@snoqualmie.dp.intel.com",
        "time": "Thu Jun 23 00:08:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:07 2005 -0700"
      },
      "message": "[PATCH] add x86-64 specific support for sparsemem\n\nThis patch adds in the necessary support for sparsemem such that x86-64\nkernels may use sparsemem as an alternative to discontigmem for NUMA\nkernels.  Note that this does no preclude one from continuing to build NUMA\nkernels using discontigmem, but merely allows the option to build NUMA\nkernels with sparsemem.\n\nInterestingly, the use of sparsemem in lieu of discontigmem in NUMA kernels\nresults in reduced text size for otherwise equivalent kernels as shown in\nthe example builds below:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n2371036\t 765884\t1237108\t4374028\t 42be0c\tvmlinux.discontig\n2366549\t 776484\t1302772\t4445805\t 43d66d\tvmlinux.sparse\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2b97690f4cd960779fb351b7cd9974390afabb36",
      "tree": "26a94d00bc67f3036cea966ba7435f8e1efd3779",
      "parents": [
        "1035faf1b19efb83d5626985240f52cd149dd39b"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@snoqualmie.dp.intel.com",
        "time": "Thu Jun 23 00:08:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:06 2005 -0700"
      },
      "message": "[PATCH] reorganize x86-64 NUMA and DISCONTIGMEM config options\n\nIn order to use the alternative sparsemem implmentation for NUMA kernels,\nwe need to reorganize the config options.  This patch effectively abstracts\nout the CONFIG_DISCONTIGMEM options to CONFIG_NUMA in most cases.  Thus,\nthe discontigmem implementation may be employed as always, but the\nsparsemem implementation may be used alternatively.\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "145e664231648121026d470094c200851a446a73",
      "tree": "c9362f4ec3e3114afb9b7134ae89152cbbc73cd4",
      "parents": [
        "74b30be2e183bd9a12d0350698996e3d1969f290"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:08:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:06 2005 -0700"
      },
      "message": "[PATCH] ppc64: sparsemem memory model\n\nProvide the architecture specific implementation for SPARSEMEM for PPC64\nsystems.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e (in part)\nSigned-off-by: Martin Bligh \u003cmbligh@aracnet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "510f8fa7ba18320d408dd3093663e58f5664f2f0",
      "tree": "e355a1268cc9f42fac7e4b904d67e450775fb91f",
      "parents": [
        "29751f6991e845f7d002a6ae520bf996b38c8dcd"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:08:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:05 2005 -0700"
      },
      "message": "[PATCH] ppc64: add early_pfn_to_nid\n\nProvide an implementation of early_pfn_to_nid for PPC64.  This is used by\nmemory models to determine the node from which to take allocations before the\nmemory allocators are fully initialised.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Martin Bligh \u003cmbligh@aracnet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29751f6991e845f7d002a6ae520bf996b38c8dcd",
      "tree": "f76c4c660ac4d204436f68851979343d2a9ba224",
      "parents": [
        "641c767389b19859a45e6de46d8e18cd935bdb60"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:08:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:05 2005 -0700"
      },
      "message": "[PATCH] sparsemem hotplug base\n\nMake sparse\u0027s initalization be accessible at runtime.  This allows sparse\nmappings to be created after boot in a hotplug situation.\n\nThis patch is separated from the previous one just to give an indication how\nmuch of the sparse infrastructure is *just* for hotplug memory.\n\nThe section_mem_map doesn\u0027t really store a pointer.  It stores something that\nis convenient to do some math against to get a pointer.  It isn\u0027t valid to\njust do *section_mem_map, so I don\u0027t think it should be stored as a pointer.\n\nThere are a couple of things I\u0027d like to store about a section.  First of all,\nthe fact that it is !NULL does not mean that it is present.  There could be\nsuch a combination where section_mem_map *is* NULL, but the math gets you\nproperly to a real mem_map.  So, I don\u0027t think that check is safe.\n\nSince we\u0027re storing 32-bit-aligned structures, we have a few bits in the\nbottom of the pointer to play with.  Use one bit to encode whether there\u0027s\nreally a mem_map there, and the other one to tell whether there\u0027s a valid\nsection there.  We need to distinguish between the two because sometimes\nthere\u0027s a gap between when a section is discovered to be present and when we\ncan get the mem_map for it.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "641c767389b19859a45e6de46d8e18cd935bdb60",
      "tree": "b3ac95aaea213823c226b181b8a301e4ae95bd9d",
      "parents": [
        "05b79bdcb48c18cd9b580c39e3efb9a1ab078151"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:07:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:05 2005 -0700"
      },
      "message": "[PATCH] sparsemem swiss cheese numa layouts\n\nThe part of the sparsemem patch which modifies memmap_init_zone() has recently\nbecome a problem.  It changes behavior so that there is a call to\npfn_to_page() for each individual page inside of a node\u0027s range:\nnode_start_pfn through node_end_pfn.  It used to simply do this once, at the\nbeginning of the node, but having sparsemem\u0027s non-contiguous mem_map[]s inside\nof a node made it necessary to change.\n\nMike Kravetz recently wrote a patch which made the NUMA code accept some new\nkinds of layouts.  The system\u0027s memory was laid out like this, with node 0\u0027s\nmemory in two pieces: one before and one after node 1\u0027s memory:\n\n\tNode 0: +++++     +++++\n\tNode 1:      +++++\n\nPrevious behavior before Mike\u0027s patch was to assign nodes like this:\n\n\tNode 0: 00000     XXXXX\n\tNode 1:      11111\n\nWhere the \u0027X\u0027 areas were simply thrown away.  The new behavior was to make the\npg_data_t span node 0 across all of its areas, including areas that are really\nnode 1\u0027s: Node 0: 000000000000000 Node 1: 11111\n\nThis wastes a little bit of mem_map space, but ends up being OK, and more\nfully utilizes the system\u0027s memory.  memmap_init_zone() initializes all of the\n\"struct page\"s for node 0, even for the \"hole\", but those never get used,\nbecause there is no pfn_to_page() that resolves to those pages.  However, only\ncalling pfn_to_page() once, memmap_init_zone() always uses the pages that were\nallocated for node0-\u003enode_mem_map because:\n\n\tstruct page *start \u003d pfn_to_page(start_pfn);\n\t// effectively start \u003d \u0026node-\u003enode_mem_map[0]\n\tfor (page \u003d start; page \u003c (start + size); page++) {\n\t\tinit_page_here();...\n\t\tpage++;\n\t}\n\nSlow, and wasteful, but generally harmless.\n\nBut, modify that to call pfn_to_page() for each loop iteration (like sparsemem\ndoes):\n\n\tfor (pfn \u003d start_pfn; pfn \u003c \u003c (start_pfn + size); pfn++++) {\n\t\tpage \u003d pfn_to_page(pfn);\n\t}\n\nAnd you end up trying to initialize node 1\u0027s pages too early, along with bogus\ndata from node 0.  This patch checks for those weird layouts and declines to\ntouch the pages, making the more frequent pfn_to_page() calls OK to do.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05b79bdcb48c18cd9b580c39e3efb9a1ab078151",
      "tree": "1767aaa7a4621ff4cf1a85c2078229de54272f30",
      "parents": [
        "d41dee369bff3b9dcb6328d4d822926c28cc2594"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:07:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:05 2005 -0700"
      },
      "message": "[PATCH] sparsemem memory model for i386\n\nProvide the architecture specific implementation for SPARSEMEM for i386 SMP\nand NUMA systems.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Martin Bligh \u003cmbligh@aracnet.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "d41dee369bff3b9dcb6328d4d822926c28cc2594"
}
