)]}'
{
  "log": [
    {
      "commit": "6c594c21fcb02c662f11c97be4d7d2b73060a205",
      "tree": "dbd56d57fbc4576e18002a5cc08b1f4327a2248f",
      "parents": [
        "5d6a27d8a096868ae313f71f563b06074a7e34fe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 12:34:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 20:31:26 2008 +0100"
      },
      "message": "perfcounters: add task migrations counter\n\nImpact: add new feature, new sw counter\n\nAdd a counter that counts the number of cross-CPU migrations a\ntask is suffering.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d6a27d8a096868ae313f71f563b06074a7e34fe",
      "tree": "0155a8bedea29a6e3eaaa827d1dd2934f68f695b",
      "parents": [
        "8cb391e8786c8072367f0aeb90551903fef074ba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 12:28:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 20:31:23 2008 +0100"
      },
      "message": "perfcounters: add context switch counter\n\nImpact: add new feature, new sw counter\n\nAdd a counter that counts the number of context-switches a task\nis doing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9b51f66dcb09ac5eb6bc68fc111d5c7a1e0131d6",
      "tree": "f7b3482ae284c214119efe309e356fb84de126bb",
      "parents": [
        "ee06094f8279e1312fc0a31591320cc7b6f0ab1e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 13:49:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 20:30:49 2008 +0100"
      },
      "message": "perfcounters: implement \"counter inheritance\"\n\nImpact: implement new performance feature\n\nCounter inheritance can be used to run performance counters in a workload,\ntransparently - and pipe back the counter results to the parent counter.\n\nInheritance for performance counters works the following way: when creating\na counter it can be marked with the .inherit\u003d1 flag. Such counters are then\n\u0027inherited\u0027 by all child tasks (be they fork()-ed or clone()-ed). These\ncounters get inherited through exec() boundaries as well (except through\nsetuid boundaries).\n\nThe counter values get added back to the parent counter(s) when the child\ntask(s) exit - much like stime/utime statistics are gathered. So inherited\ncounters are ideal to gather summary statistics about an application\u0027s\nbehavior via shell commands, without having to modify that application.\n\nThe timec.c command utilizes counter inheritance:\n\n  http://redhat.com/~mingo/perfcounters/timec.c\n\nSample output:\n\n   $ ./timec -e 1 -e 3 -e 5 ls -lR /usr/include/ \u003e/dev/null\n\n   Performance counter stats for \u0027ls\u0027:\n\n           163516953 instructions\n                2295 cache-misses\n             2855182 branch-misses\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee06094f8279e1312fc0a31591320cc7b6f0ab1e",
      "tree": "aecf8f2177b2398e4db8df68a9705009b31a8ef7",
      "parents": [
        "9b194e831fb2c322ed81a373e49620f34edc2778"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Dec 13 09:00:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 14 20:30:48 2008 +0100"
      },
      "message": "perfcounters: restructure x86 counter math\n\nImpact: restructure code\n\nChange counter math from absolute values to clear delta logic.\n\nWe try to extract elapsed deltas from the raw hw counter - and put\nthat into the generic counter.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92bf73e90a35d40ebc1446488218f03833b36f86",
      "tree": "8aaae58fcb7f3e06e63a5214f910acf47f4cc9d6",
      "parents": [
        "447557ac7ce120306b4a31d6003faef39cb1bf14",
        "915b0d0104b72fd36af088ba4b11b5690bc96a6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 12:00:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 12:00:14 2008 +0100"
      },
      "message": "Merge branch \u0027x86/irq\u0027 into perfcounters/core\n\n( with manual semantic merge of arch/x86/kernel/cpu/perf_counter.c )\n"
    },
    {
      "commit": "fd10902797fc9d6abaf55d9c2e3c6698c90b10c7",
      "tree": "0bc15b8b967e6f0973387e7c81f5b0dc9ce44e75",
      "parents": [
        "5b3eec0c80038c8739ccd465b897a35c0dff1cc4",
        "8b1fae4e4200388b64dd88065639413cb3f1051c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:59:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:59:39 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc8\u0027 into x86/irq\n"
    },
    {
      "commit": "6a930700c8b655a9e25e42fc4adc0b225ebbcefc",
      "tree": "5b6aa07d2734f43d0c5bc7d97aebe256e6d86fa8",
      "parents": [
        "1d1c7ddbfab358445a542715551301b7fc363e28"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:17:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:56 2008 +0100"
      },
      "message": "perf counters: clean up state transitions\n\nImpact: cleanup\n\nIntroduce a proper enum for the 3 states of a counter:\n\n\tPERF_COUNTER_STATE_OFF\t\t\u003d -1\n\tPERF_COUNTER_STATE_INACTIVE\t\u003d  0\n\tPERF_COUNTER_STATE_ACTIVE\t\u003d  1\n\nand rename counter-\u003eactive to counter-\u003estate and propagate the\nchanges everywhere.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1d1c7ddbfab358445a542715551301b7fc363e28",
      "tree": "d4421834d109b206f39c2019ea039fd42ed22e1d",
      "parents": [
        "bae43c9945ebeef15e7952e317efb02393d3bfc7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 14:59:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:55 2008 +0100"
      },
      "message": "perf counters: add prctl interface to disable/enable counters\n\nAdd a way for self-monitoring tasks to disable/enable counters summarily,\nvia a prctl:\n\n\tPR_TASK_PERF_COUNTERS_DISABLE\t\t31\n\tPR_TASK_PERF_COUNTERS_ENABLE\t\t32\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bae43c9945ebeef15e7952e317efb02393d3bfc7",
      "tree": "78d12a494fa9c3f73e76e8d7895ceb94d48d517d",
      "parents": [
        "01b2838c4298c5e0d30b4993c195ac34dd9df61e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 14:03:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:54 2008 +0100"
      },
      "message": "perf counters: implement PERF_COUNT_TASK_CLOCK\n\nImpact: add new perf-counter type\n\nThe \u0027task clock\u0027 counter counts the amount of time a task is executing,\nin nanoseconds. It stops ticking when a task is scheduled out either due\nto it blocking, sleeping or it being preempted.\n\nThis counter type is a Linux kernel based abstraction, it is available\neven if the hardware does not support native hardware performance counters.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "01b2838c4298c5e0d30b4993c195ac34dd9df61e",
      "tree": "56a526fb72bd068eb4e06aa79a7569e6afb4138a",
      "parents": [
        "5c92d12411dfe5f0f3d1b1c1e2f756245e6f7249"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 13:45:51 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:53 2008 +0100"
      },
      "message": "perf counters: consolidate hw_perf save/restore APIs\n\nImpact: cleanup\n\nRename them to better match up the usual IRQ disable/enable APIs:\n\n hw_perf_disable_all()  \u003d\u003e hw_perf_save_disable()\n hw_perf_restore_ctrl() \u003d\u003e hw_perf_restore()\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5c92d12411dfe5f0f3d1b1c1e2f756245e6f7249",
      "tree": "498b78f995d917aa513cf15ada480327224c0277",
      "parents": [
        "621a01eac89b5e2f81a4cf576568b31f40a02724"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 13:21:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:52 2008 +0100"
      },
      "message": "perf counters: implement PERF_COUNT_CPU_CLOCK\n\nImpact: add new perf-counter type\n\nThe \u0027CPU clock\u0027 counter counts the amount of CPU clock time that is\nelapsing, in nanoseconds. (regardless of how much of it the task is\nspending on a CPU executing)\n\nThis counter type is a Linux kernel based abstraction, it is available\neven if the hardware does not support native hardware performance counters.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "621a01eac89b5e2f81a4cf576568b31f40a02724",
      "tree": "79a7f2a8d49017077f40cfac4e78ee255cf2f43e",
      "parents": [
        "ccff286d85098ba5438e22aa2ea807fc1e18cf2f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 12:46:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:51 2008 +0100"
      },
      "message": "perf counters: hw driver API\n\nImpact: restructure code, introduce hw_ops driver abstraction\n\nIntroduce this abstraction to handle counter details:\n\n struct hw_perf_counter_ops {\n\tvoid (*hw_perf_counter_enable)\t(struct perf_counter *counter);\n\tvoid (*hw_perf_counter_disable)\t(struct perf_counter *counter);\n\tvoid (*hw_perf_counter_read)\t(struct perf_counter *counter);\n };\n\nThis will be useful to support assymetric hw details, and it will also\nbe useful to implement \"software counters\". (Counters that count kernel\nmanaged sw events such as pagefaults, context-switches, wall-clock time\nor task-local time.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "04289bb9891882202d7e961c4c04d2376930e9f9",
      "tree": "13340847915efc809a62bf91b3cd45e0e0416deb",
      "parents": [
        "9f66a3810fe0d4100972db84290f3ae4a4d77025"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 08:38:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:49 2008 +0100"
      },
      "message": "perf counters: add support for group counters\n\nImpact: add group counters\n\nThis patch adds the \"counter groups\" abstraction.\n\nGroups of counters behave much like normal \u0027single\u0027 counters, with a\nfew semantic and behavioral extensions on top of that.\n\nA counter group is created by creating a new counter with the open()\nsyscall\u0027s group-leader group_fd file descriptor parameter pointing\nto another, already existing counter.\n\nGroups of counters are scheduled in and out in one atomic group, and\nthey are also roundrobin-scheduled atomically.\n\nCounters that are member of a group can also record events with an\n(atomic) extended timestamp that extends to all members of the group,\nif the record type is set to PERF_RECORD_GROUP.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f66a3810fe0d4100972db84290f3ae4a4d77025",
      "tree": "2101d0d14aecf9d3e406544711e7336e3ea6b3af",
      "parents": [
        "dfa7c899b401d7dc5d85aca416aee64ac82812f2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 10 12:33:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:48 2008 +0100"
      },
      "message": "perf counters: restructure the API\n\nImpact: clean up new API\n\nThorough cleanup of the new perf counters API, we now get clean separation\nof the various concepts:\n\n - introduce perf_counter_hw_event to separate out the event source details\n\n - move special type flags into separate attributes: PERF_COUNT_NMI,\n   PERF_COUNT_RAW\n\n - extend the type to u64 and reserve it fully to the architecture in the\n   raw type case.\n\nAnd make use of all these changes in the core and x86 perfcounters code.\n\nAlso change the syscall signature to:\n\n  asmlinkage int sys_perf_counter_open(\n\n\tstruct perf_counter_hw_event\t*hw_event_uptr\t\t__user,\n\tpid_t\t\t\t\tpid,\n\tint\t\t\t\tcpu,\n\tint\t\t\t\tgroup_fd);\n\n( Note that group_fd is unused for now - it\u0027s reserved for the counter\n  groups abstraction. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfa7c899b401d7dc5d85aca416aee64ac82812f2",
      "tree": "496b0fee69989fd4127905a888de7135a7969e9e",
      "parents": [
        "eab656ae04b9d3b83265e3db01c0d2c46b748ef7"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 08 19:35:37 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:47 2008 +0100"
      },
      "message": "perf counters: expand use of counter-\u003eevent\n\nImpact: change syscall, cleanup\n\nMake use of the new perf_counters event type.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eab656ae04b9d3b83265e3db01c0d2c46b748ef7",
      "tree": "a8e12bd5a2da6032234dbb20ad2c75766b96c270",
      "parents": [
        "4ac13294e44664bb7edf4daf52edb71e7c6bbe84"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 08 19:26:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:46 2008 +0100"
      },
      "message": "perf counters: clean up \u0027raw\u0027 type API\n\nImpact: cleanup\n\nIntroduce a separate hw_event type.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ac13294e44664bb7edf4daf52edb71e7c6bbe84",
      "tree": "accb533350a655e39a8ab846abc37018b2f87ccf",
      "parents": [
        "43874d238d5f208854a73c3225ca2a22833eec8b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 09 21:43:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 11 15:45:45 2008 +0100"
      },
      "message": "perf counters: protect them against CSTATE transitions\n\nImpact: fix rare lost events problem\n\nThere are CPUs whose performance counters misbehave on CSTATE transitions,\nso provide a way to just disable/enable them around deep idle methods.\n\n(hw_perf_enable_all() is cheap on x86.)\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d211688727ad02bb4555b1aa8ae2de16b21b39",
      "tree": "2ee10b2f0cbfb615c40a2df98627426b8543d6cd",
      "parents": [
        "71c5576fbd809f2015f4eddf72e501e298720cf3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu_counter: new function percpu_counter_sum_and_set\"\n\nRevert\n\n    commit e8ced39d5e8911c662d4d69a342b9d053eaaac4e\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Fri Jul 11 19:27:31 2008 -0400\n\n        percpu_counter: new function percpu_counter_sum_and_set\n\nAs described in\n\n\trevert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nthe new percpu_counter_sum_and_set() is racy against updates to the\ncpu-local accumulators on other CPUs.  Revert that change.\n\nThis means that ext4 will be slow again.  But correct.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71c5576fbd809f2015f4eddf72e501e298720cf3",
      "tree": "b2d1ac56e6c3c9a60946a180cd45d493fc60738a",
      "parents": [
        "fd3d664fef97cf01f8e28fe0b024ad52f3bbc1bc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nRevert\n\n    commit 1f7c14c62ce63805f9574664a6c6de3633d4a354\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Thu Oct 9 12:50:59 2008 -0400\n\n        percpu counter: clean up percpu_counter_sum_and_set()\n\nBefore this patch we had the following:\n\npercpu_counter_sum(): return the percpu_counter\u0027s value\n\npercpu_counter_sum_and_set(): return the percpu_counter\u0027s value, copying\nthat value into the central value and zeroing the per-cpu counters before\nreturning.\n\nAfter this patch, percpu_counter_sum_and_set() has gone, and\npercpu_counter_sum() gets the old percpu_counter_sum_and_set()\nfunctionality.\n\nProblem is, as Eric points out, the old percpu_counter_sum_and_set()\nfunctionality was racy and wrong.  It zeroes out counters on \"other\" cpus,\nwithout holding any locks which will prevent races agaist updates from\nthose other CPUS.\n\nThis patch reverts 1f7c14c62ce63805f9574664a6c6de3633d4a354.  This means\nthat percpu_counter_sum_and_set() still has the race, but\npercpu_counter_sum() does not.\n\nNote that this is not a simple revert - ext4 has since started using\npercpu_counter_sum() for its dirty_blocks counter as well.\n\nNote that this revert patch changes percpu_counter_sum() semantics.\n\nBefore the patch, a call to percpu_counter_sum() will bring the counter\u0027s\ncentral counter mostly up-to-date, so a following percpu_counter_read()\nwill return a close value.\n\nAfter this patch, a call to percpu_counter_sum() will leave the counter\u0027s\ncentral accumulator unaltered, so a subsequent call to\npercpu_counter_read() can now return a significantly inaccurate result.\n\nIf there is any code in the tree which was introduced after\ne8ced39d5e8911c662d4d69a342b9d053eaaac4e was merged, and which depends\nupon the new percpu_counter_sum() semantics, that code will break.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b749e3f8d7879c9c87e237d75b2256b4d1d04df2",
      "tree": "27589e391ecb12ad51243bf7e124c6dfcc7a5b66",
      "parents": [
        "6f8e5850df8eecee212c84831030b04f025c11ac",
        "48887e63d6e057543067327da6b091297f7fe645"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 09 08:28:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 09 08:28:13 2008 -0800"
      },
      "message": "Merge branch \u0027audit.b59\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b59\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  [PATCH] fix broken timestamps in AVC generated by kernel threads\n  [patch 1/1] audit: remove excess kernel-doc\n  [PATCH] asm/generic: fix bug - kernel fails to build when enable some common audit code on Blackfin\n  [PATCH] return records for fork() both to child and parent\n  [PATCH] Audit: make audit\u003d0 actually turn off audit\n"
    },
    {
      "commit": "48887e63d6e057543067327da6b091297f7fe645",
      "tree": "f290af5a887bcf840a63043eb2df3a4c02ccaea3",
      "parents": [
        "7f0ed77d241b60f70136f15b8eef30a3de1fa249"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 06 01:05:50 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:41 2008 -0500"
      },
      "message": "[PATCH] fix broken timestamps in AVC generated by kernel threads\n\nTimestamp in audit_context is valid only if -\u003ein_syscall is set.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a64e64944f4b8ce3288519555dbaa0232414b8ac",
      "tree": "6b37f5444c49379580b6b4fead84a75ca474d0ab",
      "parents": [
        "a3f07114e3359fb98683069ae397220e8992a24a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 12 18:37:41 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:38 2008 -0500"
      },
      "message": "[PATCH] return records for fork() both to child and parent\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7a8db89c1f42e504bb12d2ae399cd96f755a7db",
      "tree": "0b98001ee746784e95a0809a8499483ace2450d5",
      "parents": [
        "6f84b4dbe92e3ffb00f4d8cbe9a31b5be5ecd8ca",
        "c49b9f295e513753e6d9bb4444ba502f1aa59b29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 08 19:52:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 08 19:52:43 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  tproxy: fixe a possible read from an invalid location in the socket match\n  zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr()\n  mac80211: use unaligned safe memcmp() in-place of compare_ether_addr()\n  ipw2200: fix netif_*_queue() removal regression\n  iwlwifi: clean key table in iwl_clear_stations_table function\n  tcp: tcp_vegas ssthresh bug fix\n  can: omit received RTR frames for single ID filter lists\n  ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table\n  netx-eth: initialize per device spinlock\n  tcp: make urg+gso work for real this time\n  enc28j60: Fix sporadic packet loss (corrected again)\n  hysdn: fix writing outside the field on 64 bits\n  b1isa: fix b1isa_exit() to really remove registered capi controllers\n  can: Fix CAN_(EFF|RTR)_FLAG handling in can_filter\n  Phonet: do not dump addresses from other namespaces\n  netlabel: Fix a potential NULL pointer dereference\n  bnx2: Add workaround to handle missed MSI.\n  xfrm: Fix kernel panic when flush and dump SPD entries\n"
    },
    {
      "commit": "0793a61d4df8daeac6492dbf8d2f3e5713caae5e",
      "tree": "cc9603eb8daffeb7ace521c42a6a44db164ac551",
      "parents": [
        "b5aa97e83bcc31a96374d18f5452d53909a16c90"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 04 20:12:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:47:03 2008 +0100"
      },
      "message": "performance counters: core code\n\nImplement the core kernel bits of Performance Counters subsystem.\n\nThe Linux Performance Counter subsystem provides an abstraction of\nperformance counter hardware capabilities. It provides per task and per\nCPU counters, and it provides event capabilities on top of those.\n\nPerformance counters are accessed via special file descriptors.\nThere\u0027s one file descriptor per virtual counter used.\n\nThe special file descriptor is opened via the perf_counter_open()\nsystem call:\n\n int\n perf_counter_open(u32 hw_event_type,\n                   u32 hw_event_period,\n                   u32 record_type,\n                   pid_t pid,\n                   int cpu);\n\nThe syscall returns the new fd. The fd can be used via the normal\nVFS system calls: read() can be used to read the counter, fcntl()\ncan be used to set the blocking mode, etc.\n\nMultiple counters can be kept open at a time, and the counters\ncan be poll()ed.\n\nSee more details in Documentation/perf-counters.txt.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5aa97e83bcc31a96374d18f5452d53909a16c90",
      "tree": "ec1fe68841df5c79f7f34a8b1594d48d22e4076c",
      "parents": [
        "218d11a8b071b23b76c484fd5f72a4fe3306801e",
        "4217458dafaa57d8e26a46f5d05ab8c53cf64191",
        "5b3eec0c80038c8739ccd465b897a35c0dff1cc4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:46:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:46:36 2008 +0100"
      },
      "message": "Merge branches \u0027x86/signal\u0027 and \u0027x86/irq\u0027 into perfcounters/core\n\nMerge these pending x86 tree changes into the perfcounters tree\nto avoid conflicts.\n"
    },
    {
      "commit": "f2f1fa78a155524b849edf359e42a3001ea652c0",
      "tree": "8d38fc76e48fc219e393ee57ee5f76843b735258",
      "parents": [
        "24920a79a27dd28e67088bbfcf36746d15587f4d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 14:49:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 14:49:18 2008 -0800"
      },
      "message": "Enforce a minimum SG_IO timeout\n\nThere\u0027s no point in having too short SG_IO timeouts, since if the\ncommand does end up timing out, we\u0027ll end up through the reset sequence\nthat is several seconds long in order to abort the command that timed\nout.\n\nAs a result, shorter timeouts than a few seconds simply do not make\nsense, as the recovery would be longer than the timeout itself.\n\nAdd a BLK_MIN_SG_TIMEOUT to match the existign BLK_DEFAULT_SG_TIMEOUT.\n\nSuggested-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc9161e54d0dbf799beff9692ea1cc6237162b85",
      "tree": "07c08b1bd60cb3b8188aa3470fdf86612019c8ce",
      "parents": [
        "fd4ce1acd0f8558033b1a6968001552bd7671e6d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:58:46 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:58 2008 -0500"
      },
      "message": "[PATCH 2/2] documnt FMODE_ constants\n\nMake sure all FMODE_ constants are documents, and ensure a coherent\nstyle for the already existing comments.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fd4ce1acd0f8558033b1a6968001552bd7671e6d",
      "tree": "7ce54f2b2c967fe2315917ffa2eb8eb7d47e7a2b",
      "parents": [
        "ebbefc011e56bd85b4745d01e5b8d7d05d95ed5d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:58:42 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:57 2008 -0500"
      },
      "message": "[PATCH 1/2] kill FMODE_NDELAY_NOW\n\nUpdate FMODE_NDELAY before each ioctl call so that we can kill the\nmagic FMODE_NDELAY_NOW.  It would be even better to do this directly\nin setfl(), but for that we\u0027d need to have FMODE_NDELAY for all files,\nnot just block special files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d253eee20195b25e298bf162a6e72f14bf4803e5",
      "tree": "4fd5fef75d52ecae3f41dbd9ae62436e917e1699",
      "parents": [
        "bd7df219202f44e71e2e975a0fb5f76f946c1aef"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "oliver@hartkopp.net",
        "time": "Wed Dec 03 15:52:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 15:52:35 2008 -0800"
      },
      "message": "can: Fix CAN_(EFF|RTR)_FLAG handling in can_filter\n\nDue to a wrong safety check in af_can.c it was not possible to filter\nfor SFF frames with a specific CAN identifier without getting the\nsame selected CAN identifier from a received EFF frame also.\n\nThis fix has a minimum (but user visible) impact on the CAN filter\nAPI and therefore the CAN version is set to a new date.\n\nIndeed the \u0027old\u0027 API is still working as-is. But when now setting\nCAN_(EFF|RTR)_FLAG in can_filter.can_mask you might get less traffic\nthan before - but still the stuff that you expected to get for your\ndefined filter ...\n\nThanks to Kurt Van Dijck for pointing at this issue and for the review.\n\nSigned-off-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nAcked-by: Kurt Van Dijck \u003ckurt.van.dijck@eia.be\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e435ac26e3f951d83338ed3d4ab7dc0fe0055bc",
      "tree": "8f208a3093de1a314a981ae47e5ef92a5909c13b",
      "parents": [
        "53a08807c01989c6847bb135d8d43f61c5dfdda5"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed Dec 03 12:55:08 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 03 12:55:55 2008 +0100"
      },
      "message": "block: fix setting of max_segment_size and seg_boundary mask\n\nFix setting of max_segment_size and seg_boundary mask for stacked md/dm\ndevices.\n\nWhen stacking devices (LVM over MD over SCSI) some of the request queue\nparameters are not set up correctly in some cases by default, namely\nmax_segment_size and and seg_boundary mask.\n\nIf you create MD device over SCSI, these attributes are zeroed.\n\nProblem become when there is over this mapping next device-mapper mapping\n- queue attributes are set in DM this way:\n\nrequest_queue   max_segment_size  seg_boundary_mask\nSCSI                65536             0xffffffff\nMD RAID1                0                      0\nLVM                 65536                 -1 (64bit)\n\nUnfortunately bio_add_page (resp.  bio_phys_segments) calculates number of\nphysical segments according to these parameters.\n\nDuring the generic_make_request() is segment cout recalculated and can\nincrease bio-\u003ebi_phys_segments count over the allowed limit.  (After\nbio_clone() in stack operation.)\n\nThi is specially problem in CCISS driver, where it produce OOPS here\n\n    BUG_ON(creq-\u003enr_phys_segments \u003e MAXSGENTRIES);\n\n(MAXSEGENTRIES is 31 by default.)\n\nSometimes even this command is enough to cause oops:\n\n  dd iflag\u003ddirect if\u003d/dev/\u003cvg\u003e/\u003clv\u003e of\u003d/dev/null bs\u003d128000 count\u003d10\n\nThis command generates bios with 250 sectors, allocated in 32 4k-pages\n(last page uses only 1024 bytes).\n\nFor LVM layer, it allocates bio with 31 segments (still OK for CCISS),\nunfortunatelly on lower layer it is recalculated to 32 segments and this\nviolates CCISS restriction and triggers BUG_ON().\n\nThe patch tries to fix it by:\n\n * initializing attributes above in queue request constructor\n   blk_queue_make_request()\n\n * make sure that blk_queue_stack_limits() inherits setting\n\n (DM uses its own function to set the limits because it\n blk_queue_stack_limits() was introduced later.  It should probably switch\n to use generic stack limit function too.)\n\n * sets the default seg_boundary value in one place (blkdev.h)\n\n * use this mask as default in DM (instead of -1, which differs in 64bit)\n\nBugs related to this:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d471639\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8672\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReviewed-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53a08807c01989c6847bb135d8d43f61c5dfdda5",
      "tree": "e2297de901dc82a0336e6af28b594864792c585d",
      "parents": [
        "bf91db18ac2852a3ff39fe25ff56c5557c0fff78"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 03 12:41:26 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 03 12:41:26 2008 +0100"
      },
      "message": "block: internal dequeue shouldn\u0027t start timer\n\nblkdev_dequeue_request() and elv_dequeue_request() are equivalent and\nboth start the timeout timer.  Barrier code dequeues the original\nbarrier request but doesn\u0027t passes the request itself to lower level\ndriver, only broken down proxy requests; however, as the original\nbarrier code goes through the same dequeue path and timeout timer is\nstarted on it.  If barrier sequence takes long enough, this timer\nexpires but the low level driver has no idea about this request and\noops follows.\n\nTimeout timer shouldn\u0027t have been started on the original barrier\nrequest as it never goes through actual IO.  This patch unexports\nelv_dequeue_request(), which has no external user anyway, and makes it\noperate on elevator proper w/o adding the timer and make\nblkdev_dequeue_request() call elv_dequeue_request() and add timer.\nInternal users which don\u0027t pass the request to driver - barrier code\nand end_that_request_last() - are converted to use\nelv_dequeue_request().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e1825e7515010053e44287e6e78f9078cd1916a9",
      "tree": "6c0a2a64926b8063ba934b7083f5f43011b43990",
      "parents": [
        "5d279dcf98350ac3cbfa43c6aa62f4305408f2df",
        "44ae98b53961e7c8c1d47bbffaf08c4f7bf29249"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:55:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:55:05 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)\n  MAINTAINERS: add netdev to ATM\n  ATM: horizon, fix hrz_probe fail path\n  pppol2tp: Add missing sock_put() in pppol2tp_release()\n  net: Fix soft lockups/OOM issues w/ unix garbage collector\n  macvlan: don\u0027t broadcast PAUSE frames to macvlan devices\n  Phonet: fix oops in phonet_address_del() on non-Phonet device\n  netfilter: ctnetlink: fix GFP_KERNEL allocation under spinlock\n  sungem: Fix PCS_MIICTRL register write in gem_init_phy().\n  net: make skb_truesize_bug() call WARN()\n  net: hp-plus uses eip_poll\n  net/wireless/reg.c: fix bad WARN_ON in if statement\n  ath5k: disable beacon filter when station is not associated\n  ath5k: fix Security issue in DebugFS part of ath5k\n  ath9k: correct expected max RX buffer size\n  ath9k: Fix SW-IOMMU bounce buffer starvation\n  mac80211 : Fix setting ad-hoc mode and non-ibss channel\n  iwlagn: fix DMA sync\n  phylib: Add Vitesse VSC8221 SGMII PHY\n  rose: zero length frame filtering in af_rose.c\n  bridge: netfilter: fix update_pmtu crash with GRE\n  ...\n"
    },
    {
      "commit": "e2e29831cc463f4be61d4e36b8699ae7e071a685",
      "tree": "d5c40f6a328e07edb2db7186bef3a6c932c404fb",
      "parents": [
        "9a689bc4f09f8b89f88e65b1b0a2ea780b4f28de",
        "95964018d53f479529dfdc2b46fe30c0a14a00e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:53:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:53:10 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:\n  alim15x3: fix sparse warning\n  ide: remove dead code from drive_is_ready()\n  ide: fix build for DEBUG_PM\n  ide: respect current DMA setting during resume\n  ide: add SAMSUNG SP0822N with firmware WA100-10 to ivb_list[]\n  amd74xx: workaround unreliable AltStatus register for nVidia controllers\n  ide: fix the ide_release_lock imbalance\n"
    },
    {
      "commit": "1b79cd04fab80be61dcd2732e2423aafde9a4c1c",
      "tree": "b9ff5f0de1c0ef011ac62096218d2fd4bc70c56b",
      "parents": [
        "061e41fdb5047b1fb161e89664057835935ca1d2"
      ],
      "author": {
        "name": "Junjiro R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Tue Dec 02 10:31:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:50:40 2008 -0800"
      },
      "message": "nfsd: fix vm overcommit crash fix #2\n\nThe previous patch from Alan Cox (\"nfsd: fix vm overcommit crash\",\ncommit 731572d39fcd3498702eda4600db4c43d51e0b26) fixed the problem where\nknfsd crashes on exported shmemfs objects and strict overcommit is set.\n\nBut the patch forgot supporting the case when CONFIG_SECURITY is\ndisabled.\n\nThis patch copies a part of his fix which is mainly for detecting a bug\nearlier.\n\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Junjiro R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6636487e8dc49a1c43fed336bdc4a2f3d7ce6881",
      "tree": "f23a8f126cd63a199907bd8c20f3d2f4423ca006",
      "parents": [
        "f9e3326dce0ef117308872cd234b903aa19aa40f"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Dec 02 20:40:03 2008 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Dec 02 20:40:03 2008 +0100"
      },
      "message": "amd74xx: workaround unreliable AltStatus register for nVidia controllers\n\nIt seems that on some nVidia controllers using AltStatus register\ncan be unreliable so default to Status register if the PCI device\nis in Compatibility Mode.  In order to achieve this:\n\n* Add ide_pci_is_in_compatibility_mode() inline helper to \u003clinux/ide.h\u003e.\n\n* Add IDE_HFLAG_BROKEN_ALTSTATUS host flag and set it in amd74xx host\n  driver for nVidia controllers in Compatibility Mode.\n\n* Teach actual_try_to_identify() and drive_is_ready() about the new flag.\n\nThis fixes the regression caused by removal of CONFIG_IDEPCI_SHARE_IRQ\nconfig option in 2.6.25 and using AltStatus register unconditionally when\navailable (kernel.org bugs #11659 and #10216).\n\n[ Moreover for CONFIG_IDEPCI_SHARE_IRQ\u003dy (which is what most people\n  and distributions use) it never worked correctly. ]\n\nThanks to Remy LABENE and Lars Winterfeld for help with debugging the problem.\n\nMore info at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11659\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10216\n\nReported-by: Remy LABENE \u003cremy.labene@free.fr\u003e\nTested-by: Remy LABENE \u003cremy.labene@free.fr\u003e\nTested-by: Lars Winterfeld \u003clars.winterfeld@tu-ilmenau.de\u003e\nAcked-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "6ff2d39b91aec3dcae951afa982059e3dd9b49dc",
      "tree": "8d480975d95adf85f3a87dd478e36e4ac0b0edd0",
      "parents": [
        "1d678f365dae28420fa7329a2a35390b3582678d"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Dec 01 13:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:25 2008 -0800"
      },
      "message": "lib/idr.c: fix rcu related race with idr_find\n\n2nd part of the fixes needed for\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11796.\n\nWhen the idr tree is either grown or shrunk, then the update to the number\nof layers and the top pointer were not atomic.  This race caused crashes.\n\nThe attached patch fixes that by replicating the layers counter in each\nlayer, thus idr_find doesn\u0027t need idp-\u003elayers anymore.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Clement Calmels \u003ccboulte@gmail.com\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ef9964e6d1b911b78709f144000aacadd0ebc21",
      "tree": "30667d0a2f8e53973ff48d2c02df48bbc6fe74aa",
      "parents": [
        "b7d271df873c5121a4ca1c70dea126b5920ec2f1"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Dec 01 13:13:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "epoll: introduce resource usage limits\n\nIt has been thought that the per-user file descriptors limit would also\nlimit the resources that a normal user can request via the epoll\ninterface.  Vegard Nossum reported a very simple program (a modified\nversion attached) that can make a normal user to request a pretty large\namount of kernel memory, well within the its maximum number of fds.  To\nsolve such problem, default limits are now imposed, and /proc based\nconfiguration has been introduced.  A new directory has been created,\nnamed /proc/sys/fs/epoll/ and inside there, there are two configuration\npoints:\n\n  max_user_instances \u003d Maximum number of devices - per user\n\n  max_user_watches   \u003d Maximum number of \"watched\" fds - per user\n\nThe current default for \"max_user_watches\" limits the memory used by epoll\nto store \"watches\", to 1/32 of the amount of the low RAM.  As example, a\n256MB 32bit machine, will have \"max_user_watches\" set to roughly 90000.\nThat should be enough to not break existing heavy epoll users.  The\ndefault value for \"max_user_instances\" is set to 128, that should be\nenough too.\n\nThis also changes the userspace, because a new error code can now come out\nfrom EPOLL_CTL_ADD (-ENOSPC).  The EMFILE from epoll_create() was already\nlisted, so that should be ok.\n\n[akpm@linux-foundation.org: use get_current_user()]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReported-by: Vegard Nossum \u003cvegardno@ifi.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ac01108e71ca8ccc2ded4ee98035d0e5db9c981",
      "tree": "afb50d33254337c73d450687cfeae18aa096b6c0",
      "parents": [
        "4bc2a9bf8cbb63f3bb9797b2bf30b2316bd27a2b",
        "ac70a964b0e22a95af3628c344815857a01461b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:23:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:23:33 2008 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ\n  [libata] pata_rb532_cf: fix signature of the xfer function\n  [libata] pata_rb532_cf: fix and rename register definitions\n  ata_piix: add borked Tecra M4 to broken suspend list\n"
    },
    {
      "commit": "4bc2a9bf8cbb63f3bb9797b2bf30b2316bd27a2b",
      "tree": "a02a03a4c75e3da0843168456124f60afae49200",
      "parents": [
        "6a1214113090905aca6a492fc8ef10d84c608a69",
        "b0f43dcca8a1f46e17b26d10f3cb1b297ebfb44e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:01:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:01:54 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  IB/mlx4: Fix MTT leakage in resize CQ\n  IB/ehca: Fix problem with generated flush work completions\n  IB/ehca: Change misleading error message on memory hotplug\n  mlx4_core: Save/restore default port IB capability mask\n"
    },
    {
      "commit": "ac70a964b0e22a95af3628c344815857a01461b7",
      "tree": "c5711139bd95053b9b5c8897e3f7cd50b8331141",
      "parents": [
        "03f60840fa462e92220b093f778b2426ceab23af"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 27 13:36:48 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Dec 01 13:49:27 2008 -0500"
      },
      "message": "libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ\n\nSome recent Seagate harddrives have firmware bug which causes FLUSH\nCACHE to timeout under certain circumstances if NCQ is being used.\nThis can be worked around by disabling NCQ and fixed by updating the\nfirmware.  Implement ATA_HORKAGE_FIRMWARE_UPDATE and blacklist these\ndevices.\n\nThe wiki page has been updated to contain information on this issue.\n\n  http://ata.wiki.kernel.org/index.php/Known_issues\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "4ec8f077e4dd51f713984669781e7b568b8c41e2",
      "tree": "4c951595e2824b19ca9d9c7190a6046481322c14",
      "parents": [
        "a6e470fd1bbfea8e51d2b10b0713e802b782f19a",
        "af38d90d6a5e135b546a3f86222ba2ad895ba4ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 16:39:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 16:39:06 2008 -0800"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm:\n  Allow architectures to override copy_user_highpage()\n  [ARM] pxa/palmtx: misc fixes to use generic GPIO API\n  ARM: OMAP: Fixes for suspend / resume GPIO wake-up handling\n  [ARM] pxa/corgi: update default config to exclude tosa from being built\n  [ARM] pxa/pcm990: use negative number for an invalid GPIO in camera data\n  ARM: OMAP: Typo fix for clock_allow_idle\n  ARM: OMAP: Remove broken LCD driver for SX1\n  [ARM] 5335/1: pxa25x_udc: Fix is_vbus_present to return 1 or 0\n  [ARM] pxa/MioA701: bluetooth resume fix\n  [ARM] pxa/MioA701: fix memory corruption.\n"
    },
    {
      "commit": "72244c0e68dd664b894adb34a8772a6e4673b4c1",
      "tree": "5fa5bd9ff7b3d52f9b89898c0f12cfe163b72987",
      "parents": [
        "93b10052f9146eab4e848b474baf10c2ea22acb3",
        "2ed1cdcf9a83205d1343f29b630abff232eaa72c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq.h: fix missing/extra kernel-doc\n  genirq: __irq_set_trigger: change pr_warning to pr_debug\n  irq: fix typo\n  x86: apic honour irq affinity which was set in early boot\n  genirq: fix the affinity setting in setup_irq\n  genirq: keep affinities set from userspace across free/request_irq()\n"
    },
    {
      "commit": "96b8936a9ed08746e47081458a5eb9e43a751e24",
      "tree": "d1a738fdd95dda182f99c90fe3079283e0b07307",
      "parents": [
        "16799c6a4d5156c6ee185b51b7586cca1aae0800"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 25 08:10:03 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 11:00:15 2008 -0800"
      },
      "message": "remove __ARCH_WANT_COMPAT_SYS_PTRACE\n\nAll architectures now use the generic compat_sys_ptrace, as should every\nnew architecture that needs 32bit compat (if we\u0027ll ever get another).\n\nRemove the now superflous __ARCH_WANT_COMPAT_SYS_PTRACE define, and also\nkill a comment about __ARCH_SYS_PTRACE that was added after\n__ARCH_SYS_PTRACE was already gone.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d0e6753d8ab0173b63338157929e52eac86d12",
      "tree": "c878c5dd9a1829ed1359fdd3a010272253801823",
      "parents": [
        "d3a307f32ec3554739033762672e533e2d246dae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:38:34 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:38 2008 -0800"
      },
      "message": "hotplug_memory_notifier section annotation\n\nSame as for hotplug_cpu - we want static notifier_block in there in meminitdata,\nto avoid false positives whenever it\u0027s used.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31168481c32c8a485e1003af9433124dede57f8d",
      "tree": "0d0bb17b8f45cb3b176acc63dee4f2a57aaca500",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:33:24 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:35 2008 -0800"
      },
      "message": "meminit section warnings\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a5aa622dd4cd22b5e0fe83e4a9c0c768d4e2dea",
      "tree": "95e975a4959a890bd1050645b04488272aa4643c",
      "parents": [
        "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Fri Nov 28 21:29:46 2008 -0800"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Fri Nov 28 21:29:46 2008 -0800"
      },
      "message": "mlx4_core: Save/restore default port IB capability mask\n\nCommit 7ff93f8b (\"mlx4_core: Multiple port type support\") introduced\nsupport for different port types.  As part of that support, SET_PORT\nis invoked to set the port type during driver startup.  However, as a\nside-effect, for IB ports the invocation of this command also sets the\nport\u0027s capability mask to zero (losing the default value set by FW).\n\nTo fix this, get the default ib port capabilities (via a MAD_IFC Port\nInfo query) during driver startup, and save them for use in the\nmlx4_SET_PORT command when setting the port-type to Infiniband.\n\nThis patch fixes problems with subnet manager (SM) failover such as\n\u003chttps://bugs.openfabrics.org/show_bug.cgi?id\u003d1183\u003e, which occurred\nbecause the IsTrapSupported bit in the capability mask was zeroed.\n\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "3bdae4f46445ea7cc9ee031d7ff106fdc6228669",
      "tree": "a44b445548dbf730535cfebd024e4cabadd4397c",
      "parents": [
        "9f1e87ea3ecb3c46c21f6a1a202ec82f99ed2473",
        "5f5db591326779a80cfe490c5d6b6ce9fac08b31"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 15:00:37 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 15:00:48 2008 +0100"
      },
      "message": "Merge branch \u0027x86/debug\u0027 into x86/irq\n\nWe merge this branch because x86/debug touches code that we started\ncleaning up in x86/irq. The two branches started out independent,\nbut as unexpected amount of activity went into x86/irq, they became\ndependent. Resolve that by this cross-merge.\n"
    },
    {
      "commit": "487ff32082a9bd7489d8185cf7d7a2fdf18a22fa",
      "tree": "59f792ef961670026b2e71a88453fed1136aba02",
      "parents": [
        "6417a917b564106dcf2b8f42687f92ad94635ddd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Nov 27 11:13:58 2008 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Nov 27 23:39:48 2008 +0000"
      },
      "message": "Allow architectures to override copy_user_highpage()\n\nWith aliasing VIPT cache support, the ARM implementation of\nclear_user_page() and copy_user_page() sets up a temporary kernel space\nmapping such that we have the same cache colour as the userspace page.\nThis avoids having to consider any userspace aliases from this operation.\n\nHowever, when highmem is enabled, kmap_atomic() have to setup mappings.\nThe copy_user_highpage() and clear_user_highpage() call these functions\nbefore delegating the copies to copy_user_page() and clear_user_page().\n\nThe effect of this is that each of the *_user_highpage() functions setup\ntheir own kmap mapping, followed by the *_user_page() functions setting\nup another mapping.  This is rather wasteful.\n\nThankfully, copy_user_highpage() can be overriden by architectures by\ndefining __HAVE_ARCH_COPY_USER_HIGHPAGE.  However, replacement of\nclear_user_highpage() is more difficult because its inline definition\nis not conditional.  It seems that you\u0027re expected to define\n__HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE and provide a replacement\n__alloc_zeroed_user_highpage() implementation instead.\n\nThe allocation itself is fine, so we don\u0027t want to override that.  What\nwe really want to do is to override clear_user_highpage() with our own\nversion which doesn\u0027t kmap_atomic() unnecessarily.\n\nOther VIPT architectures (PARISC and SH) would also like to override\nthis function as well.\n\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "d211af055d0c12dc3416c2886e6fbdc6eb74a381",
      "tree": "27f6826ac10ae12cc546bfedc86959a664ce2802",
      "parents": [
        "ddeb8f2149de280d54f0c8910cead42e6042b2cb"
      ],
      "author": {
        "name": "Alexander van Heukelum",
        "email": "heukelum@mailshack.com",
        "time": "Mon Nov 24 15:38:45 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 12:37:54 2008 +0100"
      },
      "message": "i386: get rid of the use of KPROBE_ENTRY / KPROBE_END\n\nentry_32.S is now the only user of KPROBE_ENTRY / KPROBE_END,\ntreewide. This patch reorders entry_64.S and explicitly generates\na separate section for functions that need the protection. The\ngenerated code before and after the patch is equal.\n\nThe KPROBE_ENTRY and KPROBE_END macro\u0027s are removed too.\n\nSigned-off-by: Alexander van Heukelum \u003cheukelum@fastmail.fm\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f79fca55f9a6fe54635ad32ddc8a38f92a94ec30",
      "tree": "15343dc8350f4e3f902c20c13b43a86e366f843f",
      "parents": [
        "b54ad409fd09a395b839fb81f300880d76861c0e"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "message": "netfilter: xtables: add missing const qualifier to xt_tgchk_param\n\nWhen entryinfo was a standalone parameter to functions, it used to be\n\"const void *\". Put the const back in.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2ed1cdcf9a83205d1343f29b630abff232eaa72c",
      "tree": "97304ced8d05b5b7497e37b661abbce4540f0194",
      "parents": [
        "9f1441644213e5f6faa150206399fe511eba2eb6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Nov 21 16:59:57 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:45 2008 +0100"
      },
      "message": "irq.h: fix missing/extra kernel-doc\n\nImpact: fix kernel-doc build\n\nFix missing \u0026 excess irq.h kernel-doc:\n\nWarning(include/linux/irq.h:182): No description found for parameter \u0027irq\u0027\nWarning(include/linux/irq.h:182): Excess struct/union/enum/typedef member \u0027affinity_entry\u0027 description in \u0027irq_desc\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f1441644213e5f6faa150206399fe511eba2eb6",
      "tree": "e59d4e6475aa84f7e821a8c607deb56b85e19e95",
      "parents": [
        "3ff68a6a106c362a6811d3e51bced58e6fc87de7",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc6\u0027 into irq/urgent\n"
    },
    {
      "commit": "f481891fdc49d3d1b8a9674a1825d183069a805f",
      "tree": "4f027a1321dcd06165394d0a23e49df51c8befc1",
      "parents": [
        "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cpuset: update top cpuset\u0027s mems after adding a node\n\nAfter adding a node into the machine, top cpuset\u0027s mems isn\u0027t updated.\n\nBy reviewing the code, we found that the update function\n\n  cpuset_track_online_nodes()\n\nwas invoked after node_states[N_ONLINE] changes.  It is wrong because\nN_ONLINE just means node has pgdat, and if node has/added memory, we use\nN_HIGH_MEMORY.  So, We should invoke the update function after\nnode_states[N_HIGH_MEMORY] changes, just like its commit says.\n\nThis patch fixes it.  And we use notifier of memory hotplug instead of\ndirect calling of cpuset_track_online_nodes().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de11defebf00007677fb7ee91d9b089b78786fbb",
      "tree": "8219faf1b7992be77a612e778c2573c55f56cf19",
      "parents": [
        "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Nov 19 15:36:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "reintroduce accept4\n\nIntroduce a new accept4() system call.  The addition of this system call\nmatches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),\ninotify_init1(), epoll_create1(), pipe2()) which added new system calls\nthat differed from analogous traditional system calls in adding a flags\nargument that can be used to access additional functionality.\n\nThe accept4() system call is exactly the same as accept(), except that\nit adds a flags bit-mask argument.  Two flags are initially implemented.\n(Most of the new system calls in 2.6.27 also had both of these flags.)\n\nSOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled\nfor the new file descriptor returned by accept4().  This is a useful\nsecurity feature to avoid leaking information in a multithreaded\nprogram where one thread is doing an accept() at the same time as\nanother thread is doing a fork() plus exec().  More details here:\nhttp://udrepper.livejournal.com/20407.html \"Secure File Descriptor Handling\",\nUlrich Drepper).\n\nThe other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag\nto be enabled on the new open file description created by accept4().\n(This flag is merely a convenience, saving the use of additional calls\nfcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.\n\nHere\u0027s a test program.  Works on x86-32.  Should work on x86-64, but\nI (mtk) don\u0027t have a system to hand to test with.\n\nIt tests accept4() with each of the four possible combinations of\nSOCK_CLOEXEC and SOCK_NONBLOCK set/clear in \u0027flags\u0027, and verifies\nthat the appropriate flags are set on the file descriptor/open file\ndescription returned by accept4().\n\nI tested Ulrich\u0027s patch in this thread by applying against 2.6.28-rc2,\nand it passes according to my test program.\n\n/* test_accept4.c\n\n  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk\n       \u003cmtk.manpages@gmail.com\u003e\n\n  Licensed under the GNU GPLv2 or later.\n*/\n#define _GNU_SOURCE\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n\n#define PORT_NUM 33333\n\n#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n\n/**********************************************************************/\n\n/* The following is what we need until glibc gets a wrapper for\n  accept4() */\n\n/* Flags for socket(), socketpair(), accept4() */\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC    O_CLOEXEC\n#endif\n#ifndef SOCK_NONBLOCK\n#define SOCK_NONBLOCK   O_NONBLOCK\n#endif\n\n#ifdef __x86_64__\n#define SYS_accept4 288\n#elif __i386__\n#define USE_SOCKETCALL 1\n#define SYS_ACCEPT4 18\n#else\n#error \"Sorry -- don\u0027t know the syscall # on this architecture\"\n#endif\n\nstatic int\naccept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)\n{\n   printf(\"Calling accept4(): flags \u003d %x\", flags);\n   if (flags !\u003d 0) {\n       printf(\" (\");\n       if (flags \u0026 SOCK_CLOEXEC)\n           printf(\"SOCK_CLOEXEC\");\n       if ((flags \u0026 SOCK_CLOEXEC) \u0026\u0026 (flags \u0026 SOCK_NONBLOCK))\n           printf(\" \");\n       if (flags \u0026 SOCK_NONBLOCK)\n           printf(\"SOCK_NONBLOCK\");\n       printf(\")\");\n   }\n   printf(\"\\n\");\n\n#if USE_SOCKETCALL\n   long args[6];\n\n   args[0] \u003d fd;\n   args[1] \u003d (long) sockaddr;\n   args[2] \u003d (long) addrlen;\n   args[3] \u003d flags;\n\n   return syscall(SYS_socketcall, SYS_ACCEPT4, args);\n#else\n   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);\n#endif\n}\n\n/**********************************************************************/\n\nstatic int\ndo_test(int lfd, struct sockaddr_in *conn_addr,\n       int closeonexec_flag, int nonblock_flag)\n{\n   int connfd, acceptfd;\n   int fdf, flf, fdf_pass, flf_pass;\n   struct sockaddr_in claddr;\n   socklen_t addrlen;\n\n   printf(\"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\n\");\n\n   connfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (connfd \u003d\u003d -1)\n       die(\"socket\");\n   if (connect(connfd, (struct sockaddr *) conn_addr,\n               sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"connect\");\n\n   addrlen \u003d sizeof(struct sockaddr_in);\n   acceptfd \u003d accept4(lfd, (struct sockaddr *) \u0026claddr, \u0026addrlen,\n                      closeonexec_flag | nonblock_flag);\n   if (acceptfd \u003d\u003d -1) {\n       perror(\"accept4()\");\n       close(connfd);\n       return 0;\n   }\n\n   fdf \u003d fcntl(acceptfd, F_GETFD);\n   if (fdf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   fdf_pass \u003d ((fdf \u0026 FD_CLOEXEC) !\u003d 0) \u003d\u003d\n              ((closeonexec_flag \u0026 SOCK_CLOEXEC) !\u003d 0);\n   printf(\"Close-on-exec flag is %sset (%s); \",\n           (fdf \u0026 FD_CLOEXEC) ? \"\" : \"not \",\n           fdf_pass ? \"OK\" : \"failed\");\n\n   flf \u003d fcntl(acceptfd, F_GETFL);\n   if (flf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   flf_pass \u003d ((flf \u0026 O_NONBLOCK) !\u003d 0) \u003d\u003d\n              ((nonblock_flag \u0026 SOCK_NONBLOCK) !\u003d0);\n   printf(\"nonblock flag is %sset (%s)\\n\",\n           (flf \u0026 O_NONBLOCK) ? \"\" : \"not \",\n           flf_pass ? \"OK\" : \"failed\");\n\n   close(acceptfd);\n   close(connfd);\n\n   printf(\"Test result: %s\\n\", (fdf_pass \u0026\u0026 flf_pass) ? \"PASS\" : \"FAIL\");\n   return fdf_pass \u0026\u0026 flf_pass;\n}\n\nstatic int\ncreate_listening_socket(int port_num)\n{\n   struct sockaddr_in svaddr;\n   int lfd;\n   int optval;\n\n   memset(\u0026svaddr, 0, sizeof(struct sockaddr_in));\n   svaddr.sin_family \u003d AF_INET;\n   svaddr.sin_addr.s_addr \u003d htonl(INADDR_ANY);\n   svaddr.sin_port \u003d htons(port_num);\n\n   lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (lfd \u003d\u003d -1)\n       die(\"socket\");\n\n   optval \u003d 1;\n   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026optval,\n                  sizeof(optval)) \u003d\u003d -1)\n       die(\"setsockopt\");\n\n   if (bind(lfd, (struct sockaddr *) \u0026svaddr,\n            sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"bind\");\n\n   if (listen(lfd, 5) \u003d\u003d -1)\n       die(\"listen\");\n\n   return lfd;\n}\n\nint\nmain(int argc, char *argv[])\n{\n   struct sockaddr_in conn_addr;\n   int lfd;\n   int port_num;\n   int passed;\n\n   passed \u003d 1;\n\n   port_num \u003d (argc \u003e 1) ? atoi(argv[1]) : PORT_NUM;\n\n   memset(\u0026conn_addr, 0, sizeof(struct sockaddr_in));\n   conn_addr.sin_family \u003d AF_INET;\n   conn_addr.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n   conn_addr.sin_port \u003d htons(port_num);\n\n   lfd \u003d create_listening_socket(port_num);\n\n   if (!do_test(lfd, \u0026conn_addr, 0, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, 0, SOCK_NONBLOCK))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))\n       passed \u003d 0;\n\n   close(lfd);\n\n   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);\n}\n\n[mtk.manpages@gmail.com: rewrote changelog, updated test program]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f0f598a0069d1ab072375965a4b69137233169c",
      "tree": "00cb9320e0caef179d6075b54fa611de6551e3e2",
      "parents": [
        "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
        "c26156b2534c75bb3cdedf76f6ad1340971cf5bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: hold extra reference to bio in blk_rq_map_user_iov()\n  relay: fix cpu offline problem\n  Release old elevator on change elevator\n  block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT\u003dy and nash\n  block/md: fix md autodetection\n  block: make add_partition() return pointer to hd_struct\n  block: fix add_partition() error path\n"
    },
    {
      "commit": "72b51a6b4d803381f16d819df392dd1efd1c7181",
      "tree": "7e27a03c10cb2f5e6593dd599b3c8b0bcd0f9ee9",
      "parents": [
        "8c60bfb0666952728b3be73ef9bc133d686aebba",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kernel/profile.c: fix section mismatch warning\n  function tracing: fix wrong pos computing when read buffer has been fulfilled\n  tracing: fix mmiotrace resizing crash\n  ring-buffer: no preempt for sched_clock()\n  ring-buffer: buffer record on/off switch\n"
    },
    {
      "commit": "ba32929a91fe2c0628f5be62d1597b379c8d3062",
      "tree": "09ea54ed2d2299d25b92fee6a6dde4d7527a3d37",
      "parents": [
        "eb60fa1066622ddb2278732cf61e0c4544e82c6f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 15:29:58 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "block: make add_partition() return pointer to hd_struct\n\nMake add_partition() return pointer to the new hd_struct on success\nand ERR_PTR() value on failure.  This change will be used to fix md\nautodetection bug.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "847e9170c77d3b4f57822ae1f4cf4f65c65a8254",
      "tree": "23f931fa2c3f9cf967deb638fed9804806d07357",
      "parents": [
        "72eb8c6747b49e41fd2b042510f03ac7c13426fc",
        "5f9021cfdc3524a4c5e3d7ae2d049eb7adcd6776"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 07:53:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 07:53:25 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)\n  rtnetlink: propagate error from dev_change_flags in do_setlink()\n  isdn: remove extra byteswap in isdn_net_ciscohdlck_slarp_send_reply\n  Phonet: refuse to send bigger than MTU packets\n  e1000e: fix IPMI traffic\n  e1000e: fix warn_on reload after phy_id error\n  phy: fix phy address bug\n  e100: fix dma error in direction for mapping\n  igb: use dev_printk instead of printk\n  qla3xxx: Cleanup: Fix link print statements.\n  igb: Use device_set_wakeup_enable\n  e1000: Use device_set_wakeup_enable\n  e1000e: Use device_set_wakeup_enable\n  via-velocity: enable perfect filtering for multicast packets\n  phy: Add support for Marvell 88E1118 PHY\n  mlx4_en: Pause parameters per port\n  phylib: fix premature freeing of struct mii_bus\n  atl1: Do not enumerate options unsupported by chip\n  atl1e: fix broken multicast by removing unnecessary crc inversion\n  gianfar: Fix DMA unmap invocations\n  net/ucc_geth: Fix oops in uec_get_ethtool_stats()\n  ...\n"
    },
    {
      "commit": "b42ccbc521f2acad48eb96b32883efe2f3e16b45",
      "tree": "85f45ef13f3c409850431a52fd5e04ff3e826e0c",
      "parents": [
        "d659fc14cbd39fef625072819c6968044975fda7",
        "131d3a7a009d56a96cc7117b4e9d0c90c2e2a1dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 19:02:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 19:02:48 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: don\u0027t grab devices with no input\n  HID: fix radio-mr800 hidquirks\n  HID: fix kworld fm700 radio hidquirks\n  HID: fix start/stop cycle in usbhid driver\n  HID: use single threaded work queue for hid_compat\n  HID: map macbook keys for \"Expose\" and \"Dashboard\"\n  HID: support for new unibody macbooks\n  HID: fix locking in hidraw_open()\n"
    },
    {
      "commit": "8f7b0ba1c853919b85b54774775f567f30006107",
      "tree": "1acd2b7ed5ed0de3eecfff9da5da4e779731f8a8",
      "parents": [
        "0d3b71009737511ea937ac405205fd8214b898bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Nov 15 01:15:43 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:26:44 2008 -0800"
      },
      "message": "Fix inotify watch removal/umount races\n\nInotify watch removals suck violently.\n\nTo kick the watch out we need (in this order) inode-\u003einotify_mutex and\nih-\u003emutex.  That\u0027s fine if we have a hold on inode; however, for all\nother cases we need to make damn sure we don\u0027t race with umount.  We can\n*NOT* just grab a reference to a watch - inotify_unmount_inodes() will\nhappily sail past it and we\u0027ll end with reference to inode potentially\noutliving its superblock.\n\nIdeally we just want to grab an active reference to superblock if we\ncan; that will make sure we won\u0027t go into inotify_umount_inodes() until\nwe are done.  Cleanup is just deactivate_super().\n\nHowever, that leaves a messy case - what if we *are* racing with\numount() and active references to superblock can\u0027t be acquired anymore?\nWe can bump -\u003es_count, grab -\u003es_umount, which will almost certainly wait\nuntil the superblock is shut down and the watch in question is pining\nfor fjords.  That\u0027s fine, but there is a problem - we might have hit the\nwindow between -\u003es_active getting to 0 / -\u003es_count - below S_BIAS (i.e.\nthe moment when superblock is past the point of no return and is heading\nfor shutdown) and the moment when deactivate_super() acquires\n-\u003es_umount.\n\nWe could just do drop_super() yield() and retry, but that\u0027s rather\nantisocial and this stuff is luser-triggerable.  OTOH, having grabbed\n-\u003es_umount and having found that we\u0027d got there first (i.e.  that\n-\u003es_root is non-NULL) we know that we won\u0027t race with\ninotify_umount_inodes().\n\nSo we could grab a reference to watch and do the rest as above, just\nwith drop_super() instead of deactivate_super(), right? Wrong.  We had\nto drop ih-\u003emutex before we could grab -\u003es_umount.  So the watch\ncould\u0027ve been gone already.\n\nThat still can be dealt with - we need to save watch-\u003ewd, do idr_find()\nand compare its result with our pointer.  If they match, we either have\nthe damn thing still alive or we\u0027d lost not one but two races at once,\nthe watch had been killed and a new one got created with the same -\u003ewd\nat the same address.  That couldn\u0027t have happened in inotify_destroy(),\nbut inotify_rm_wd() could run into that.  Still, \"new one got created\"\nis not a problem - we have every right to kill it or leave it alone,\nwhatever\u0027s more convenient.\n\nSo we can use idr_find(...) \u003d\u003d watch \u0026\u0026 watch-\u003einode-\u003ei_sb \u003d\u003d sb as\n\"grab it and kill it\" check.  If it\u0027s been our original watch, we are\nfine, if it\u0027s a newcomer - nevermind, just pretend that we\u0027d won the\nrace and kill the fscker anyway; we are safe since we know that its\nsuperblock won\u0027t be going away.\n\nAnd yes, this is far beyond mere \"not very pretty\"; so\u0027s the entire\nconcept of inotify to start with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "537a2f889ac847468c9aa040910c247b218302a7",
      "tree": "ea21b1dfd11e4234b108059c84c2a42887dc9254",
      "parents": [
        "fab349cceb25f92bac1400601c5ef8345a166958",
        "272966c070237c8cb540fe67e06df51bc6ea9cc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:10:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:10:32 2008 -0800"
      },
      "message": "Merge branch \u0027sh/for-2.6.28\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh/for-2.6.28\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  serial: sh-sci: Reorder the SCxTDR write after the TDxE clear.\n  sh: __copy_user function can corrupt the stack in case of exception\n  sh: Fixed the TMU0 reload value on resume\n  sh: Don\u0027t factor in PAGE_OFFSET for valid_phys_addr_range() check.\n  sh: early printk port type fix\n  i2c: fix i2c-sh_mobile rx underrun\n  sh: Provide a sane valid_phys_addr_range() to prevent TLB reset with PMB.\n  usb: r8a66597-hcd: fix wrong data access in SuperH on-chip USB\n  fix sci type for SH7723\n  serial: sh-sci: fix cannot work SH7723 SCIFA\n  sh: Handle fixmap TLB eviction more coherently.\n"
    },
    {
      "commit": "d091c2f58ba32029495a933b721e8e02fbd12caa",
      "tree": "9f20dc4cc77e7178270fb1d5946918fe44d4e3eb",
      "parents": [
        "4d41e121664893e5e338f41fbd36be4a2578c8d6"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Nov 12 21:16:43 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 11:43:37 2008 -0800"
      },
      "message": "Add \u0027pr_fmt()\u0027 format modifier to pr_xyz macros.\n\nA common reason for device drivers to implement their own printk macros\nis the lack of a printk prefix with the standard pr_xyz macros.\nIntroduce a pr_fmt() macro that is applied for every pr_xyz macro to the\nformat string.\n\nThe most common use of the pr_fmt macro would be to add the name of the\ndevice driver to all pr_xyz messages in a source file.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8f6fbf62de37cbc2e179176ac7010d5f4396b67",
      "tree": "ac22d719c3c93d24b7eeda395b3271be60bfc661",
      "parents": [
        "1fa989e80a9a104bf3b81842a5f4c1867d7aa9c4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 01:38:36 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 13 23:19:10 2008 -0800"
      },
      "message": "lockdep: include/linux/lockdep.h - fix warning in net/bluetooth/af_bluetooth.c\n\nfix this warning:\n\n  net/bluetooth/af_bluetooth.c:60: warning: ‘bt_key_strings’ defined but not used\n  net/bluetooth/af_bluetooth.c:71: warning: ‘bt_slock_key_strings’ defined but not used\n\nthis is a lockdep macro problem in the !LOCKDEP case.\n\nWe cannot convert it to an inline because the macro works on multiple types,\nbut we can mark the parameter used.\n\n[ also clean up a misaligned tab in sock_lock_init_class_and_name() ]\n\n[ also remove #ifdefs from around af_family_clock_key strings - which\n  were certainly added to get rid of the ugly build warnings. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "352d026338378b1f13f044e33c1047da6e470056",
      "tree": "92e178cc234bfd19f15e8623b1b92d21918cb3fa",
      "parents": [
        "0047ca0a45c6a481abd467fb52d2a480ffc8c6b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 29 15:16:58 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 13 14:45:00 2008 -0800"
      },
      "message": "USB: don\u0027t register endpoints for interfaces that are going away\n\nThis patch (as1155) fixes a bug in usbcore.  When interfaces are\ndeleted, either because the device was disconnected or because of a\nconfiguration change, the extra attribute files and child endpoint\ndevices may get left behind.  This is because the core removes them\nbefore calling device_del().  But during device_del(), after the\ndriver is unbound the core will reinstall altsetting 0 and recreate\nthose extra attributes and children.\n\nThe patch prevents this by adding a flag to record when the interface\nis in the midst of being unregistered.  When the flag is set, the\nattribute files and child devices will not be created.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable \u003cstable@kernel.org\u003e [2.6.27, 2.6.26, 2.6.25]\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "d7de4c1dc3a2faca0bf05d9e342f885cb2696766",
      "tree": "c7ea498a84b9319443af8cafba5deb6602dfb3a5",
      "parents": [
        "02f5621042e3f7e2fb6c741cbe5ee7c1f3caf354"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Nov 13 20:40:12 2008 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Nov 13 20:49:02 2008 +0200"
      },
      "message": "slab: document SLAB_DESTROY_BY_RCU\n\nExplain this SLAB_DESTROY_BY_RCU thing...\n\n[hugh@veritas.com: add a pointer to comment in mm/slab.c]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "437184ae8bd1ef923a40b009e37801deae66ad55",
      "tree": "9b9fc2b295998135334c9a6fa32efff589486187",
      "parents": [
        "a96d6ef34751093797c3a6c6080733dd7af23d35"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Tue Nov 04 13:31:38 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Nov 13 10:31:36 2008 +0100"
      },
      "message": "HID: map macbook keys for \"Expose\" and \"Dashboard\"\n\nOn macbooks there are specific keys for the user-space functions Expose\nand Dashboard, which currently has no counterpart in input.h. This patch\nadds KEY_SCALE and KEY_DASHBOARD, and maps the keyboard accordingly.\n\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4e17e1db96474af5620e3259754df4cb1c46521c",
      "tree": "cc662ebf5158b407495a4939b0ea3d16b93a1b7e",
      "parents": [
        "e0a29382c6f51c278a7e9a788917ff9182f3dba6"
      ],
      "author": {
        "name": "Rodolfo Giometti",
        "email": "giometti@linux.it",
        "time": "Wed Nov 12 13:27:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:18 2008 -0800"
      },
      "message": "Add c2 port support\n\nC2port implements a two wire serial communication protocol (bit\nbanging) designed to enable in-system programming, debugging, and\nboundary-scan testing on low pin-count Silicon Labs devices.\n\nCurrently this code supports only flash programming through sysfs\ninterface but extensions shoud be easy to add.\n\nSigned-off-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "077eaf5b40ecb2c345d82f02275c20e965dfa3e5",
      "tree": "9f29121591ffb69cef527e4de11d183b6bf01f6d",
      "parents": [
        "a412ae3fb90ab49072b82c8cfa1e3e60d2b27005"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 12 13:27:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:18 2008 -0800"
      },
      "message": "rtc: rtc-wm8350: add support for WM8350 RTC\n\nThis adds support for the RTC provided by the Wolfson Microelectronics\nWM8350.\n\nThis driver was originally written by Graeme Gregory and Liam Girdwood,\nthough it has been modified since then to update it to current mainline\ncoding standards and for API completeness.\n\n[akpm@linux-foundation.org: s/schedule_timeout_interruptible/schedule_timeout_uninterruptible/ to prevent bogus timeout when signal_pending()]\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Liam Girdwood \u003clinux@wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b76f90b526737070302a127c710263e2ac707676",
      "tree": "360e2151e924c45dbac7a41fb77b0ec1cc5a91f8",
      "parents": [
        "afef80b3d87cae574b8c6b763505f25b74d254ef"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 12 13:26:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "remove ratelimt()\n\nIt mistakenly assumes that a static local in an inlined function is a\nkernel-wide singleton.  It also has no callers, so let\u0027s remove it.\n\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45a9524a61267a60aef3c273b97284e93b15f4d7",
      "tree": "80e7ceee6758bd7ea76cf5505aa2f41d3376b0ba",
      "parents": [
        "4416662ece4e88aca687b28d7c059336b47478ba",
        "621a0d5207c18012cb39932f2d9830a11a6cb03d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 12:00:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 12:00:15 2008 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimer: clean up unused callback modes\n"
    },
    {
      "commit": "08c1184fa2b785f23453b8cbb43f86b409cde3a6",
      "tree": "f3d529d72ecdbf3f6ee1d245a6d9b099408fc259",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10",
        "d1876ba4dead6ace7e9fbf16f83397e6486d0dfe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 10:24:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 10:24:46 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (47 commits)\n  ACPI: pci_link: remove acpi_irq_balance_set() interface\n  fujitsu-laptop: Add DMI callback for Lifebook S6420\n  ACPI: EC: Don\u0027t do transaction from GPE handler in poll mode.\n  ACPI: EC: lower interrupt storm treshold\n  ACPICA: Use spinlock for acpi_{en|dis}able_gpe\n  ACPI: EC: restart failed command\n  ACPI: EC: wait for last write gpe\n  ACPI: EC: make kernel messages more useful when GPE storm is detected\n  ACPI: EC: revert msleep patch\n  thinkpad_acpi: fingers off backlight if video.ko is serving this functionality\n  sony-laptop: fingers off backlight if video.ko is serving this functionality\n  msi-laptop: fingers off backlight if video.ko is serving this functionality\n  fujitsu-laptop: fingers off backlight if video.ko is serving this functionality\n  eeepc-laptop: fingers off backlight if video.ko is serving this functionality\n  compal: fingers off backlight if video.ko is serving this functionality\n  asus-acpi: fingers off backlight if video.ko is serving this functionality\n  Acer-WMI: fingers off backlight if video.ko is serving this functionality\n  ACPI video: if no ACPI backlight support, use vendor drivers\n  ACPI: video: Ignore devices that aren\u0027t present in hardware\n  Delete an unwanted return statement at evgpe.c\n  ...\n"
    },
    {
      "commit": "621a0d5207c18012cb39932f2d9830a11a6cb03d",
      "tree": "0e18c30c91620108b413197f9bc153ceb6e430ec",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 12 09:36:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 09:54:40 2008 +0100"
      },
      "message": "hrtimer: clean up unused callback modes\n\nImpact: cleanup\n\ngit grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually\nunused.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1a22f08dbd0e77c7cf45b5f527f93131d0b591b6",
      "tree": "c3f1309b26c6c8072b1194d387931ad331a36599",
      "parents": [
        "acca4f4d9bd657e8bc7e1665ba5077465138f133"
      ],
      "author": {
        "name": "Yoshihiro Shimoda",
        "email": "shimoda.yoshihiro@renesas.com",
        "time": "Tue Nov 11 12:19:05 2008 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Nov 12 12:29:56 2008 +0900"
      },
      "message": "serial: sh-sci: fix cannot work SH7723 SCIFA\n\nSH7723 has SCIFA. This module is similer SCI register map, but it has FIFO.\nSo this patch adds new type(PORT_SCIFA) and change some type checking.\n\nSigned-off-by: Yoshihiro Shimoda \u003cshimoda.yoshihiro@renesas.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "f398778aa336a2919ee04ba45d915007230c6957",
      "tree": "c7244cd1d4af8d99c861b21ebcaeabf23e355b9f",
      "parents": [
        "9b5a56ddfd615a27e3a0856ceae1592a24021e42",
        "2dba1b5d87e08a294da5cdfa4d32908000e9b085"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Nov 11 21:15:50 2008 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Nov 11 21:15:50 2008 -0500"
      },
      "message": "Merge branch \u0027video\u0027 into release\n\nConflicts:\n\tDocumentation/kernel-parameters.txt\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3e0fe364835cecc8560cf32bb9609f4c56c5d9fa",
      "tree": "be2236bd4f6f16aee24cca5217449dc03a6c1e85",
      "parents": [
        "e911d27af43e7d28d59a96a4682e8942f0661469",
        "32836259ff25ce97010569706cd33ba94de81d62"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Nov 11 21:14:11 2008 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Nov 11 21:14:11 2008 -0500"
      },
      "message": "Merge branch \u0027misc\u0027 into release\n"
    },
    {
      "commit": "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87",
      "tree": "826aa8fff448bc3dcd167d3623fbcc311a768c1f",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10",
        "a358324466b171e145df20bdb74fe81759906de6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "message": "Merge branch \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "a358324466b171e145df20bdb74fe81759906de6",
      "tree": "50b2b0b72ff40da6be232eb85d33a203612f3164",
      "parents": [
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:01:42 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:02:04 2008 -0500"
      },
      "message": "ring-buffer: buffer record on/off switch\n\nImpact: enable/disable ring buffer recording API added\n\nSeveral kernel developers have requested that there be a way to stop\nrecording into the ring buffers with a simple switch that can also\nbe enabled from userspace. This patch addes a new kernel API to the\nring buffers called:\n\n tracing_on()\n tracing_off()\n\nWhen tracing_off() is called, all ring buffers will not be able to record\ninto their buffers.\n\ntracing_on() will enable the ring buffers again.\n\nThese two act like an on/off switch. That is, there is no counting of the\nnumber of times tracing_off or tracing_on has been called.\n\nA new file is added to the debugfs/tracing directory called\n\n  tracing_on\n\nThis allows for userspace applications to also flip the switch.\n\n  echo 0 \u003e debugfs/tracing/tracing_on\n\ndisables the tracing.\n\n  echo 1 \u003e /debugfs/tracing/tracing_on\n\nenables it.\n\nNote, this does not disable or enable any tracers. It only sets or clears\na flag that needs to be set in order for the ring buffers to write to\ntheir buffers. It is a global flag, and affects all ring buffers.\n\nThe buffers start out with tracing_on enabled.\n\nThere are now three flags that control recording into the buffers:\n\n tracing_on: which affects all ring buffer tracers.\n\n buffer-\u003erecord_disabled: which affects an allocated buffer, which may be set\n     if an anomaly is detected, and tracing is disabled.\n\n cpu_buffer-\u003erecord_disabled: which is set by tracing_stop() or if an\n     anomaly is detected. tracing_start can not reenable this if\n     an anomaly occurred.\n\nThe userspace debugfs/tracing/tracing_enabled is implemented with\ntracing_stop() but the user space code can not enable it if the kernel\ncalled tracing_stop().\n\nUserspace can enable the tracing_on even if the kernel disabled it.\nIt is just a switch used to stop tracing if a condition was hit.\ntracing_on is not for protecting critical areas in the kernel nor is\nit for stopping tracing if an anomaly occurred. This is because userspace\ncan reenable it at any time.\n\nSide effect: With this patch, I discovered a dead variable in ftrace.c\n  called tracing_on. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "2f96cb57cde9957bac0991c712068d29364b2ac9",
      "tree": "60e3f985b9e865f3a1fdda131599fa84159cc73e",
      "parents": [
        "09eb3b5b1bcab7b25e9dd57e90ee9753adf7afe2",
        "2002c69595a092518107f7e3c1294c9710bc92ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: release buddies on yield\n  fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n  sched: clean up debug info\n"
    },
    {
      "commit": "0906dd9df2f79042cfa82d8388895be7cbe7a51b",
      "tree": "98344a1ecf258320008846434475e58c70f479c3",
      "parents": [
        "8eb04cf3402c59e84af9d2e86149edb4044f9a9e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Nov 11 14:51:23 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 09:30:23 2008 -0800"
      },
      "message": "telephony: trivial: fix up email address\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a4cf2c8786219b4871c37240ab9787a61d843ee",
      "tree": "a126516733f3a757711754bbac189417c79d8bcb",
      "parents": [
        "4694516d1987303dd83bfd0efdd36fa5b65d701b",
        "df02c6ff2e3937379b31ea161b53229134fe92f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 09:20:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 09:20:29 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  dsa: fix master interface allmulti/promisc handling\n  dsa: fix skb-\u003epkt_type when mac address of slave interface differs\n  net: fix setting of skb-\u003etail in skb_recycle_check()\n  net: fix /proc/net/snmp as memory corruptor\n  mac80211: fix a buffer overrun in station debug code\n  netfilter: payload_len is be16, add size of struct rather than size of pointer\n  ipv6: fix ip6_mr_init error path\n  [4/4] dca: fixup initialization dependency\n  [3/4] I/OAT: fix async_tx.callback checking\n  [2/4] I/OAT: fix dma_pin_iovec_pages() error handling\n  [1/4] I/OAT: fix channel resources free for not allocated channels\n  ssb: Fix DMA-API compilation for non-PCI systems\n  SSB: hide empty sub menu\n  vlan: Fix typos in proc output string\n  [netdrvr] usb/hso: Cleanup rfkill error handling\n  sfc: Correct address of gPXE boot configuration in EEPROM\n  el3_common_init() should be __devinit, not __init\n  hso: rfkill type should be WWAN\n  mlx4_en: Start port error flow bug fix\n  af_key: mark policy as dead before destroying\n"
    },
    {
      "commit": "ad474caca3e2a0550b7ce0706527ad5ab389a4d4",
      "tree": "6d4e5cbcee3a85230317a33d66655ece0c873f5c",
      "parents": [
        "5ac5c4d604bf894ef672a7971d03fefdc7ea7e49"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Nov 10 15:39:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 08:01:43 2008 +0100"
      },
      "message": "fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n\nImpact: fix hang/crash on ia64 under high load\n\nThis is ugly, but the simplest patch by far.\n\nUnlike other similar routines, account_group_exec_runtime() could be\ncalled \"implicitly\" from within scheduler after exit_notify(). This\nmeans we can race with the parent doing release_task(), we can\u0027t just\ncheck -\u003esignal !\u003d NULL.\n\nChange __exit_signal() to do spin_unlock_wait(\u0026task_rq(tsk)-\u003elock)\nbefore __cleanup_signal() to make sure -\u003esignal can\u0027t be freed under\ntask_rq(tsk)-\u003elock. Note that task_rq_unlock_wait() doesn\u0027t care\nabout the case when tsk changes cpu/rq under us, this should be OK.\n\nThanks to Ingo who nacked my previous buggy patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Doug Chapman \u003cdoug.chapman@hp.com\u003e\n"
    },
    {
      "commit": "fd0fcf5c29dd0339c5f5d86eb2cbe9fdad5bcd73",
      "tree": "3c03b581b0e069d45d4d35f234c16b663cdfa2af",
      "parents": [
        "9581483444d002e0b3807d9e66f552f372a6fc5e"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Nov 06 10:49:21 2008 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 10 13:50:19 2008 -0800"
      },
      "message": "ssb: Fix DMA-API compilation for non-PCI systems\n\nThis fixes compilation of the SSB DMA-API code on non-PCI platforms.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a8bc22332ee6ea49137508467a76aa7f4367719",
      "tree": "f41c62dc99c4249d592935b4659569081d4a190a",
      "parents": [
        "f7160c7573615ec82c691e294cf80d920b5d588d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 14:48:21 2008 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 10 08:04:47 2008 -0800"
      },
      "message": "libata: revert convert-to-block-tagging patches\n\nThis patch reverts the following three commits which convert libata to\nuse block layer tagging.\n\n 43a49cbdf31e812c0d8f553d433b09b421f5d52c\n e013e13bf605b9e6b702adffbe2853cfc60e7806\n 2fca5ccf97d2c28bcfce44f5b07d85e74e3cd18e\n\nAlthough using block layer tagging is the right direction, due to the\ntight coupling among tag number, data structure allocation and\nhardware command slot allocation, libata doesn\u0027t work correctly with\nthe current conversion.\n\nThe biggest problem is guaranteeing that tag 0 is always used for\nnon-NCQ commands.  Due to the way blk-tag is implemented and how SCSI\nstarts and finishes requests, such guarantee can\u0027t be made.  I\u0027m not\nsure whether this would actually break any low level driver but it\ndoesn\u0027t look like a good idea to break such assumption given the\nfrailty of ATA controllers.\n\nSo, for the time being, keep using the old dumb in-libata qc\nallocation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axobe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6d87f4bd259cf33e092cd1a8fde05f291c47af1",
      "tree": "abaa66af3c80fb18a20004b8d97261c680551792",
      "parents": [
        "8b805ef617cf0e02f6d18b891f8deb6246421b01"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 13:18:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 22:23:49 2008 +0100"
      },
      "message": "genirq: keep affinities set from userspace across free/request_irq()\n\nImpact: preserve user-modified affinities on interrupts\n\nKumar Galak noticed that commit\n18404756765c713a0be4eb1082920c04822ce588 (genirq: Expose default irq\naffinity mask (take 3))\n\noverrides an already set affinity setting across a free /\nrequest_irq(). Happens e.g. with ifdown/ifup of a network device.\n\nChange the logic to mark the affinities as set and keep them\nintact. This also fixes the unlocked access to irq_desc in\nirq_select_affinity() when called from irq_affinity_proc_write()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb56d98e2a7530615899597551db685d68a2e852",
      "tree": "458a2dc64385f35799c55971ea7b3fe1a2ec218f",
      "parents": [
        "6209344f5a3795d34b7f2c0061f49802283b6bdd",
        "984f2f377fdfd098f5ae58d09ee04d5e29e6112b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "message": "Merge branch \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpumask: introduce new API, without changing anything, v3\n  cpumask: new API, v2\n  cpumask: introduce new API, without changing anything\n"
    },
    {
      "commit": "984f2f377fdfd098f5ae58d09ee04d5e29e6112b",
      "tree": "6f6ea07057f5680586a8ac6f77700c118f253bcb",
      "parents": [
        "cd83e42c6b0413dcbb548c2ead799111ff7e6a13"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Nov 08 20:24:19 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 21:09:54 2008 +0100"
      },
      "message": "cpumask: introduce new API, without changing anything, v3\n\nImpact: cleanup\n\nClean up based on feedback from Andrew Morton and others:\n\n - change to inline functions instead of macros\n - add __init to bootmem method\n - add a missing debug check\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "058e3739f6b0753696db1952378de9e8d2a11735",
      "tree": "2261c23bf8c77e51628310057b4dde718e487c53",
      "parents": [
        "02cabab4a8a7ef2d51189d5dda84516d36662910"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Sun Nov 09 00:27:53 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 11:17:33 2008 -0800"
      },
      "message": "clarify usage expectations for cnt32_to_63()\n\nCurrently, all existing users of cnt32_to_63() are fine since the CPU\narchitectures where it is used don\u0027t do read access reordering, and user\nmode preemption is disabled already.  It is nevertheless a good idea to\nbetter elaborate usage requirements wrt preemption, and use an explicit\nmemory barrier on SMP to avoid different CPUs accessing the counter\nvalue in the wrong order.  On UP a simple compiler barrier is\nsufficient.\n\nSigned-off-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1b268630875a7713b5d468a0c03403c5b721c8e",
      "tree": "2ff8ad7879d2ab005820bd5cf88417456daf2d5e",
      "parents": [
        "493890e75d98810a3470b4aae23be628ee5e9667"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sat Nov 08 21:37:46 2008 +0100"
      },
      "committer": {
        "name": "Pierre Ossman",
        "email": "drzeus@drzeus.cx",
        "time": "Sat Nov 08 21:37:46 2008 +0100"
      },
      "message": "mmc: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-Off-By: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\n"
    },
    {
      "commit": "c3d6de698c84efdbdd3781b7058bcc339ab43da8",
      "tree": "07e08d88bbaaef8a5a1dd58b9d19f7c860442d3a",
      "parents": [
        "22c13f9d8179f4c9caecfcb60a95214562b9addc"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 01 17:37:55 2008 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Nov 07 23:57:55 2008 -0500"
      },
      "message": "ACPI video: if no ACPI backlight support, use vendor drivers\n\nIf an ACPI graphics device supports backlight brightness functions (cmp. with\nlatest ACPI spec Appendix B), let the ACPI video driver control backlight and\nswitch backlight control off in vendor specific ACPI drivers (asus_acpi,\nthinkpad_acpi, eeepc, fujitsu_laptop, msi_laptop, sony_laptop, acer-wmi).\n\nCurrently it is possible to load above drivers and let both poke on the\nbrightness HW registers, the video and vendor specific ACPI drivers -\u003e bad.\n\nThis patch provides the basic support to check for BIOS capabilities before\ndriver loading time. Driver specific modifications are in separate follow up\npatches.\n\n\"acpi_backlight\u003dvendor\"\n\tPrever vendor driver over ACPI driver for backlight.\n\"acpi_backlight\u003dvideo\" (default)\n\tPrever ACPI driver over vendor driver for backlight.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "8ec96e7bba2b8fa339b666354dffe3f47b9fa074",
      "tree": "133e83776ab622259b5a8f852f75934822c09c93",
      "parents": [
        "cb110171a65c5a2d85ec814d498986db611040fd",
        "88e7df0b7ee717f9db3333fb1248827bbdb2d4d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 07 09:18:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 07 09:18:14 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:\n  PCI: fix range check on mmapped sysfs resource files\n  PCI: remove excess kernel-doc notation\n  PCI: annotate return value of pci_ioremap_bar with __iomem\n  PCI: fix VPD limit quirk for Broadcom 5708S\n"
    },
    {
      "commit": "52c642f33b14bfa1b00ef2b68296effb34a573f3",
      "tree": "508a49591138e91733ad228ae6a367d91b318b39",
      "parents": [
        "14800984706bf6936bbec5187f736e928be5c218"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 16:09:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 16:09:23 2008 +0100"
      },
      "message": "sched: fine-tune SD_SIBLING_INIT\n\nfine-tune the HT sched-domains parameters as well.\n\nOn a HT capable box, this increases lat_ctx performance from 23.87\nusecs to 1.49 usecs:\n\n # before\n\n $ ./lat_ctx -s 0 2\n\n   \"size\u003d0k ovr\u003d1.89\n    2 23.87\n\n # after\n\n $ ./lat_ctx -s 0 2\n\n   \"size\u003d0k ovr\u003d1.84\n     2 1.49\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14800984706bf6936bbec5187f736e928be5c218",
      "tree": "09b462191420a5652601a30711211693fb0e3239",
      "parents": [
        "ca3273f9646694e0419cfb9d6c12deb1c9aff27c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Nov 07 15:26:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 15:35:11 2008 +0100"
      },
      "message": "sched: fine-tune SD_MC_INIT\n\nTune SD_MC_INIT the same way as SD_CPU_INIT:\nunset SD_BALANCE_NEWIDLE, and set SD_WAKE_BALANCE.\n\nThis improves vmark by 5%:\n\nvmark         132102 125968 125497 messages/sec    avg 127855.66    .984\nvmark         139404 131719 131272 messages/sec    avg 134131.66   1.033\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n # *DOCUMENTATION*\n"
    },
    {
      "commit": "cd83e42c6b0413dcbb548c2ead799111ff7e6a13",
      "tree": "0110f8f39a8f88aacfbe4f0692b099373523edc0",
      "parents": [
        "2d3854a37e8b767a51aba38ed6d22817b0631e33"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Nov 07 11:12:29 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 12:52:30 2008 +0100"
      },
      "message": "cpumask: new API, v2\n\n- add cpumask_of()\n- add free_bootmem_cpumask_var()\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4bab0ea1d42dd1927af9df6fbf0003fc00617c50",
      "tree": "880cea7be13f71934f54a59c9fac9f196f8805c1",
      "parents": [
        "a15a82f42c5ee519d28f08c932803a9fd5168fc4",
        "ca409d6e08c35b01965d9211c61dbd216286f8ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 16:43:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 16:44:23 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  net: Fix recursive descent in __scm_destroy().\n  iwl3945: fix deadlock on suspend\n  iwl3945: do not send scan command if channel count zero\n  iwl3945: clear scanning bits upon failure\n  ath5k: correct handling of rx status fields\n  zd1211rw: Add 2 device IDs\n  Fix logic error in rfkill_check_duplicity\n  iwlagn: avoid sleep in softirq context\n  iwlwifi: clear scanning bits upon failure\n  Revert \"ath5k: honor FIF_BCN_PRBRESP_PROMISC in STA mode\"\n  tcp: Fix recvmsg MSG_PEEK influence of blocking behavior.\n  netfilter: netns ct: walk netns list under RTNL\n  ipv6: fix run pending DAD when interface becomes ready\n  net/9p: fix printk format warnings\n  net: fix packet socket delivery in rx irq handler\n  xfrm: Have af-specific init_tempsel() initialize family field of temporary selector\n"
    },
    {
      "commit": "e252f4db187ef02d06c8551069d944d327b8bb9a",
      "tree": "0e704cc34161fc839ef203fbf71106de52e19a7d",
      "parents": [
        "2e93960c4d712096902c16fe5511fc91502c2527",
        "7838c15b8dd18e78a523513749e5b54bda07b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Block: use round_jiffies_up()\n  Add round_jiffies_up and related routines\n  block: fix __blkdev_get() for removable devices\n  generic-ipi: fix the smp_mb() placement\n  blk: move blk_delete_timer call in end_that_request_last\n  block: add timer on blkdev_dequeue_request() not elv_next_request()\n  bio: define __BIOVEC_PHYS_MERGEABLE\n  block: remove unused ll_new_mergeable()\n"
    },
    {
      "commit": "067ab19923673e3d8c982d877bedb9d65c976c22",
      "tree": "b11c20e4b5a6671355924b656f9348d4ece5523f",
      "parents": [
        "7597bc94d6f3bdccb086ac7f2ad91292fdaee2a4",
        "9fcd18c9e63e325dbd2b4c726623f760788d5aa8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: re-tune balancing\n  sched: fix buddies for group scheduling\n  sched: backward looking buddy\n  sched: fix fair preempt check\n  sched: cleanup fair task selection\n"
    },
    {
      "commit": "3b53fbf4314594fa04544b02b2fc6e607912da18",
      "tree": "af88f6c7ecbdf06719c92cc8891f75f497b70555",
      "parents": [
        "518a09ef11f8454f4676125d47c3e775b300c6a5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 15:45:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 06 15:45:32 2008 -0800"
      },
      "message": "net: Fix recursive descent in __scm_destroy().\n\n__scm_destroy() walks the list of file descriptors in the scm_fp_list\npointed to by the scm_cookie argument.\n\nThose, in turn, can close sockets and invoke __scm_destroy() again.\n\nThere is nothing which limits how deeply this can occur.\n\nThe idea for how to fix this is from Linus.  Basically, we do all of\nthe fput()s at the top level by collecting all of the scm_fp_list\nobjects hit by an fput().  Inside of the initial __scm_destroy() we\nkeep running the list until it is empty.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7597bc94d6f3bdccb086ac7f2ad91292fdaee2a4",
      "tree": "17126979600f74f27b45669861808e577c305920",
      "parents": [
        "c36194871293100bd4b2ecb54ac9774d6e627aa2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 05 17:38:47 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:44:19 2008 -0800"
      },
      "message": "Fix accidental implicit cast in HR-timer conversion\n\nFix the hrtimer_add_expires_ns() function.  It should take a \u0027u64 ns\u0027 argument,\nbut rather takes an \u0027unsigned long ns\u0027 argument - which might only be 32-bits.\n\nOn FRV, this results in the kernel locking up because hrtimer_forward() passes\nthe result of a 64-bit multiplication to this function, for which the compiler\ndiscards the top 32-bits - something that didn\u0027t happen when ktime_add_ns() was\ncalled directly.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c36194871293100bd4b2ecb54ac9774d6e627aa2",
      "tree": "9fd6894103918f439d0e7ec35620e18018ccfa76",
      "parents": [
        "c3302931db090d87e9015c3a7ce5c97a7dd90f78",
        "dc8a0843a435b2c0891e7eaea64faaf1ebec9b11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [JFFS2] fix race condition in jffs2_lzo_compress()\n  [MTD] [NOR] Fix cfi_send_gen_cmd handling of x16 devices in x8 mode (v4)\n  [JFFS2] Fix lack of locking in thread_should_wake()\n  [JFFS2] Fix build failure with !CONFIG_JFFS2_FS_WRITEBUFFER\n  [MTD] [NAND] OMAP2: remove duplicated #include\n"
    }
  ],
  "next": "9c0aa1b87bf541affef519eb4879ce7c5a5941ae"
}
