)]}'
{
  "log": [
    {
      "commit": "65df877ab2e2328a4704af218efaed0a45176c86",
      "tree": "ec7cf77ddc08fca3c007dc0ac209d1e7ba2953d3",
      "parents": [
        "a8acfbac75c2ffdd66fb5dfcdb7ab5aaced94fd8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:49:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:49:52 2005 -0700"
      },
      "message": "[LIB]: textsearch.o needs to be obj-y not lib-y.\n\nIt exports symbols.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8acfbac75c2ffdd66fb5dfcdb7ab5aaced94fd8",
      "tree": "16d93b0ca58c048e7e1b524f15e97db3e5beb35c",
      "parents": [
        "9b200b02a6c9cddca5132d64aa41156bbcddcbaa"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:45:02 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:45:02 2005 -0700"
      },
      "message": "[TCP]: Need to declare \u0027tcp_reno\u0027 in net/tcp.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b200b02a6c9cddca5132d64aa41156bbcddcbaa",
      "tree": "4e326c4fbe9b502c621149cd384b8a9a98642b8e",
      "parents": [
        "d675c989ed2d4ba23dff615330b04371aea83534"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 21:06:56 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 21:06:56 2005 -0700"
      },
      "message": "[SLIP]: Simplify sl_free_bufs()\n\nWe can avoid assignments to the local variable \u0027tmp\u0027 and \nactually get rid of tmp alltogether in sl_free_bufs(). This patch does \nthat.  This is safe since both kfree() and slhc_free() handles NULL \npointers gracefully.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d675c989ed2d4ba23dff615330b04371aea83534",
      "tree": "856df6f7dc1fba81b134e2363e42dbf6022fa671",
      "parents": [
        "3fc7e8a6d842f72d16d2623b1022814a635ab961"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 21:00:58 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 21:00:58 2005 -0700"
      },
      "message": "[PKT_SCHED]: Packet classification based on textsearch (ematch)\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3fc7e8a6d842f72d16d2623b1022814a635ab961",
      "tree": "93f60c9af99b790c1d79bef1d3414fea3d7b9c5c",
      "parents": [
        "677e90eda3bd8cfde0b748daaa46476162a03950"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 21:00:17 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 21:00:17 2005 -0700"
      },
      "message": "[NET]: skb_find_text() - Find a text pattern in skb data\n\nFinds a pattern in the skb data according to the specified\ntextsearch configuration. Use textsearch_next() to retrieve\nsubsequent occurrences of the pattern. Returns the offset\nto the first occurrence or UINT_MAX if no match was found.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "677e90eda3bd8cfde0b748daaa46476162a03950",
      "tree": "4b40614cf9cd125883d0430467be9172997ca184",
      "parents": [
        "6408f79cce401e1bfecf923e7156f84f96e021e3"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:59:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:59:51 2005 -0700"
      },
      "message": "[NET]: Zerocopy sequential reading of skb data\n\nImplements sequential reading for both linear and non-linear\nskb data at zerocopy cost. The data is returned in chunks of\narbitary length, therefore random access is not possible.\n\nUsage:\n\tfrom\t :\u003d 0\n\tto\t :\u003d 128\n\tstate\t :\u003d undef\n\tdata\t :\u003d undef\n\tlen\t :\u003d undef\n\tconsumed :\u003d 0\n\n\tskb_prepare_seq_read(skb, from, to, \u0026state)\n\twhile (len \u003d skb_seq_read(consumed, \u0026data, \u0026state)) !\u003d 0 do\n\t\t/* do something with \u0027data\u0027 of length \u0027len\u0027 */\n\t\tif abort then\n\t\t\t/* abort read if we don\u0027t wait for\n\t\t\t * skb_seq_read() to return 0 */\n\t\t\tskb_abort_seq_read(\u0026state)\n\t\t\treturn\n\t\tendif\n\t\t/* not necessary to consume all of \u0027len\u0027 */\n\t\tconsumed +\u003d len\n\tdone\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6408f79cce401e1bfecf923e7156f84f96e021e3",
      "tree": "203624ffacf60d364293adc47d2f59f6ba81dd35",
      "parents": [
        "df3fb93ad9ec0b20c785c0ad82d42d159a1af272"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:59:16 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:59:16 2005 -0700"
      },
      "message": "[LIB]: Naive finite state machine based textsearch\n\nA finite state machine consists of n states (struct ts_fsm_token)\nrepresenting the pattern as a finite automation. The data is read\nsequentially on a octet basis. Every state token specifies the number\nof recurrences and the type of value accepted which can be either a\nspecific character or ctype based set of characters. The available\ntype of recurrences include 1, (0|1), [0 n], and [1 n].\n\nThe algorithm differs between strict/non-strict mode specyfing\nwhether the pattern has to start at the first octect. Strict mode\nis enabled by default and can be disabled by inserting\nTS_FSM_HEAD_IGNORE as the first token in the chain.\n\nThe runtime performance of the algorithm should be around O(n),\nhowever while in strict mode the average runtime can be better.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df3fb93ad9ec0b20c785c0ad82d42d159a1af272",
      "tree": "e29ba25f55cb77e24310999a949b433e98d7656e",
      "parents": [
        "2de4ff7bd658c97fb357efa3095a509674dacb5a"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:58:37 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:58:37 2005 -0700"
      },
      "message": "[LIB]: Knuth-Morris-Pratt textsearch algorithm\n\nImplements a linear-time string-matching algorithm due to Knuth,\nMorris, and Pratt [1]. Their algorithm avoids the explicit\ncomputation of the transition function DELTA altogether. Its\nmatching time is O(n), for n being length(text), using just an\nauxiliary function PI[1..m], for m being length(pattern),\nprecomputed from the pattern in time O(m). The array PI allows\nthe transition function DELTA to be computed efficiently\n\"on the fly\" as needed. Roughly speaking, for any state\n\"q\" \u003d 0,1,...,m and any character \"a\" in SIGMA, the value\nPI[\"q\"] contains the information that is independent of \"a\" and\nis needed to compute DELTA(\"q\", \"a\") [2]. Since the array PI\nhas only m entries, whereas DELTA has O(m|SIGMA|) entries, we\nsave a factor of |SIGMA| in the preprocessing time by computing\nPI rather than DELTA.\n \n[1] Cormen, Leiserson, Rivest, Stein\n    Introdcution to Algorithms, 2nd Edition, MIT Press\n[2] See finite automation theory\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2de4ff7bd658c97fb357efa3095a509674dacb5a",
      "tree": "49036dbf594317a6a17ff4e56f65158a6aeacbda",
      "parents": [
        "5f8ef48d240963093451bcf83df89f1a1364f51d"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:49:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:49:30 2005 -0700"
      },
      "message": "[LIB]: Textsearch infrastructure.\n\nThe textsearch infrastructure provides text searching\nfacitilies for both linear and non-linear data.\nIndividual search algorithms are implemented in modules\nand chosen by the user.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f8ef48d240963093451bcf83df89f1a1364f51d",
      "tree": "cecb30c2f59778f7f509a84b3aa7ea097c3f2b27",
      "parents": [
        "51b0bdedb8e784d0d969a6b77151911130812400"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:37:36 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:37:36 2005 -0700"
      },
      "message": "[TCP]: Allow choosing TCP congestion control via sockopt.\n\nAllow using setsockopt to set TCP congestion control to use on a per\nsocket basis.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "51b0bdedb8e784d0d969a6b77151911130812400",
      "tree": "2acfa2b696773e96c08641d73aadf6b83d93b10f",
      "parents": [
        "31aa02c53c84658f6694f319f09e232ede27be5a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:14:40 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:14:40 2005 -0700"
      },
      "message": "[NET]: Separate two usages of netdev_max_backlog.\n\nSeparate out the two uses of netdev_max_backlog. One controls the\nupper bound on packets processed per softirq, the new name for this is\nnetdev_budget; the other controls the limit on packets queued via\nnetif_rx.\n\nIncrease the max_backlog default to account for faster processors.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31aa02c53c84658f6694f319f09e232ede27be5a",
      "tree": "3af5cce958dcce744548b312a043aa4a0b769a50",
      "parents": [
        "34008d8c631d067caffa136313260525f3ae48a2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:12:48 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:12:48 2005 -0700"
      },
      "message": "[NET]: Eliminate netif_rx massive packet drops.\n\nEliminate the throttling behaviour when the netif receive queue fills\nbecause it behaves badly when using high speed networks under load.\nThe throttling cause multiple packet drops that cause TCP to go into\nslow start mode. The same effective patch has been part of BIC TCP and\nH-TCP as well as part of Web100.\n\nThe existing code drops 100\u0027s of packets when the queue fills;\nthis changes it to individual packet drop-tail. \n\nSigned-off-by: Stephen Hemmminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34008d8c631d067caffa136313260525f3ae48a2",
      "tree": "171436c170fb7df649f8bf7cb95391f6d844bd03",
      "parents": [
        "c1ebcdb8c422cd73f54bcd2b9953e443a47667e5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:10:00 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:10:00 2005 -0700"
      },
      "message": "[NET]: Remove obsolete netif_rx congestion sensing mechanism.\n\nRemove the congestion sensing mechanism from netif_rx, and always\nreturn either full or empty.  Almost no driver checks the return value\nfrom netif_rx, and those that do only use it for debug messages.\n\nThe original design of netif_rx was to do flow control based on the\nreceive queue, but NAPI has supplanted this and no driver uses the\nfeedback.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1ebcdb8c422cd73f54bcd2b9953e443a47667e5",
      "tree": "312664836ac20509cc15609b8b0c7d583e9fe32d",
      "parents": [
        "16822e62053e73fa7def9decc38a7e287d27d980"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 20:08:59 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:08:59 2005 -0700"
      },
      "message": "[NET]: Remove obsolete fastroute stats.\n\nRemove last vestiages of fastroute code that is no longer used.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16822e62053e73fa7def9decc38a7e287d27d980",
      "tree": "fc736377c5c7e23ee78569392ed31a6030289e44",
      "parents": [
        "a39451c17f53bbae053555670c7b678d46bcebba",
        "e608a8072b10258aa18c2e33324def225199ba1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:27:24 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n"
    },
    {
      "commit": "a39451c17f53bbae053555670c7b678d46bcebba",
      "tree": "8bb6106ec7812a421c3d3eb9c8c273580cc703fc",
      "parents": [
        "adb7ee3746b579a7fa7af7c4ec2c8164bc910ed4",
        "0e57976b6376f7fda6bef8b7dee2a3c8819ec9e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:26:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:26:31 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "adb7ee3746b579a7fa7af7c4ec2c8164bc910ed4",
      "tree": "d8a1f9223b3b7384af7f653a519032b69ef60e0c",
      "parents": [
        "f46f6b20cb01508f5020142ff91021f8fb39550b",
        "691027b91be99413dc60fab0902b366434555015"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:19:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 17:19:56 2005 -0700"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n"
    },
    {
      "commit": "f46f6b20cb01508f5020142ff91021f8fb39550b",
      "tree": "30b8aa2014b03840a5f18d9196639cc80617c8c5",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50",
        "67f7654ea1f11fac1cf4a33bf9a5d9079d122e70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 16:58:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 16:58:55 2005 -0700"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-serial\n"
    },
    {
      "commit": "e608a8072b10258aa18c2e33324def225199ba1d",
      "tree": "4b29a7e50c52a009ea7d38eb3935b57945edc88d",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50"
      ],
      "author": {
        "name": "David Mosberger-Tang",
        "email": "davidm@hpl.hp.com",
        "time": "Wed Jun 22 22:24:00 2005 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jun 23 14:52:51 2005 -0700"
      },
      "message": "[IA64] Fix pfn_to_nid() so the kernel compiles again for !CONFIG_DISCONTIGMEM.\n\nSigned-off-by: David Mosberger-Tang \u003cdavidm@hpl.hp.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "67f7654ea1f11fac1cf4a33bf9a5d9079d122e70",
      "tree": "a8909f33251ff04635f73d3f937f4ffbdb78aef4",
      "parents": [
        "55d3b282b90620e02e825304a9433732a84c58a5"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Jun 23 22:26:43 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Jun 23 22:26:43 2005 +0100"
      },
      "message": "[PATCH] Serial: Bugs are not capabilities\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "691027b91be99413dc60fab0902b366434555015",
      "tree": "63f35050022b8e9ebec7fe2d8142afa24854bef6",
      "parents": [
        "d97a666f36cf051e1b1c60505be3d6e9b51f785f"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Thu Jun 23 21:56:48 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 23 21:56:48 2005 +0100"
      },
      "message": "[PATCH] ARM: 2730/1: S3C2410 default configuration update\n\nPatch from Ben Dooks\n\nAdd support for the DM9000 and bring default configuration\nup-to-date with the latest 2.6.12 kernel release\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "d97a666f36cf051e1b1c60505be3d6e9b51f785f",
      "tree": "2a4c9fda11b55f86354566f8a1253eb62cb7b86a",
      "parents": [
        "d9dc58049d3ed5c63c1a6ac82c217558b4ec623a"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Thu Jun 23 21:56:47 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 23 21:56:47 2005 +0100"
      },
      "message": "[PATCH] ARM: 2729/1: DM9000 platform support for S3C2410 machines (BAST, VR1000)\n\nPatch from Ben Dooks\n\nAdd platform_device information for DM9000 chip(s) on the\nSimtec BAST and the VR1000 board.\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "d9dc58049d3ed5c63c1a6ac82c217558b4ec623a",
      "tree": "fc42f673e83d98baa929e96d3de2f21af911d22f",
      "parents": [
        "c1241c4c3a1507d76c7b987130f2f02f53ecc09f"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Thu Jun 23 21:56:46 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 23 21:56:46 2005 +0100"
      },
      "message": "[PATCH] ARM: 2728/1: S3C2410 - fix constant warning on serial device name\n\nPatch from Ben Dooks\n\nRemove warning of casting `const char *` to a `char *` type.\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "c1241c4c3a1507d76c7b987130f2f02f53ecc09f",
      "tree": "8b34e8bd30c94c279a3cdabf8b13e05d1ef3dc77",
      "parents": [
        "bf1b8ab6f21e1adbab1abd1b4e71c35fe65dc5fe"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Thu Jun 23 21:56:46 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 23 21:56:46 2005 +0100"
      },
      "message": "[PATCH] ARM: 2722/1: remove reliance on udivdi3 for nwfpe\n\nPatch from Nicolas Pitre\n\nSigned-off-by: Nicolas Pitre \u003cnico@cam.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "bf1b8ab6f21e1adbab1abd1b4e71c35fe65dc5fe",
      "tree": "ac1795e8529a5165458dafc94b230053f1ae92a4",
      "parents": [
        "b7c84c6ada2be942eca6722edb2cfaad412cd5de"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Thu Jun 23 21:56:45 2005 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 23 21:56:45 2005 +0100"
      },
      "message": "[PATCH] ARM: 2721/1: remove reliance on udivdi3 for pxafb driver\n\nPatch from Nicolas Pitre\n\nSigned-off-by: Nicolas Pitre \u003cnico@cam.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "0e57976b6376f7fda6bef8b7dee2a3c8819ec9e9",
      "tree": "445642f773297a949674db45909542443e663263",
      "parents": [
        "a7868ea68d29eb2c037952aeb3b549cf05749a18"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Thu Jun 23 12:29:07 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:29:07 2005 -0700"
      },
      "message": "[TCP]: Add Scalable TCP congestion control module.\n\nThis patch implements Tom Kelly\u0027s Scalable TCP congestion control algorithm \nfor the modular framework.\n\nThe algorithm has some nice scaling properties, and has been used a fair bit \nin research, though is known to have significant fairness issues, so it\u0027s not \nreally suitable for general purpose use.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7868ea68d29eb2c037952aeb3b549cf05749a18",
      "tree": "fff3d29309d29977f3ff55e941702407011af44c",
      "parents": [
        "b87d8561d8667d221b728ccdcb18eb95b16a687b"
      ],
      "author": {
        "name": "Baruch Even",
        "email": "baruch@ev-en.org",
        "time": "Thu Jun 23 12:28:11 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:28:11 2005 -0700"
      },
      "message": "[TCP]: Add H-TCP congestion control module.\n\nH-TCP is a congestion control algorithm developed at the Hamilton Institute, by\nDouglas Leith and Robert Shorten. It is extending the standard Reno algorithm\nwith mode switching is thus a relatively simple modification.\n\nH-TCP is defined in a layered manner as it is still a research platform. The\nbasic form includes the modification of beta according to the ratio of maxRTT\nto min RTT and the alpha\u003d2*factor*(1-beta) relation, where factor is dependant\non the time since last congestion.\n\nThe other layers improve convergence by adding appropriate factors to alpha.\n\nThe following patch implements the H-TCP algorithm in it\u0027s basic form.\n\nSigned-Off-By: Baruch Even \u003cbaruch@ev-en.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b87d8561d8667d221b728ccdcb18eb95b16a687b",
      "tree": "715b8e8d8442e418364498a12712106530031b96",
      "parents": [
        "835b3f0c0d7e1f716c45ec576662eac7a68b8548"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:27:19 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:27:19 2005 -0700"
      },
      "message": "[TCP]: Add TCP Vegas congestion control module.\n\nTCP Vegas code modified for the new TCP infrastructure.  \nVegas now uses microsecond resolution timestamps for \nbetter estimation of performance over higher speed links.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "835b3f0c0d7e1f716c45ec576662eac7a68b8548",
      "tree": "317013e535451e6da065e37e691fad80e88b5004",
      "parents": [
        "a628d29b56d3f420bf3ff1d7543a9caf3ce3b994"
      ],
      "author": {
        "name": "Daniele Lacamera",
        "email": "(root at danielinux.net)net",
        "time": "Thu Jun 23 12:26:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:26:34 2005 -0700"
      },
      "message": "[TCP]: Add TCP Hybla congestion control module.\n\nTCP Hybla congestion avoidance.\n\n- \"In heterogeneous networks, TCP connections that incorporate a\nterrestrial or satellite radio link are greatly disadvantaged with\nrespect to entirely wired connections, because of their longer round\ntrip times (RTTs). To cope with this problem, a new TCP proposal, the\nTCP Hybla, is presented and discussed in the paper[1]. It stems from an\nanalytical evaluation of the congestion window dynamics in the TCP\nstandard versions (Tahoe, Reno, NewReno), which suggests the necessary\nmodifications to remove the performance dependence on RTT.[...]\"[1]\n\n[1]: Carlo Caini, Rosario Firrincieli, \"TCP Hybla: a TCP enhancement for\nheterogeneous networks\",\nInternational Journal of Satellite Communications and Networking\nVolume 22, Issue 5 , Pages 547 - 566. September 2004.\n\nSigned-off-by: Daniele Lacamera (root at danielinux.net)net\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a628d29b56d3f420bf3ff1d7543a9caf3ce3b994",
      "tree": "251238b1abe5f8c77922b0953b268c81abd04387",
      "parents": [
        "8727076289ec55298a05cabddf02b374d13c1624"
      ],
      "author": {
        "name": "John Heffner",
        "email": "jheffner@psc.edu",
        "time": "Thu Jun 23 12:24:58 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:24:58 2005 -0700"
      },
      "message": "[TCP]: Add High Speed TCP congestion control module.\n\nSally Floyd\u0027s high speed TCP congestion control.\nThis is useful for comparison and research.\n\nSigned-off-by: John Heffner \u003cjheffner@psc.edu\u003e\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8727076289ec55298a05cabddf02b374d13c1624",
      "tree": "37e6f68aac7be9cbbb4e90ca87a6e592c155eb35",
      "parents": [
        "83803034f4233d810c4adc52008921da060c55d1"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:24:09 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:24:09 2005 -0700"
      },
      "message": "[TCP]: Add TCP Westwood congestion control module.\n\nThis is the existing 2.6.12 Westwood code moved from tcp_input\nto the new congestion framework. A lot of the inline functions\nhave been eliminated to try and make it clearer.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "83803034f4233d810c4adc52008921da060c55d1",
      "tree": "585269362b229dce9e70ded1a7bddb4d4628913a",
      "parents": [
        "9d7bcfc6b8586ee5a52043f061e0411965e71b88"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:23:25 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:23:25 2005 -0700"
      },
      "message": "[TCP]: Add TCP BIC congestion control module.\n\nTCP BIC congestion control reworked to use the new congestion control \ninfrastructure. This version is more up to date than the BIC\ncode in 2.6.12; it incorporates enhancements from BICTCP 1.1, \nto handle low latency links.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d7bcfc6b8586ee5a52043f061e0411965e71b88",
      "tree": "ef6aa8e6fd9dc0c7187b9cd1497d13e180ae36a8",
      "parents": [
        "056ede6cface66b400cd3b8e60ed077cc5b85c18"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:22:36 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:22:36 2005 -0700"
      },
      "message": "[TCP]: Update sysctl and congestion control documentation.\n\nUpdate the documentation to remove the old sysctl values and\ninclude the new congestion control infrastructure. Includes\nchanges to tcp.txt by Ian McDonald.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "056ede6cface66b400cd3b8e60ed077cc5b85c18",
      "tree": "cb9ac506ae90158a804f8998d3e3907bc7d487ce",
      "parents": [
        "7c99c909fa69a183c1b80bd64fb9f0d11459aff3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:21:28 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:21:28 2005 -0700"
      },
      "message": "[TCP]: Report congestion control algorithm in tcp_diag.\n\nEnhancement to the tcp_diag interface used by the iproute2 ss command\nto report the tcp congestion control being used by a socket.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7c99c909fa69a183c1b80bd64fb9f0d11459aff3",
      "tree": "ab0d06458ca3b1f78945557022a3c2f5098ed614",
      "parents": [
        "317a76f9a44b437d6301718f4e5d08bd93f98da7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:20:36 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:20:36 2005 -0700"
      },
      "message": "[TCP]: Change tcp_diag to use the existing __RTA_PUT() macro.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "317a76f9a44b437d6301718f4e5d08bd93f98da7",
      "tree": "caeba9839dee264f59b035b81c3d13d6c61b638e",
      "parents": [
        "a8ad86f2dc46356f87be1327dabc18bdbda32f50"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 12:19:55 2005 -0700"
      },
      "message": "[TCP]: Add pluggable congestion control algorithm infrastructure.\n\nAllow TCP to have multiple pluggable congestion control algorithms.\nAlgorithms are defined by a set of operations and can be built in\nor modules.  The legacy \"new RENO\" algorithm is used as a starting\npoint and fallback.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8ad86f2dc46356f87be1327dabc18bdbda32f50",
      "tree": "a429e601d7e8f4d6f477c029f24772f55bbe45d7",
      "parents": [
        "4749f32da939d4e4160541b2cadc22492bb507ec"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Thu Jun 23 14:23:35 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 10:04:15 2005 -0700"
      },
      "message": "[PATCH] Add removal schedule of register_serial/unregister_serial to appropriate file\n"
    },
    {
      "commit": "4749f32da939d4e4160541b2cadc22492bb507ec",
      "tree": "a04b8d1d711f5f7c7dcc4dd43f6bfe17c54c306f",
      "parents": [
        "24665cd00dd06c741ef6268515ca9e6d3cda5c57"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jun 23 11:36:56 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 10:04:15 2005 -0700"
      },
      "message": "[PATCH] better USB_MON dependencies\n\nThis makes the USB_MON less confusing.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24665cd00dd06c741ef6268515ca9e6d3cda5c57",
      "tree": "d55e925db2b78bc6529965fa6b1df07a76b56610",
      "parents": [
        "fed2fc18a4567d613cd35115322257c6c6c710e9",
        "d7152fe14cad075d6dd4ee4194acd131aed0244e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:49:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:49:55 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6\n"
    },
    {
      "commit": "fed2fc18a4567d613cd35115322257c6c6c710e9",
      "tree": "937d8584966661b72cd7f71a6a6e4f0b97350760",
      "parents": [
        "64ccd715d3cf498318b14b646ce5f97e7ab15bb5"
      ],
      "author": {
        "name": "Telemaque Ndizihiwe",
        "email": "telendiz@eircom.net",
        "time": "Thu Jun 23 00:10:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:36 2005 -0700"
      },
      "message": "[PATCH] sys_open() cleanup\n\nClean up tortured logic in sys_open().\n\nSigned-off-by: Telemaque Ndizihiwe \u003ctelendiz@eircom.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64ccd715d3cf498318b14b646ce5f97e7ab15bb5",
      "tree": "b43bdaeec1b1175fe80ffe3648b1a98a2e21317b",
      "parents": [
        "bfb07599da289881d3bcbb601a110e997fc7444b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:10:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:36 2005 -0700"
      },
      "message": "[PATCH] Convert users to tty_unregister_ldisc()\n\ntty_register_ldisc(N_FOO, NULL) \u003d\u003e tty_unregister_ldisc(N_FOO)\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": "bfb07599da289881d3bcbb601a110e997fc7444b",
      "tree": "601c5e683c87e103de37bd68f014ec1f57d09bc7",
      "parents": [
        "790a19cd5711133f40daad7c55bf148de2b1d12c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jun 23 00:10:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] Introduce tty_unregister_ldisc()\n\nIt\u0027s a bit strange to see tty_register_ldisc call in modules\u0027 exit\nfunctions.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "790a19cd5711133f40daad7c55bf148de2b1d12c",
      "tree": "d8fcc88810ab6bb0fb6ff9a6d4f1bef53fa0395c",
      "parents": [
        "9235e68be8bf8974b65a9bf733c9d12a52307839"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Jun 23 00:10:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] pwc-uncompress warning fix\n\ndrivers/usb/media/pwc/pwc-uncompress.c: In function `pwc_decompress\u0027:\ndrivers/usb/media/pwc/pwc-uncompress.c:140: warning: unreachable code at beginning of switch statement\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9235e68be8bf8974b65a9bf733c9d12a52307839",
      "tree": "6d31812e14dcbfab9b6a6d7c11b3dade004fd8a5",
      "parents": [
        "451512f3aed64573e912e68c94f240fec0e44438"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "Eric.Piel@tremplin-utc.net",
        "time": "Thu Jun 23 00:10:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] IDE CD reports current speed\n\nThe current ide-cd driver reports the CDROM speed (as found in\n/proc/sys/dev/cdrom/info) as the current speed when loading the driver.\nChanging the speed of the cdrom drive (by \"eject -x\" for instance) doesn\u0027t\nupdate the speed reported by the kernel.  Updating the info could be\nvaluable for the user as it\u0027s the only way to know if the drive accepted\nthe request or discarded it.  It could even be used to list all the\navailable speeds of the drive.\n\nThe attached patch modifies the ide-cd driver so that after every speed\nchange request the new speed is updated.  Please note that the actual\nmodification is very little but I had to touch quite a few lines in order\nto avoid to pre-declare the sub-functions.\n\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\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": "451512f3aed64573e912e68c94f240fec0e44438",
      "tree": "742a06d8f3cf11407ff38069a4466d06a00aac49",
      "parents": [
        "c43dc2fd885b5658cfd7cedb7bcca20910c517a4"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 00:10:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:35 2005 -0700"
      },
      "message": "[PATCH] add note about verify_area removal to feature-removal-schedule.txt\n\nAdd note about the soon-to-come removal of verify_area() to\nDocumentation/feature-removal-schedule.txt.\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": "c43dc2fd885b5658cfd7cedb7bcca20910c517a4",
      "tree": "98b723badf4a71c9dbf04cfd0babcb02ac577982",
      "parents": [
        "63e6880918e75dcb92d60aff218a76e063a471ef"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Thu Jun 23 00:10:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] aio: make wait_queue -\u003etask -\u003eprivate\n\nIn the upcoming aio_down patch, it is useful to store a private data\npointer in the kiocb\u0027s wait_queue.  Since we provide our own wake up\nfunction and do not require the task_struct pointer, it makes sense to\nconvert the task pointer into a generic private pointer.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63e6880918e75dcb92d60aff218a76e063a471ef",
      "tree": "059a00899bdf96b255e2b60d6cf91968a9af485a",
      "parents": [
        "4452ea509e29df2f019bed2f7a1e0f5eea092b26"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Thu Jun 23 00:10:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] aio: fix do_sync_(read|write) to properly handle aio retries\n\nWhen do_sync_(read|write) encounters an aio method that makes use of the\nretry mechanism, they fail to correctly retry the operation.  This fixes\nthat by adding the appropriate sleep and retry mechanism.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4452ea509e29df2f019bed2f7a1e0f5eea092b26",
      "tree": "aecda6901c8126fdeabf823381f05f12f77d69a6",
      "parents": [
        "152becd26e0563aefdbc4fd1fe491928efe92d1f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Jun 23 00:10:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] dpt_i2o: fix waitqueue abuse\n\nThe driver plays with waitqueue internals and fails to compile after Ben\u0027s\n\"aio: make wait_queue -\u003etask -\u003eprivate\" patch.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "152becd26e0563aefdbc4fd1fe491928efe92d1f",
      "tree": "713a5ff0a1610708babf7e57fd3141cd4b9f183e",
      "parents": [
        "9a59f452abe11f569e13ec16c51e6d61c54b9838"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "aia21@cam.ac.uk",
        "time": "Thu Jun 23 00:10:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:34 2005 -0700"
      },
      "message": "[PATCH] Bug in error recovery in fs/buffer.c::__block_prepare_write()\n\nfs/buffer.c::__block_prepare_write() has broken error recovery.  It calls\nthe get_block() callback with \"create \u003d 1\" and if that succeeds it\nimmediately clears buffer_new on the just allocated buffer (which has\nbuffer_new set).\n\nThe bug is that if an error occurs and get_block() returns !\u003d 0, we break\nfrom this loop and go into recovery code.  This code has this comment:\n\n/* Error case: */\n/*\n * Zero out any newly allocated blocks to avoid exposing stale\n * data.  If BH_New is set, we know that the block was newly\n * allocated in the above loop.\n */\n\nSo the intent is obviously good in that it wants to clear just allocated\nand hence not zeroed buffers.  However the code recognises allocated\nbuffers by checking for buffer_new being set.\n\nUnfortunately __block_prepare_write() as discussed above already cleared\nbuffer_new on all allocated buffers thus no buffers will be cleared during\nerror recovery and old data will be leaked.\n\nThe simplest way I can see to fix this is to make the current recovery code\nwork by _not_ clearing buffer_new after calling get_block() in\n__block_prepare_write().\n\nWe cannot safely allow buffer_new buffers to \"leak out\" of\n__block_prepare_write(), thus we simply do a quick loop over the buffers\nclearing buffer_new on each of them if it is set just before returning\n\"success\" from __block_prepare_write().\n\nSigned-off-by: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a59f452abe11f569e13ec16c51e6d61c54b9838",
      "tree": "0fc242afbf51aac7214e3a9b7620e83d0d4016f2",
      "parents": [
        "f9fd27a253d5e0b23531d12ce7ad15b6535d4486"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:10:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] remove \u003clinux/xattr_acl.h\u003e\n\nThis file duplicates \u003clinux/posix_acl_xattr.h\u003e, using slightly different\nnames.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9fd27a253d5e0b23531d12ce7ad15b6535d4486",
      "tree": "1ff92c3b1ec8c707f71154313ce98e73423b6d54",
      "parents": [
        "30aaa80885df5d1518d498a450e73282cea8d8b1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 23 00:10:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] acl endianess annotations\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30aaa80885df5d1518d498a450e73282cea8d8b1",
      "tree": "7f001c8339bd9ed972bc570b78a800852cf4e4fa",
      "parents": [
        "45778ca819accab1a4a3378b3566cab0f189164f"
      ],
      "author": {
        "name": "William Lee Irwin III",
        "email": "wli@holomorphy.com",
        "time": "Thu Jun 23 00:10:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] use drivers/Kconfig for sparc32\n\nKconfig is spitting out massive numbers of errors and so on.  This patch\nswitches arch/sparc/Kconfig to use drivers/Kconfig so those stop.\n\nSigned-off-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "45778ca819accab1a4a3378b3566cab0f189164f",
      "tree": "9214491346c8d2d91eb1a11cb6c2e6a9387e4290",
      "parents": [
        "280dedb8d64ccfe1166ae03d3b254fc3b65de6a5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@graphe.net",
        "time": "Thu Jun 23 00:10:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:33 2005 -0700"
      },
      "message": "[PATCH] Remove f_error field from struct file\n\nThe following patch removes the f_error field and all checks of f_error.\n\nTrond said:\n\n  f_error was introduced for NFS, and made sense when we were guaranteed\n  always to have a file pointer around when write errors occurred.  Since\n  then, we have (for various reasons) had to introduce the nfs_open_context in\n  order to track the file read/write state, and it made sense to move our\n  f_error tracking there too.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "280dedb8d64ccfe1166ae03d3b254fc3b65de6a5",
      "tree": "2037bacf2eb32833a3b8b16701b906692ecf7b9b",
      "parents": [
        "bb93e3a52f8db7210258a1a2134cced0b78a46e1"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Thu Jun 23 00:10:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] PCDP: handle tables that don\u0027t supply baud rate\n\nThe HCDP specs (i.e., PCDP revision \u003c 3) allow zero as a default value for\nbaud rate and data bits.  So if firmware doesn\u0027t supply them, let\nearly_serial_console_init() probe for them rather than telling it the baud\nrate is zero.\n\nAlso, update the URL for the PCDP spec.\n\nSigned-off-by: 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": "bb93e3a52f8db7210258a1a2134cced0b78a46e1",
      "tree": "b6def4c3fe5624769de64e242bb2007fffea55c8",
      "parents": [
        "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jun 23 00:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] block: add unlocked_ioctl support for block devices\n\nThis patch allows block device drivers to convert their ioctl functions to\nunlocked_ioctl() like character devices and other subsystems.  All\nfunctions that were called with the BKL held before are still used that\nway, but I would not be surprised if it could be removed from the ioctl\nfunctions in drivers/block/ioctl.c themselves.\n\nAs a side note, I found that compat_blkdev_ioctl() acquires the BKL as\nwell, which looks like a bug.  I have checked that every user of\ndisk-\u003efops-\u003ecompat_ioctl() in the current git tree gets the BKL itself, so\nit could easily be removed from compat_blkdev_ioctl().\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d77e5a2c23da734f5a7925f64afa1c2ed92e0f9",
      "tree": "1696bd7881e36381b9cdaafe713c413202727228",
      "parents": [
        "fa912bcb06d5dc9525d8912a145db2bf4b7668c5"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Jun 23 00:10:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:32 2005 -0700"
      },
      "message": "[PATCH] compat: introduce compat_time_t\n\nThis patch is based on work by Carlos O\u0027Donell and Matthew Wilcox.  It\nintroduces/updates the compat_time_t type and uses it for compat siginfo\nstructures.  I have built this on ppc64 and x86_64.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa912bcb06d5dc9525d8912a145db2bf4b7668c5",
      "tree": "5c62d9a1ef416c83d3e149ca94c4e646eb29daf2",
      "parents": [
        "7007cab53176dc906e67b4efa62f20ff1432805a"
      ],
      "author": {
        "name": "Daniel Ritz",
        "email": "daniel.ritz@gmx.ch",
        "time": "Thu Jun 23 00:10:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:31 2005 -0700"
      },
      "message": "[PATCH] yenta TI: turn off interrupts during card power-on #2\n\n- make boot-up card recognition more reliable (ie.  redo interrogation\n  always if there is no valid \u0027card inserted\u0027 state) (and yes, i saw it\n  happening on an o2micro controller that both CB_CBARD and CB_16BITCARD\n  bits were set at the same time)\n\n- also redo interrogation before probing the ISA interrupts.  it\u0027s safer\n  to do the probing with the socket in a clean state.\n\n- make card insert detect more reliable.  yenta_get_status() now returns\n  SS_PENDING as long as the card is not completley inserted and one of the\n  voltage bits is set.  also !CB_CBARD doesn\u0027t mean CB_16BITCARD.  there is\n  CB_NOTACARD as well, so make an explicit check for CB_16BITCARD.\n\n- for TI bridges: disable IRQs during power-on.  in all-serial and tied\n  interrupt mode the interrupts are always disabled for single-slot\n  controllers.  for two-slot contollers the disabling is only done when the\n  other slot is empty.  to force disabling there is a new module parameter\n  now: pwr_irqs_off\u003dY (which is a regression for working setups.  that\u0027s\n  why it\u0027s an option, only use when required)\n\n- modparm to disable ISA interrupt probing (isa_probe, defaults to on)\n\n- remove unneeded code/cleanups (ie.  merge yenta_events() into\n  yenta_interrupts())\n\nSigned-off-by: Daniel Ritz \u003cdaniel.ritz@gmx.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7007cab53176dc906e67b4efa62f20ff1432805a",
      "tree": "ebcc9f01450e1fe0a541ed4932132e29586b7455",
      "parents": [
        "d9ad7ef1979d65a4200847ec91be5b9ad961eba8"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "xschmi00@stud.feec.vutbr.cz",
        "time": "Thu Jun 23 00:10:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:31 2005 -0700"
      },
      "message": "[PATCH] Add offset.h to dontdiff\n\ninclude/asm/offset.h is a generated file on x86_64 and mips.  Let\u0027s add it\nto Documentation/dontdiff.\n\nSigned-off-by: Michal Schmidt \u003cxschmi00@stud.feec.vutbr.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d9ad7ef1979d65a4200847ec91be5b9ad961eba8",
      "tree": "058dceba2670ee229a4fdf6992760260b0f0e002",
      "parents": [
        "17abee3d50685b8ef4e38d37abacf8b650a3a387"
      ],
      "author": {
        "name": "TINNES Julien RD-MAPS-ISS",
        "email": "julien.tinnes@francetelecom.com",
        "time": "Thu Jun 23 00:10:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:31 2005 -0700"
      },
      "message": "[PATCH] Potential null pointer dereference in amiga serial driver\n\nA pointer is dereferenced before it is null-checked.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "17abee3d50685b8ef4e38d37abacf8b650a3a387",
      "tree": "fd5b12465402f77c4c5120b6da3cc1789c87aa92",
      "parents": [
        "b78755abcdf1d7667c51580a3783e16e981ed926"
      ],
      "author": {
        "name": "Thierry Vignaud",
        "email": "tvignaud@mandriva.com",
        "time": "Thu Jun 23 00:10:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:31 2005 -0700"
      },
      "message": "[PATCH] gconfig: only show scrollbars if needed\n\ngconfig: only show scrollbars if needed (which is more user friendly):\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b78755abcdf1d7667c51580a3783e16e981ed926",
      "tree": "7627ff8c029411b304575d892d4caccefa3904bd",
      "parents": [
        "0030cbf06c669b65e124414af51b5010fc53b760"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Thu Jun 23 00:10:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] ipcsem: remove superflous decrease variable from sys_semtimedop\n\nPatrick noticed that the initial scan of the semaphore operations logs\ndecrease and increase operations seperately, but then both cases are or\u0027ed\ntogether and decrease is never used.  The attached patch removes the\ndecrease parameter - it shrinks sys_semtimedop() by 56 bytes.\n\nSigned-Of-By: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0030cbf06c669b65e124414af51b5010fc53b760",
      "tree": "b7e57d9c8131590a7cbdd2c20dc82954697c485b",
      "parents": [
        "71a2224d7d1cefc23a1ac80bba421cc069cc3257"
      ],
      "author": {
        "name": "Matthias Urlichs",
        "email": "smurf@smurf.noris.de",
        "time": "Thu Jun 23 00:10:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] Turn off sibling call optimization w/ frame pointers\n\nFrame pointers are supposed to enable debuggers to reliably tell where a\ncall comes from.  That is defeated by GCC\u0027s sibling call optimization (aka\ntail recursion elimination).\n\nThis patch turns this optimization off when compiling with frame pointers.\n\nSigned-Off-By: Matthias Urlichs \u003csmurf@smurf.noris.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "71a2224d7d1cefc23a1ac80bba421cc069cc3257",
      "tree": "3b3bc52e592484f008b4f1035a0d2e9e16b029f3",
      "parents": [
        "b030a4dd609e167da7f73c2d1fa5af864a0aea17"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jun 23 00:10:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] Optimize sys_times for a single thread process\n\nAvoid taking the tasklist_lock in sys_times if the process is single\nthreaded.  In a NUMA system taking the tasklist_lock may cause a bouncing\ncacheline if multiple independent processes continually call sys_times to\nmeasure their performance.\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": "b030a4dd609e167da7f73c2d1fa5af864a0aea17",
      "tree": "543d65bcf9b0de3c69c8882e9eb6d8eae6556af8",
      "parents": [
        "46c271bedd2c8444b1d05bc44928beec0c07debc"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 23 00:10:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] Remove eventpoll macro obfuscation\n\nThis patch gets rid of some macro obfuscation from fs/eventpoll.c by\nremoving slab allocator wrappers and converting macros to static inline\nfunctions.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46c271bedd2c8444b1d05bc44928beec0c07debc",
      "tree": "2e28cad2355b62b01815d1acc10d35a806f10ea0",
      "parents": [
        "dfb388bf8a328f206bba33933dd97230f412238b"
      ],
      "author": {
        "name": "Peter Osterlund",
        "email": "petero2@telia.com",
        "time": "Thu Jun 23 00:10:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:30 2005 -0700"
      },
      "message": "[PATCH] Improve CD/DVD packet driver write performance\n\nThis patch improves write performance for the CD/DVD packet writing driver.\n The logic for switching between reading and writing has been changed so\nthat streaming writes are no longer interrupted by read requests.\n\nSigned-off-by: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfb388bf8a328f206bba33933dd97230f412238b",
      "tree": "656cf4d7aba441667c4d25135ee70672738126e9",
      "parents": [
        "01890a4c120f68366441bf5e193d1b9dd543d4d0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:10:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:29 2005 -0700"
      },
      "message": "[PATCH] factor out common code in sys_fsync/sys_fdatasync\n\nThis patch consolidates sys_fsync and sys_fdatasync.\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": "01890a4c120f68366441bf5e193d1b9dd543d4d0",
      "tree": "ed854da46009b0837485e8acd17dc9d944e8068f",
      "parents": [
        "8476994af7bd9352ecdf61ba760f7397f54e30a1"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Thu Jun 23 00:10:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:29 2005 -0700"
      },
      "message": "[PATCH] mempool - only init waitqueue in slow path\n\nHere\u0027s a small patch to improve the performance of mempool_alloc by only\ninitializing the wait queue when we\u0027re about to wait.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "b94cce926b2b902b79380ccba370d6f9f2980de0"
}
