)]}'
{
  "log": [
    {
      "commit": "8476994af7bd9352ecdf61ba760f7397f54e30a1",
      "tree": "cff822a944162070b4e64c0b9990640383e4cad6",
      "parents": [
        "11c80c8367db0a9d342529ed74464670cd86a1f6"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Thu Jun 23 00:10:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:28 2005 -0700"
      },
      "message": "[PATCH] apply quotation handling to Makefile.build\n\nAdding quotation handling to rule_cc_o_c in scripts/Makefile.build as used\nelsewhere.\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": "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": "c7ea4b31fd962b4baadb42c0b8d7c6851c584102",
      "tree": "be097db5341cd09a4cf640a2bc3c5a189e989f0c",
      "parents": [
        "ef3daeda7b58f046f94b26637d500354038d39f4"
      ],
      "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] ide-floppy adjustments\n\nFix a build problem when IDEFLOPPY_DEBUG_BUGS is turned off, and eliminate an\naccess to memory that is no longer allocated (causing systems to fail booting\nwhen CONFIG_DEBUG_PAGEALLOC is turned on).\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": "44e58a6a0bd604f46be9d808408a1cd880cc9b19",
      "tree": "a8cf955105a3a02504bdb6cccf36e4d21f5b2007",
      "parents": [
        "328007b70c8e99c62eef5bc310d8a21d0e937342"
      ],
      "author": {
        "name": "Martin Schitter",
        "email": "ms@gewi.kfunigraz.ac.at",
        "time": "Thu Jun 23 00:09:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] parport: NetMos nm9855 fix\n\nkernel 2.6.12-rc2 adopted some code by Bjorn Helgaas supporting NetMos combo\ncontroller cards. this implementation doesn\u0027t work for nm9855 based cards!\n\nthere are two reasons:\n\na) the module \u0027parport_pc\u0027 doesn\u0027t want to give the resonsibility for\n   the netmos_9855 to \u0027parport_serial\u0027 and can not handle the serial lines\n   -- trivial to fix...\n\n   http://lists.infradead.org/pipermail/linux-parport/2005-February/000250.html\n   http://lkml.org/lkml/2005/3/24/199 b) the support for the nm9855 in\n\n   \u0027parport_serial\u0027 still doesn\u0027t work because of wrong assumptions about\n   the relevant BARs port address layout for this chip:\n\n\t 0000:00:09.0 Communication controller:\n         \t      NetMos Technology PCI 9855\n         \t      Multi-I/O Controller (rev 01)\n\t \t      (\u003d 9710:9855)\n         Subsystem: LSI Logic / Symbios Logic 1P4S (\u003d 1000:0014)\n  \t Flags: medium devsel, IRQ 177\n\t I/O ports at a800 [size\u003d8]  (\u003d parport)\n\t I/O ports at a400 [size\u003d8]\n\t I/O ports at a000 [size\u003d8]  (\u003d serial)\n\t I/O ports at 9800 [size\u003d8]  (\u003d serial)\n\t I/O ports at 9400 [size\u003d8]  (\u003d serial)\n\t I/O ports at 9000 [size\u003d16] (\u003d serial)\n\nthe following patch will fix the problem.\n\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "328007b70c8e99c62eef5bc310d8a21d0e937342",
      "tree": "65d1ccbcd0a79d331a8cf95498505b8829ec621f",
      "parents": [
        "618f06362ae3f60f95d7b0e666de25ee6ae35679"
      ],
      "author": {
        "name": "Pat Gefre",
        "email": "pfg@sgi.com",
        "time": "Thu Jun 23 00:09:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] Altix: shut off xmit intr if done xmitting\n\nSmall mod to shut off the xmit interrupt if we have nothing to transmit.\n\nSigned-off-by: Patrick Gefre \u003cpfg@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "618f06362ae3f60f95d7b0e666de25ee6ae35679",
      "tree": "4415b4e590913e16535704168ea74c6af5a93c48",
      "parents": [
        "4fea2838aa00b9e59efde974dcdb455608192811"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Thu Jun 23 00:09:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] O(1) sb list traversing on syncs\n\nThis patch removes O(n^2) super block loops in sync_inodes(),\nsync_filesystems() etc.  in favour of using __put_super_and_need_restart()\nwhich I introduced earlier.  We faced a noticably long freezes on sb\nsyncing when there are thousands of super blocks in the system.\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fea2838aa00b9e59efde974dcdb455608192811",
      "tree": "f5de626cd00b232c8d3183bfcf3a1a669c1ff738",
      "parents": [
        "af4d2ecbf007b7df3db7a41eedccdc05b8006d0b"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Thu Jun 23 00:09:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] Software suspend and recalc sigpending bug fix\n\nThis patch fixes recalc_sigpending() to work correctly with tasks which are\nbeing freezed.\n\nThe problem is that freeze_processes() sets PF_FREEZE and TIF_SIGPENDING\nflags on tasks, but recalc_sigpending() called from e.g.\nsys_rt_sigtimedwait or any other kernel place will clear TIF_SIGPENDING due\nto no pending signals queued and the tasks won\u0027t be freezed until it\nrecieves a real signal or freezed_processes() fail due to timeout.\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-Off-By: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "af4d2ecbf007b7df3db7a41eedccdc05b8006d0b",
      "tree": "81c801b405278b53d99ad99b3c0f0468d2978deb",
      "parents": [
        "c663e5d80ebec426916ad2aa5400c7ec99aa572e"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Thu Jun 23 00:09:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] Fix of bogus file max limit messages\n\nThis patch fixes incorrect and bogus kernel messages that file-max limit\nreached when the allocation fails\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-Off-By: Denis Lunev \u003cden@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c663e5d80ebec426916ad2aa5400c7ec99aa572e",
      "tree": "463dd4600525e536ed00579fa30bab9708c53824",
      "parents": [
        "70f09f1fdf38cd7fca39913978d18cf998ab2c80"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:09:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] add some comments to lookup_create()\n\nIn a duplicate of lookup_create in the af_unix code Al commented what\u0027s\ngoing on nicely, so let\u0027s bring that over to lookup_create before the copy\nis going away (I\u0027ll send a patch soon)\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70f09f1fdf38cd7fca39913978d18cf998ab2c80",
      "tree": "33c18d78faefd0a9c29602acbb21cf063f58dc09",
      "parents": [
        "acfa1823d33859b0db77701726c9ca5ccc6e6f25"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@mail.ru",
        "time": "Thu Jun 23 00:09:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] Document the fact that linux-arm-kernel is subscribers-only.\n\n\"Non-members are not allowed to post messages to this list.  Blame the\noriginal poster for cross-posting to subscriber-only mailing lists.  \"\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@mail.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "acfa1823d33859b0db77701726c9ca5ccc6e6f25",
      "tree": "356c2edeed8e8a505ed03c6f9d04dc659e84d341",
      "parents": [
        "d6e711448137ca3301512cec41a2c2ce852b3d0a"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@clusterfs.com",
        "time": "Thu Jun 23 00:09:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] Support for dx directories in ext3_get_parent (NFSD)\n\nHenrik Grubbstrom noted:\n\nThe 2.6.10 ext3_get_parent attempts to use ext3_find_entry to look up the\nentry \"..\", which fails for dx directories since \"..\" is not present in the\ndirectory hash table.  The patch below solves this by looking up the dotdot\nentry in the dx_root block.\n\nTypical symptoms of the above bug are intermittent claims by nfsd that\nfiles or directories are missing on exported ext3 filesystems.\n\ncf https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d3D150759 and\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d3D144556\n\next3_get_parent() is IMHO the wrong place to fix this bug as it introduces\na lot of internals from htree into that function.  Instead, I think this\nshould be fixed in ext3_find_entry() as in the below patch.  This has the\nadded advantage that it works for any callers of ext3_find_entry() and not\njust ext3_lookup_parent().\n\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Henrik Grubbstrom \u003cgrubba@grubba.org\u003e\nCc: \u003cext2-devel@lists.sourceforge.net\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": "8b0914ea7475615c7c8965c1ac8fe4069270f25c",
      "tree": "fb85ed3b08d9c61090bbc9dee9d06f54b945e52a",
      "parents": [
        "852caccc89d3883522e87a91bfa89fd9c9cfe15a"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:25 2005 -0700"
      },
      "message": "[PATCH] jprobes: allow a jprobe to coexist with muliple kprobes\n\nPresently either multiple kprobes or only one jprobe could be inserted.\nThis patch removes the above limitation and allows one jprobe and multiple\nkprobes to coexist at the same address.  However multiple jprobes cannot\ncoexist with multiple kprobes.  Currently I am working on the prototype to\nallow multiple jprobes coexist with multiple kprobes.\n\nSigned-off-by: Ananth N Mavinakayanhalli \u003camavin@redhat.com\u003e\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "852caccc89d3883522e87a91bfa89fd9c9cfe15a",
      "tree": "dbbb98df18b04f7624f72d4a80731d7309038b79",
      "parents": [
        "e539c2331414e73a5a1b79fb57369d79447c1cf8"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:25 2005 -0700"
      },
      "message": "[PATCH] Kprobes/ia64: temporary disarming of reentrant probe\n\nThis patch includes IA64 architecture specific changes(ported form i386) to\nsupport temporary disarming on reentrancy of probes.\n\nIn case of reentrancy we single step without calling user handler.\n\nSigned-of-by: Anil S Keshavamurth \u003canil.s.keshavamurthy@intel.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e539c2331414e73a5a1b79fb57369d79447c1cf8",
      "tree": "1946fc1c1034c08d49b250fdba3db131f8b61643",
      "parents": [
        "42cc20600a3450efcf1f724fa3891ffbff4fcb2b"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:25 2005 -0700"
      },
      "message": "[PATCH] kprobes: Temporary disarming of reentrant probe for sparc64\n\nThis patch includes sparc64 architecture specific changes to support temporary\ndisarming on reentrancy of probes.\n\nSigned-of-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "42cc20600a3450efcf1f724fa3891ffbff4fcb2b",
      "tree": "4e2de36d8b49fd0aaad9c7bb07ad05e15130db02",
      "parents": [
        "aa3d7e3d782bbcf567b1da6101d8fbff7cf7e7a6"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:25 2005 -0700"
      },
      "message": "[PATCH] kprobes: Temporary disarming of reentrant probe for ppc64\n\nThis patch includes ppc64 architecture specific changes to support temporary\ndisarming on reentrancy 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": "aa3d7e3d782bbcf567b1da6101d8fbff7cf7e7a6",
      "tree": "c8eea0cc57d8374ab9c36ad7930836d89f282dca",
      "parents": [
        "417c8da6511b54843e6b557d94d8112d80e32156"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:37 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 for x86_64\n\nThis patch includes x86_64 architecture specific changes to support temporary\ndisarming on reentrancy 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": "417c8da6511b54843e6b557d94d8112d80e32156",
      "tree": "427bf0c90612b9d2dfd1a3f8e9b855a4251f9e9d",
      "parents": [
        "ea32c65cc2d2294c04e9f81d0578a6f51febfdbf"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:37 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 for i386\n\nThis patch includes i386 architecture specific changes to support temporary\ndisarming on reentrancy 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": "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": "89cb14c0dd0e4a7d0315d19f449389c4d49237ee",
      "tree": "795e52fd30c5236c365be7a3eaedb316e5c8cad5",
      "parents": [
        "708de8f11c2901cc49fd7725baf4a0fbd7264e73"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:24 2005 -0700"
      },
      "message": "[PATCH] Kprobes/IA64: check jprobe break before handling\n\nOnce the jprobe instrumented function returns, it executes a jprobe_break\nwhich is a break instruction with __IA64_JPROBE_BREAK value.  The current\npatch checks for this break value, before assuming that jprobe instrumented\nfunction just completed.\n\nThe previous code was not checking for this value and that was a bug.\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": "708de8f11c2901cc49fd7725baf4a0fbd7264e73",
      "tree": "a78c45c153c6414908104547292c177bcf309908",
      "parents": [
        "1674eafcbd3e3c68556cf19fbf4a2c30f7add729"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:24 2005 -0700"
      },
      "message": "[PATCH] Kprobes IA64: safe register kprobe\n\nThe current kprobes does not yet handle register kprobes on some of the\nfollowing kind of instruction which needs to be emulated in a special way.\n\n1) mov r1\u003dip\n2) chk -- Speculation check instruction\n\nThis patch attempts to fail register_kprobes() when user tries to insert\nkprobes on the above kind of instruction.\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": "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": "a5403183d84d419651672f1aee5ff2273d185efa",
      "tree": "c9bcdf302b6dfc2e7230e486791ec48785d9d78f",
      "parents": [
        "13608d6433eb34840224ef632cc444f3eb59bc13"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Thu Jun 23 00:09:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:23 2005 -0700"
      },
      "message": "[PATCH] Kprobes IA64: arch_prepare_kprobes() cleanup\n\narch_prepare_kprobes() was doing lots of functionality\nin just one single function. This patch\nattempts to clean up arch_prepare_kprobes() by moving\nspecific sub task to the following (new)functions\n1)valid_kprobe_addr() --\u003e\u003e validate the given kprobe address\n2)get_kprobe_inst(slot..)-\u003e\u003e Retrives the instruction for a given slot from the bundle\n3)prepare_break_inst() --\u003e\u003e Prepares break instruction within the bundle\n\t3a)update_kprobe_inst_flag()--\u003e\u003eUpdates the internal flags, required\n\t\t\tfor proper emulation of the instruction at later\n\t\t\tpoint in time.\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": "13608d6433eb34840224ef632cc444f3eb59bc13",
      "tree": "249c668170713eac16abe94877ff71628e04b360",
      "parents": [
        "8bc76772ad653bcaad1b0af72aafb6072ef0fa87"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Thu Jun 23 00:09:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:23 2005 -0700"
      },
      "message": "[PATCH] Kprobes ia64 qp fix\n\nFix a bug where a kprobe still fires when the instruction is predicated\noff.  So given the p6\u003d0, and we have an instruction like:\n\n(p6) move loc1\u003d0\n\nwe should not be triggering the kprobe.  This is handled by carrying over\nthe qp section of the original instruction into the break instruction.\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": "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": "2fa389c5eb8c97d621653184d2adf5fdbd4a3167",
      "tree": "a958e6ab570003e81b91df986492ca60fd247006",
      "parents": [
        "84de856ed30c568c2bb7b9ac0679772bd2737d9b"
      ],
      "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: sanitize dentry handling in vfs_quota_on_mount\n\nUse lookup_one_len instead of opencoding a simplified lookup using\nlookup_hash with a fake hash.\n\nAlso there\u0027s no need anymore for the d_invalidate as we have a completely\nvalid dentry now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-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": "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": "df164db5fd16888ddbe2a63a47b2f6dda9a428b5",
      "tree": "cc9aaf42f93761083e58e1d9d8d22261e0ff3686",
      "parents": [
        "5f45f1a78fbac3cc859ec10c5366e97d20d40fa2"
      ],
      "author": {
        "name": "Alexander Nyberg",
        "email": "alexn@dsv.su.se",
        "time": "Thu Jun 23 00:09:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:20 2005 -0700"
      },
      "message": "[PATCH] avoid resursive oopses\n\nPrevent recursive faults in do_exit() by leaving the task alone and wait\nfor reboot.  This may allow a more graceful shutdown and possibly save the\noriginal oops.\n\nSigned-off-by: Alexander Nyberg \u003calexn@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5f45f1a78fbac3cc859ec10c5366e97d20d40fa2",
      "tree": "bafacf11adbfb4eebf2d2d80d92e1fe2d9c02b18",
      "parents": [
        "ac20427ef6aa63da663bdc88b71d16f7394f5e23"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:09:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:20 2005 -0700"
      },
      "message": "[PATCH] remove duplicate get_dentry functions in various places\n\nVarious filesystem drivers have grown a get_dentry() function that\u0027s a\nduplicate of lookup_one_len, except that it doesn\u0027t take a maximum length\nargument and doesn\u0027t check for \\0 or / in the passed in filename.\n\nSwitch all these places to use lookup_one_len.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\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": "3bc1ee3e8f1c05c0f64a479c6d56eb34a6190599",
      "tree": "d69ea17b71b309151914ef722d2159e0c780312c",
      "parents": [
        "be5b4fbd017d12e0d09ea0528a5839ce2ed2c8c8"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 23 00:09:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] remove redundant vm_flags clearing from madvise.c\n\nThis patch removes redundant VM_ClearReadHint from mm/madvice.c which was\nleft there by Prasanna\u0027s patch.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "be5b4fbd017d12e0d09ea0528a5839ce2ed2c8c8",
      "tree": "212a43003d1c4265718f53502547f36acbec143d",
      "parents": [
        "dcd497f99a1ef29a7c5e76142965be77e9dacabd"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 00:09:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] preempt_count is int - remove cast and don\u0027t assign to unsigned type\n\nIn kernel/sched.c the return value from preempt_count() is cast to an int.\nThat made sense when preempt_count was defined as different types on is not\nneeded and should go away.  The patch removes the cast.\n\nIn kernel/timer.c the return value from preempt_count() is assigned to a\nvariable of type u32 and then that unsigned value is later compared to\npreempt_count().  Since preempt_count() returns an int, an int is what\nshould be used to store its return value.  Storing the result in an\nunsigned 32bit integer made a tiny bit of sense back when preempt_count was\ndifferent types on different archs, but no more - let\u0027s not play signed vs\nunsigned comparison games when we don\u0027t have to.  The patch modifies the\ncode to use an int to hold the value.  While I was around that bit of code\nI also made two changes to a nearby (related) printk() - I modified it to\nspecify the loglevel explicitly and also broke the line into a few pieces\nto avoid it being longer than 80 chars and clarified the text a bit.\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": "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": "ab4af03a4054bd78bcabfb2214c9597201beae35",
      "tree": "43d2b273cb84349bfdde6667f8d5fea1d2d87031",
      "parents": [
        "dfe52244e004f5103478966cd88351feb5c50d79"
      ],
      "author": {
        "name": "Greg Edwards",
        "email": "edwardsg@sgi.com",
        "time": "Thu Jun 23 00:09:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] CON_CONSDEV bit not set correctly on last console\n\nAccording to include/linux/console.h, CON_CONSDEV flag should be set on\nthe last console specified on the boot command line:\n\n     86 #define CON_PRINTBUFFER (1)\n     87 #define CON_CONSDEV     (2) /* Last on the command line */\n     88 #define CON_ENABLED     (4)\n     89 #define CON_BOOT        (8)\n\nThis does not currently happen if there is more than one console specified\non the boot commandline.  Instead, it gets set on the first console on the\ncommand line.  This can cause problems for things like kdb that look for\nthe CON_CONSDEV flag to see if the console is valid.\n\nAdditionaly, it doesn\u0027t look like CON_CONSDEV is reassigned to the next\npreferred console at unregister time if the console being unregistered\ncurrently has that bit set.\n\nExample (from sn2 ia64):\n\nelilo vmlinuz root\u003d\u003cdev\u003e console\u003dttyS0 console\u003dttySG0\n\nin this case, the flags on ttySG console struct will be 0x4 (should be\n0x6).\n\nAttached patch against bk fixes both issues for the cases I looked at.  It\nuses selected_console (which gets incremented for each console specified on\nthe command line) as the indicator of which console to set CON_CONSDEV on.\nWhen adding the console to the list, if the previous one had CON_CONSDEV\nset, it masks it out.  Tested on ia64 and x86.\n\nThe problem with the current behavior is it breaks overriding the default from\nthe boot line.  In the ia64 case, there may be a global append line defining\nconsole\u003da in elilo.conf.  Then you want to boot your kernel, and want to\noverride the default by passing console\u003db on the boot line.  elilo constructs\nthe kernel cmdline by starting with the value of the global append line, then\ntacks on whatever else you specify, which puts console\u003db last.\n\nSigned-off-by: Greg Edwards \u003cedwardsg@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfe52244e004f5103478966cd88351feb5c50d79",
      "tree": "e8642138b3ff31a799c208c0b2a6562885d76092",
      "parents": [
        "543537bd922692bc978e2e356fcd8bfc9c2ee7d5"
      ],
      "author": {
        "name": "Robert Love",
        "email": "rml@novell.com",
        "time": "Thu Jun 23 00:09:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] kstrdup: convert a few existing implementations\n\nConvert a bunch of strdup() implementations and their callers to the new\nkstrdup().  A few remain, for example see sound/core, and there are tons of\nopen coded strdup()\u0027s around.  Sigh.  But this is a start.\n\nSigned-off-by: Robert Love \u003crml@novell.com\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": "f972be33ce6a08b5f096ba013c7459a3a82f5f39",
      "tree": "5d495cdfc82dce1b8017244563f2f5437c395433",
      "parents": [
        "fd450b7318b75343fd76b3d95416853e34e72c95"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:09:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:17 2005 -0700"
      },
      "message": "[PATCH] posix-timers: use try_to_del_timer_sync()\n\nsys_timer_settime/sys_timer_delete needs to delete k_itimer-\u003ereal.timer\nsynchronously while holding -\u003eit_lock, which is also locked in\nposix_timer_fn.\n\nThis patch removes timer_active/set_timer_inactive which plays with\ntimer_list\u0027s internals in favour of using try_to_del_timer_sync(), which\nwas introduced in the previous patch.\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": "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": "bdd646a44672115c986593956aa4ef105485a184",
      "tree": "705b347a9c84fe7dcc040b468cadf28bde332bcf",
      "parents": [
        "fde6ad22480cdc2eaa102b805a3ed3ee1d36a376"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Thu Jun 23 00:08:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] blk: unplug later\n\nget_request_wait needn\u0027t unplug the device immediately.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: 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": "fde6ad22480cdc2eaa102b805a3ed3ee1d36a376",
      "tree": "17489dacb9dcd2fd16d6bd0137098d85520e59b7",
      "parents": [
        "250dccc00805e755a6d80a73557034253da0831f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Thu Jun 23 00:08:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] blk: branch hints\n\nSprinkle around a few branch hints in the block layer.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: 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": "250dccc00805e755a6d80a73557034253da0831f",
      "tree": "da9f94abed8dac7479507601694d9276b2dbaf28",
      "parents": [
        "040c928c47b591d1cd9977cd6431cae213528b45"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Thu Jun 23 00:08:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] blk: no memory barrier\n\nThis memory barrier is not needed because the waitqueue will only get waiters\non it in the following situations:\n\nrq-\u003ecount has exceeded the threshold - however all manipulations of -\u003ecount\nare performed under the runqueue lock, and so we will correctly pick up any\nwaiter.\n\nMemory allocation for the request fails.  In this case, there is no additional\nhelp provided by the memory barrier.  We are guaranteed to eventually wake up\nwaiters because the request allocation mempool guarantees that if the mem\nallocation for a request fails, there must be some requests in flight.  They\nwill wake up waiters when they are retired.\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: 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": "040c928c47b591d1cd9977cd6431cae213528b45",
      "tree": "ee19f099782d02ba929f57a8dc0e5f0989e99932",
      "parents": [
        "f7d37d028dfba90b1b747f8ac685bf0959aeda8b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 23 00:08:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:15 2005 -0700"
      },
      "message": "[PATCH] blk: cleanup generic tag support error messages\n\nAdd KERN_ERR and __FUNCTION__ to generic tag error messages, and add a comment\nin blk_queue_end_tag() which explains the silent failure path.\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": "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": "2bf0fdad51c6710bf15d0bf4b9b30b8498fe4ddd",
      "tree": "e4dea0ce02413260ca4dfc3b7de0bb91570f331b",
      "parents": [
        "15d20bfd606c4b4454aeaa05fc86f77994e48c92"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 23 00:08:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:15 2005 -0700"
      },
      "message": "[PATCH] blk: use find_first_zero_bit() in blk_queue_start_tag()\n\nblk_queue_start_tag() hand-coded searching for the first zero bit in the tag\nmap.  Replace it with find_first_zero_bit().  With this patch,\nblk_queue_star_tag() doesn\u0027t need to fill remains of tag map with 1, thus\nallowing it to work properly with the next remove_real_max_depth patch.\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": "15d20bfd606c4b4454aeaa05fc86f77994e48c92",
      "tree": "b15262d9237fd221a31ba2823837b6a7dd843cf6",
      "parents": [
        "76381fee7e8feb4c22be636aa5d4765dbe4fbf9e"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen@coderock.org",
        "time": "Thu Jun 23 00:08:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:15 2005 -0700"
      },
      "message": "[PATCH] ptrace_h8300: condition bugfix\n\nAssignment doesn\u0027t make much sense here as condition would always be true.\n\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76381fee7e8feb4c22be636aa5d4765dbe4fbf9e",
      "tree": "e12d15d64acb25dc35b4ab9d022314243181bc10",
      "parents": [
        "e9129e56e9ec50c0689eb4cf7a3ca132f1e776db"
      ],
      "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: use more usermode macro\n\nMake use of the user_mode macro where it\u0027s possible.  This is useful for Xen\nbecause it will need only to redefine only the 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": "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": "717b594a415bfaf2dbd5e8266636488f2564c689",
      "tree": "3d5e1f0a5321c172d35473509a06cf833c916d3a",
      "parents": [
        "fa1e1bdf78d405f9905b8290ee9211e7a7bbc99b"
      ],
      "author": {
        "name": "Vincent Hanquez",
        "email": "vincent.hanquez@cl.cam.ac.uk",
        "time": "Thu Jun 23 00:08:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:14 2005 -0700"
      },
      "message": "[PATCH] xen: x86: Use more usermode macro\n\nUse the user_mode macro where it\u0027s possible.\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": "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": "1cc6f12e03ebc064b74161c684f987284ce9d0cc",
      "tree": "fd22e53fa49ea211914ee12fb45df6c4a2d01ee3",
      "parents": [
        "f5012310e35bd62fd39fce338ee44422c975ff3c"
      ],
      "author": {
        "name": "Vincent Hanquez",
        "email": "vincent.hanquez@cl.cam.ac.uk",
        "time": "Thu Jun 23 00:08:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:13 2005 -0700"
      },
      "message": "[PATCH] xen: x86: Use new macro for debugreg\n\nMake use of the 2 new macro set_debugreg and get_debugreg.\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": "701067c4661ebcdc155cc8f696acb24c016c058b",
      "tree": "c3566fe8dd278707273480c2ecc653bd6d291705",
      "parents": [
        "32ecd42b6f94d3ee320a22827b46bd19ccf924e5"
      ],
      "author": {
        "name": "Natalie Protasevich",
        "email": "Natalie.Protasevich@unisys.com",
        "time": "Thu Jun 23 00:08:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:13 2005 -0700"
      },
      "message": "[PATCH] x86_64: avoid wasting IRQs\n\nI suggest to change the way IRQs are handed out to PCI devices.\n\nCurrently, each I/O APIC pin gets associated with an IRQ, no matter if the\npin is used or not.  It is expected that each pin can potentually be\nengaged by a device inserted into the corresponding PCI slot.  However,\nthis imposes severe limitation on systems that have designs that employ\nmany I/O APICs, only utilizing couple lines of each, such as P64H2 chipset.\n\nIt is used in ES7000, and currently, there is no way to boot the system\nwith more that 9 I/O APICs.\n\nThe simple change below allows to boot a system with say 64 (or more) I/O\nAPICs, each providing 1 slot, which otherwise impossible because of the IRQ\ngaps created for unused lines on each I/O APIC.  It does not resolve the\nproblem with number of devices that exceeds number of possible IRQs, but\neases up a tension for IRQs on any large system with potentually large\nnumber of devices.\n\nI only implemented this for the ACPI boot, since if the system is this big\nand using newer chipsets it is probably (better be!) an ACPI based system\n:).  The change is completely \"mechanical\" and does not alter any internal\nstructures or interrupt model/implementation.  The patch works for both\ni386 and x86_64 archs.  It works with MSIs just fine, and should not\nintervene with implementations like shared vectors, when they get worked\nout and incorporated.\n\nTo illustrate, below is the interrupt distribution for 2-cell ES7000 with\n20 I/O APICs, and an Ethernet card in the last slot, which should be eth1\nand which was not configured because its IRQ exceeded allowable number (it\nactially turned out huge - 480!):\n\nzorro-tb2:~ # cat /proc/interrupts\n           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7\n  0:      65716      30012      30007      30002      30009      30010      30010      30010    IO-APIC-edge  timer\n  4:        373          0        725        280          0          0          0          0    IO-APIC-edge  serial\n  8:          0          0          0          0          0          0          0          0    IO-APIC-edge  rtc\n  9:          0          0          0          0          0          0          0          0   IO-APIC-level  acpi\n 14:         39          3          0          0          0          0          0          0    IO-APIC-edge  ide0\n 16:        108         13          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb1\n 18:          0          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb3\n 19:         15          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb2\n 23:          3          0          0          0          0          0          0          0   IO-APIC-level  ehci_hcd:usb4\n 96:       4240        397         18          0          0          0          0          0   IO-APIC-level  aic7xxx\n 97:         15          0          0          0          0          0          0          0   IO-APIC-level  aic7xxx\n192:        847          0          0          0          0          0          0          0   IO-APIC-level  eth0\nNMI:          0          0          0          0          0          0          0          0\nLOC:     273423     274528     272829     274228     274092     273761     273827     273694\nERR:          7\nMIS:          0\n\nEven though the system doesn\u0027t have that many devices, some don\u0027t get\nenabled only because of IRQ numbering model.\n\nThis is the IRQ picture after the patch was applied:\n\nzorro-tb2:~ # cat /proc/interrupts\n           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7\n  0:      44169      10004      10004      10001      10004      10003      10004       6135    IO-APIC-edge  timer\n  4:        345          0          0          0          0        244          0          0    IO-APIC-edge  serial\n  8:          0          0          0          0          0          0          0          0    IO-APIC-edge  rtc\n  9:          0          0          0          0          0          0          0          0   IO-APIC-level  acpi\n 14:         39          0          3          0          0          0          0          0    IO-APIC-edge  ide0\n 17:       4425          0          9          0          0          0          0          0   IO-APIC-level  aic7xxx\n 18:         15          0          0          0          0          0          0          0   IO-APIC-level  aic7xxx, uhci_hcd:usb3\n 21:        231          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb1\n 22:         26          0          0          0          0          0          0          0   IO-APIC-level  uhci_hcd:usb2\n 23:          3          0          0          0          0          0          0          0   IO-APIC-level  ehci_hcd:usb4\n 24:        348          0          0          0          0          0          0          0   IO-APIC-level  eth0\n 25:          6        192          0          0          0          0          0          0   IO-APIC-level  eth1\nNMI:          0          0          0          0          0          0          0          0\nLOC:     107981     107636     108899     108698     108489     108326     108331     108254\nERR:          7\nMIS:          0\n\nNot only we see the card in the last I/O APIC, but we are not even close to\nusing up available IRQs, since we didn\u0027t waste any.\n\nSigned-off-by: Natalie Protasevich \u003cNatalie.Protasevich@unisys.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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": "0928d6ef7f204979749fb241a90a04a35dae133a",
      "tree": "f91a3a4725a2e59ed3cfce4cabd31f61798b9342",
      "parents": [
        "a3a00751ad8970c13d0563c2e92ee68c655a8e6b"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jun 23 00:08:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:13 2005 -0700"
      },
      "message": "[PATCH] x86_64: never block forced SIGSEGV\n\nThis is the x86_64 version of the signal fix I just posted for i386.\n\nThis problem was first noticed on PPC and has already been fixed there.\nBut the exact same issue applies to other platforms in the same way.  The\nsignal blocking for sa_mask and the handled signal takes place after the\nhandler setup.  When the stack is bogus, the handler setup forces a\nSIGSEGV.  But then this will be blocked, and returning to user mode will\nfault again and iterate.  This patch fixes the problem by checking whether\nsignal handler setup failed, and not doing the signal-blocking if so.  This\ncopies what was done in the ppc code.  I think all architectures\u0027 signal\nhandler setup code follows this pattern and needs the change.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3a00751ad8970c13d0563c2e92ee68c655a8e6b",
      "tree": "a351e629e1e29e2fef7d82ef53548d575f4a1fc4",
      "parents": [
        "c0a88c987878e533fc21fbf684198021a3b2c279"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Jun 23 00:08:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:12 2005 -0700"
      },
      "message": "[PATCH] x86_64: fix hpet for systems that don\u0027t support legacy replacement\n\nCurrently the x86-64 HPET code assumes the entire HPET implementation from\nthe spec is present.  This breaks on boxes that do not implement the\noptional legacy timer replacement functionality portion of the spec.\n\nThis patch fixes this issue, allowing x86-64 systems that cannot use the\nHPET for the timer interrupt and RTC to still use the HPET as a time\nsource.  I\u0027ve tested this patch on a system systems without HPET, with HPET\nbut without legacy timer replacement, as well as HPET with legacy timer\nreplacement.\n\nThis version adds a minor check to cap the HPET counter value in\ngettimeoffset_hpet to avoid possible time inconsistencies.  Please ignore\nthe A2 version I sent to you earlier.\n\nAcked-by: 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": "c0a88c987878e533fc21fbf684198021a3b2c279",
      "tree": "93ba058223c8b6d97f4ed557a07308735ad2cd8a",
      "parents": [
        "c92c6ffdb16990872acf4ce8b24f82f98fcbbb68"
      ],
      "author": {
        "name": "Alexander Nyberg",
        "email": "alexn@telia.com",
        "time": "Thu Jun 23 00:08:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:12 2005 -0700"
      },
      "message": "[PATCH] x86_64: i8259.c iso99 structure initialization\n\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": "c92c6ffdb16990872acf4ce8b24f82f98fcbbb68",
      "tree": "2d86650f91ef21d73b43b1ad88c6316eb3832fb2",
      "parents": [
        "a3a255e744dfa672e741dc24306491139d0de2d8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Jun 23 00:08:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:12 2005 -0700"
      },
      "message": "[PATCH] mtrr size-and-base debugging\n\nConsolidate the mtrr sanity checking, add a dump_stack().\n\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": "129f69465b411592247c408f93d7106939223be1",
      "tree": "f585dff5c44ffdd0ee4ce05dec56dbc8477eb909",
      "parents": [
        "a9ed8817966dd723754a990f1003264a21b5747e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:08:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:11 2005 -0700"
      },
      "message": "[PATCH] Remove i386_ksyms.c, almost.\n\n* EXPORT_SYMBOL\u0027s moved to other files\n* #include \u003clinux/config.h\u003e, \u003clinux/module.h\u003e where needed\n* #include\u0027s in i386_ksyms.c cleaned up\n* After copy-paste, redundant due to Makefiles rules preprocessor directives\n  removed:\n\n\t#ifdef CONFIG_FOO\n\tEXPORT_SYMBOL(foo);\n\t#endif\n\n\tobj-$(CONFIG_FOO) +\u003d foo.o\n\n* Tiny reformat to fit in 80 columns\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": "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": "80bb82afea9eeb94ae3bfed418d079930da5d3b3",
      "tree": "bc02d1f85c2c3c227b9cfbef51d708f988b71156",
      "parents": [
        "c434b7a6aedfe428ad17cd61b21b125a7b7a29ce"
      ],
      "author": {
        "name": "Aleksey Gorelov",
        "email": "Aleksey_Gorelov@Phoenix.com",
        "time": "Thu Jun 23 00:08:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:11 2005 -0700"
      },
      "message": "[PATCH] VIA 82C586B IRQ routing fix\n\nAccording to the VIA 82C586B datasheet (still available from\nhttp://gkernel.sourceforge.net/specs/via/586b.pdf.bz2) this chip need a\nspecial PIRQ mapping.\n\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Aleksey Gorelov \u003caleksey_gorelov@phoenix.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c434b7a6aedfe428ad17cd61b21b125a7b7a29ce",
      "tree": "1b1fb9d7279e715b765d8a4dd8a439166d68c516",
      "parents": [
        "b5d23e5b8c7ecd97d32f6ad7680d9909977580a7"
      ],
      "author": {
        "name": "Natalie Protasevich",
        "email": "Natalie.Protasevich@unisys.com",
        "time": "Thu Jun 23 00:08:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:10 2005 -0700"
      },
      "message": "[PATCH] x86: avoid wasting IRQs for PCI devices\n\nI have submitted the patch for x86_64, this is submission for i386.\n\nThe patch changes the way IRQs are handed out to PCI devices.  Currently,\neach I/O APIC pin gets associated with an IRQ, no matter if the pin is used\nor not.  This imposes severe limitation on systems that have designs that\nemploy many I/O APICs, only utilizing couple lines of each, such as P64H2\nchipset.  It is used in ES7000, and currently, there is no way to boot the\nsystem with more that 9 I/O APICs.\n\nThe simple change below allows to boot a system with say 64 (or more) I/O\nAPICs, each providing 1 slot, which otherwise impossible because of the IRQ\ngaps created for unused lines on each I/O APIC.  It does not resolve the\nproblem with number of devices that exceeds number of possible IRQs, but\neases up a tension for IRQs on any large system with potentually large\nnumber of devices.\n\nSigned-off-by: Natalie Protasevich \u003cNatalie.Protasevich@unisys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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": "799d19f6ec5ca2102c61122f5219a17f1c4e961a",
      "tree": "5e33a045b5fcc003dae052e8f62e1e4b47f908a2",
      "parents": [
        "7fbb4f6e6873593a2defb8f66512f55d08d88106"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Thu Jun 23 00:08:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:10 2005 -0700"
      },
      "message": "[PATCH] allow early printk to use more than 25 lines\n\nAllow early printk code to take advantage of the full size of the screen, not\njust the first 25 lines.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: 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": "7fbb4f6e6873593a2defb8f66512f55d08d88106",
      "tree": "7946f3ca697a5981d4599162572201213f3782f5",
      "parents": [
        "ca05fea6db5259c6d62e517c41d448a4249175f4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Thu Jun 23 00:08:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:09 2005 -0700"
      },
      "message": "[PATCH] adjust i386 watchdog tick calculation\n\nGet the i386 watchdog tick calculation into a state where it can also be used\non CPUs with frequencies beyond 4GHz, and it consolidates the calculation into\na single place (for potential furture adjustments).\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": "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": "7c1def1652c6c1a95eafca2991baace34afaed0f",
      "tree": "0175c6babb39233a5cbbdf3c8ca9027180f580ed",
      "parents": [
        "1946089a109251655c5438d92c539bd2930e71ea"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jun 23 00:08:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:09 2005 -0700"
      },
      "message": "[PATCH] i386: never block forced SIGSEGV\n\nThis problem was first noticed on PPC and has already been fixed there.\nBut the exact same issue applies to other platforms in the same way.  The\nsignal blocking for sa_mask and the handled signal takes place after the\nhandler setup.  When the stack is bogus, the handler setup forces a\nSIGSEGV.  But then this will be blocked, and returning to user mode will\nfault again and iterate.  This patch fixes the problem by checking whether\nsignal handler setup failed, and not doing the signal-blocking if so.  This\ncopies what was done in the ppc code.  I think all architectures\u0027 signal\nhandler setup code follows this pattern and needs the change.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\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": "0f8e2d62fa04441cd12c08ce521e84e5bd3f8a46",
      "tree": "74c607e8766d23b3573afced1f20272978a42133",
      "parents": [
        "d0e7feb03d5ac48069c2fd57bbba61522e0ca493"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "icampbell@arcom.com",
        "time": "Thu Jun 23 00:08:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:07 2005 -0700"
      },
      "message": "[PATCH] use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh\n\nThe attached patch causes the various arch specific install.sh scripts to\nlook for ${CROSS_COMPILE}installkernel rather than just installkernel (in\nboth /sbin/ and ~/bin/ where the script already did this).  This allows you\nto have e.g.  arm-linux-installkernel as a handy way to install on your\ncross target.  It also prevents the script picking up on the host\n/sbin/installkernel which causes the script to fall through and do the\ninstall itself (which is what I actually use myself, with $INSTALL_PATH\nset).\n\nI don\u0027t believe it causes back-compatibility problems since calling the\nhost installkernel was never likely to work or be what you wanted when\ncross compiling anyway.  If $CROSS_COMPILE isn\u0027t set then nothing changes.\n\nI only use ARM and i386 myself but I figured it couldn\u0027t hurt to do the\nwhole lot.  I\u0027ve cc\u0027d those who I hope are the arch maintainers for files\nthat I\u0027ve touched.\n\nSigned-off-by: Ian Campbell \u003cicampbell@arcom.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0e7feb03d5ac48069c2fd57bbba61522e0ca493",
      "tree": "58630bb380e675709d9f83d90f632f9658487a31",
      "parents": [
        "6f4e1e5061c44a93337338af4bf9bed10ee9f32e"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Jun 23 00:08:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:07 2005 -0700"
      },
      "message": "[PATCH] biarch compiler support for i386\n\nThis allows the i386 architecture to be built on a system with a biarch\ncompiler that defaults to x86-64, merely by specifying ARCH\u003di386.\n\nAs previously discussed, this uses the equivalent logic to the ppc port.\n\nSigned-Off-By: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6f4e1e5061c44a93337338af4bf9bed10ee9f32e",
      "tree": "61979ba584861bfb828680a8494fcd3a14a24dd8",
      "parents": [
        "bbfceef47fb9467424113a004070bf37a806a97c"
      ],
      "author": {
        "name": "Martin J. Bligh",
        "email": "mbligh@mbligh.org",
        "time": "Thu Jun 23 00:08:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:07 2005 -0700"
      },
      "message": "[PATCH] add page_state info to show_mem\n\nThis helps a lot when debugging out of memory stuff - useful especially to\nsee if all the memory is sucked into slab, etc.\n\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": "1035faf1b19efb83d5626985240f52cd149dd39b",
      "tree": "955a3d44fa1135c9ad0f25d5913915b927b6675c",
      "parents": [
        "073326634bec2f36e165583d21fb0a9fad47ac0a"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@snoqualmie.dp.intel.com",
        "time": "Thu Jun 23 00:08:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:06 2005 -0700"
      },
      "message": "[PATCH] add x86-64 Kconfig options for sparsemem\n\nAdd the requisite arch specific Kconfig options to enable the use of the\nsparsemem implementation for NUMA kernels on x86-64.\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": "073326634bec2f36e165583d21fb0a9fad47ac0a",
      "tree": "c72cfdd09647d5f709d26986155224ad6e27294c",
      "parents": [
        "145e664231648121026d470094c200851a446a73"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@snoqualmie.dp.intel.com",
        "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] remove direct ref to contig_page_data for x86-64\n\nThis patch pulls out all remaining direct references to contig_page_data\nfrom arch/x86-64, thus saving an ifdef in one case.\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": "74b30be2e183bd9a12d0350698996e3d1969f290",
      "tree": "4add891144d4f0122794ce4c7befa3db8cdb3b68",
      "parents": [
        "510f8fa7ba18320d408dd3093663e58f5664f2f0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:08:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:05 2005 -0700"
      },
      "message": "[PATCH] ppc64: add memory present\n\nProvide hooks for PPC64 to allow memory models to be informed of installed\nmemory areas.  This allows SPARSEMEM to instantiate mem_map for the populated\nareas.\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": "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"
    },
    {
      "commit": "d41dee369bff3b9dcb6328d4d822926c28cc2594",
      "tree": "a0405f3b7af3ebca21838a7d427bd75a067bf850",
      "parents": [
        "af705362ab6018071310c5fcd436a6b457517d5f"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jun 23 00:07:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:04 2005 -0700"
      },
      "message": "[PATCH] sparsemem memory model\n\nSparsemem abstracts the use of discontiguous mem_maps[].  This kind of\nmem_map[] is needed by discontiguous memory machines (like in the old\nCONFIG_DISCONTIGMEM case) as well as memory hotplug systems.  Sparsemem\nreplaces DISCONTIGMEM when enabled, and it is hoped that it can eventually\nbecome a complete replacement.\n\nA significant advantage over DISCONTIGMEM is that it\u0027s completely separated\nfrom CONFIG_NUMA.  When producing this patch, it became apparent in that NUMA\nand DISCONTIG are often confused.\n\nAnother advantage is that sparse doesn\u0027t require each NUMA node\u0027s ranges to be\ncontiguous.  It can handle overlapping ranges between nodes with no problems,\nwhere DISCONTIGMEM currently throws away that memory.\n\nSparsemem uses an array to provide different pfn_to_page() translations for\neach SECTION_SIZE area of physical memory.  This is what allows the mem_map[]\nto be chopped up.\n\nIn order to do quick pfn_to_page() operations, the section number of the page\nis encoded in page-\u003eflags.  Part of the sparsemem infrastructure enables\nsharing of these bits more dynamically (at compile-time) between the\npage_zone() and sparsemem operations.  However, on 32-bit architectures, the\nnumber of bits is quite limited, and may require growing the size of the\npage-\u003eflags type in certain conditions.  Several things might force this to\noccur: a decrease in the SECTION_SIZE (if you want to hotplug smaller areas of\nmemory), an increase in the physical address space, or an increase in the\nnumber of used page-\u003eflags.\n\nOne thing to note is that, once sparsemem is present, the NUMA node\ninformation no longer needs to be stored in the page-\u003eflags.  It might provide\nspeed increases on certain platforms and will be stored there if there is\nroom.  But, if out of room, an alternate (theoretically slower) mechanism is\nused.\n\nThis patch introduces CONFIG_FLATMEM.  It is used in almost all cases where\nthere used to be an #ifndef DISCONTIG, because SPARSEMEM and DISCONTIGMEM\noften have to compile out the same areas of code.\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: Yasunori Goto \u003cy-goto@jp.fujitsu.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"
    }
  ],
  "next": "af705362ab6018071310c5fcd436a6b457517d5f"
}
