)]}'
{
  "log": [
    {
      "commit": "da2b71edd8a7db44fe1746261410a981f3e03632",
      "tree": "4c84c8761590138cffb244eb54fb29263175a6cd",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Aug 23 13:42:51 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:39:33 2010 +0200"
      },
      "message": "sched: Move sched_avg_update() to update_cpu_load()\n\nCurrently sched_avg_update() (which updates rt_avg stats in the rq)\nis getting called from scale_rt_power() (in the load balance context)\nwhich doesn\u0027t take rq-\u003elock.\n\nFix it by moving the sched_avg_update() to more appropriate\nupdate_cpu_load() where the CFS load gets updated as well.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1282596171.2694.3.camel@sbsiddha-MOBL3\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd4d4fc4137502f88ee871fc015a934dc28535e3",
      "tree": "09dfa0627996ca80d0fcc936b6fbd5080ee6e9d7",
      "parents": [
        "608307e6de2631e37f55f106a7cbbc560cb12751",
        "9c37547ab62f88aac3e1e3c2065b611f811de9b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:17 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: use zalloc_cpumask_var() for gcwq-\u003emayday_mask\n  workqueue: fix GCWQ_DISASSOCIATED initialization\n  workqueue: Add a workqueue chapter to the tracepoint docbook\n  workqueue: fix cwq-\u003enr_active underflow\n  workqueue: improve destroy_workqueue() debuggability\n  workqueue: mark lock acquisition on worker_maybe_bind_and_lock()\n  workqueue: annotate lock context change\n  workqueue: free rescuer on destroy_workqueue\n"
    },
    {
      "commit": "9c37547ab62f88aac3e1e3c2065b611f811de9b5",
      "tree": "2a9c3655e25c93b4c3ce49c575d5d908045ebdd4",
      "parents": [
        "477a3c33d1efa0342a74bd02da2e049191993e2c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 31 11:18:34 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 31 11:18:34 2010 +0200"
      },
      "message": "workqueue: use zalloc_cpumask_var() for gcwq-\u003emayday_mask\n\nalloc_mayday_mask() was using alloc_cpumask_var() making\ngcwq-\u003emayday_mask contain garbage after initialization on\nCONFIG_CPUMASK_OFFSTACK\u003dy configurations.  This combined with the\npreviously fixed GCWQ_DISASSOCIATED initialization bug could make\nrescuers fall into infinite loop trying to bind to an offline cpu.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: CAI Qian \u003ccaiqian@redhat.com\u003e\n"
    },
    {
      "commit": "477a3c33d1efa0342a74bd02da2e049191993e2c",
      "tree": "03d4ae1338f47016fbad6ff131007e009959b4a8",
      "parents": [
        "7c38875a0d0a9b90eee66be79e36995c86acc70c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 31 10:54:35 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 31 10:54:35 2010 +0200"
      },
      "message": "workqueue: fix GCWQ_DISASSOCIATED initialization\n\ninit_workqueues() incorrectly marks workqueues for all possible CPUs\nassociated.  Combined with mayday_mask initialization bug, this can\nmake rescuers keep trying to bind to an offline gcwq indefinitely.\nFix init_workqueues() such that only online CPUs have their gcwqs have\nGCWQ_DISASSOCIATED cleared.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: CAI Qian \u003ccaiqian@redhat.com\u003e\n"
    },
    {
      "commit": "6f4dbeca1a5bac4552d49d9e7b774da9f6625e74",
      "tree": "15d1997a50a971b83c9c577299cbbd414fe512c4",
      "parents": [
        "2547d1d20f3a252567f974de8ce1c572a0815d5a",
        "25cc69ec34a563e943e85b3b68a79a8aac7f076d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:06:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:06:19 2010 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM QoS: Fix inline documentation.\n  PM QoS: Fix kzalloc() parameters swapped in pm_qos_power_open()\n"
    },
    {
      "commit": "2637d139fb9a1bd428a003b7671fda40a034854f",
      "tree": "7983e0776c95990a545f83275682614e16a71167",
      "parents": [
        "494e2fbe1f8bee22ab2070bd6f4d1a24f7d5fd8b",
        "288933c02b440621d9c8e7bb5f232cfb7bdef7df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 13:55:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 13:55:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: pxa27x_keypad - remove input_free_device() in pxa27x_keypad_remove()\n  Input: mousedev - fix regression of inverting axes\n  Input: uinput - add devname alias to allow module on-demand load\n  Input: hil_kbd - fix compile error\n  USB: drop tty argument from usb_serial_handle_sysrq_char()\n  Input: sysrq - drop tty argument form handle_sysrq()\n  Input: sysrq - drop tty argument from sysrq ops handlers\n"
    },
    {
      "commit": "25cc69ec34a563e943e85b3b68a79a8aac7f076d",
      "tree": "57b2a6b2fe5e4df3461bf6335d7b575e283178ca",
      "parents": [
        "bac1e74dba9755128748b872a0f304dad4d198c6"
      ],
      "author": {
        "name": "Saravana Kannan",
        "email": "skannan@codeaurora.org",
        "time": "Thu Aug 26 20:18:43 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 26 20:18:43 2010 +0200"
      },
      "message": "PM QoS: Fix inline documentation.\n\nFix the pm_qos_add_request() kerneldoc comment that doesn\u0027t reflect\nthe behavior of the function after the last PM QoS update.\n\nSigned-off-by: Saravana Kannan \u003cskannan@codeaurora.org\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d4348c678977c7093438bbbf2067c49396ae941b",
      "tree": "c60752bc177c3297e28e62f759ddd5816fa52e19",
      "parents": [
        "37822188ef7bb41ae47b84ae283e6ac93cdafb9c",
        "8d330919927ea31fa083b5a80084dc991da813a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 10:50:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 10:50:07 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf, x86, Pentium4: Clear the P4_CCCR_FORCE_OVF flag\n  tracing/trace_stack: Fix stack trace on ppc64\n"
    },
    {
      "commit": "5e686019df425a4fd8003ce7f6eaccbe537331d8",
      "tree": "cc78762bc0fb471562ca1b5f745834a983020623",
      "parents": [
        "e09b4e9a8d15dce04bedf1b860abeec00de31aad",
        "cd7240c0b900eb6d690ccee088a6c9b46dae815a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:40:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:40:56 2010 -0700"
      },
      "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  x86, tsc, sched: Recompute cyc2ns_offset\u0027s during resume from sleep states\n  sched: Fix rq-\u003eclock synchronization when migrating tasks\n"
    },
    {
      "commit": "151772dbfad4dbe81721e40f9b3d588ea77bb7aa",
      "tree": "fea47f977d73063843d0e91e2a139c4f3fb71d6c",
      "parents": [
        "502adf5778f4151dcba3f64dd6ed322151f3712c"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Wed Aug 25 11:32:38 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 25 13:08:48 2010 +0200"
      },
      "message": "tracing/trace_stack: Fix stack trace on ppc64\n\nsave_stack_trace() stores the instruction pointer, not the\nfunction descriptor. On ppc64 the trace stack code currently\ndereferences the instruction pointer and shows 8 bytes of\ninstructions in our backtraces:\n\n # cat /sys/kernel/debug/tracing/stack_trace\n        Depth    Size   Location    (26 entries)\n        -----    ----   --------\n  0)     5424     112   0x6000000048000004\n  1)     5312     160   0x60000000ebad01b0\n  2)     5152     160   0x2c23000041c20030\n  3)     4992     240   0x600000007c781b79\n  4)     4752     160   0xe84100284800000c\n  5)     4592     192   0x600000002fa30000\n  6)     4400     256   0x7f1800347b7407e0\n  7)     4144     208   0xe89f0108f87f0070\n  8)     3936     272   0xe84100282fa30000\n\nSince we aren\u0027t dealing with function descriptors, use %pS\ninstead of %pF to fix it:\n\n # cat /sys/kernel/debug/tracing/stack_trace\n        Depth    Size   Location    (26 entries)\n        -----    ----   --------\n  0)     5424     112   ftrace_call+0x4/0x8\n  1)     5312     160   .current_io_context+0x28/0x74\n  2)     5152     160   .get_io_context+0x48/0xa0\n  3)     4992     240   .cfq_set_request+0x94/0x4c4\n  4)     4752     160   .elv_set_request+0x60/0x84\n  5)     4592     192   .get_request+0x2d4/0x468\n  6)     4400     256   .get_request_wait+0x7c/0x258\n  7)     4144     208   .__make_request+0x49c/0x610\n  8)     3936     272   .generic_make_request+0x390/0x434\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: rostedt@goodmis.org\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c20100825013238.GE28360@kryten\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a2e8e5dec7e29c56a46ba176c664ab6a3d04118",
      "tree": "57da96451bead4986dfcd82aadf47ba2c05745ac",
      "parents": [
        "e41e704bc4f49057fc68b643108366e6e6781aa3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Aug 25 10:33:56 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Aug 25 10:33:56 2010 +0200"
      },
      "message": "workqueue: fix cwq-\u003enr_active underflow\n\ncwq-\u003enr_active is used to keep track of how many work items are active\nfor the cpu workqueue, where \u0027active\u0027 is defined as either pending on\nglobal worklist or executing.  This is used to implement the\nmax_active limit and workqueue freezing.  If a work item is queued\nafter nr_active has already reached max_active, the work item doesn\u0027t\nincrement nr_active and is put on the delayed queue and gets activated\nlater as previous active work items retire.\n\ntry_to_grab_pending() which is used in the cancellation path\nunconditionally decremented nr_active whether the work item being\ncancelled is currently active or delayed, so cancelling a delayed work\nitem makes nr_active underflow.  This breaks max_active enforcement\nand triggers BUG_ON() in destroy_workqueue() later on.\n\nThis patch fixes this bug by adding a flag WORK_STRUCT_DELAYED, which\nis set while a work item in on the delayed list and making\ntry_to_grab_pending() decrement nr_active iff the work item is\ncurrently active.\n\nThe addition of the flag enlarges cwq alignment to 256 bytes which is\ngetting a bit too large.  It\u0027s scheduled to be reduced back to 128\nbytes by merging WORK_STRUCT_PENDING and WORK_STRUCT_CWQ in the next\ndevel cycle.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\n"
    },
    {
      "commit": "502adf5778f4151dcba3f64dd6ed322151f3712c",
      "tree": "ad14adb37dedaefabdaf93b08ab9d32bc140ed81",
      "parents": [
        "3b6c5507a69861e80c26f21d04601c674cbeec3d",
        "c6db67cda735d8ace5f19c3831240e1408679790"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:21:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:21:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  watchdog: Don\u0027t throttle the watchdog\n  tracing: Fix timer tracing\n"
    },
    {
      "commit": "3b6c5507a69861e80c26f21d04601c674cbeec3d",
      "tree": "339c0761121f5a20d0573c3af3177af87e00e09f",
      "parents": [
        "8ca3eb08097f6839b2206e2242db4179aee3cfb3",
        "9d0f4dcc5c4d1c5dd01172172684a45b5f49d740"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:21:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:21:02 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  mutex: Improve the scalability of optimistic spinning\n"
    },
    {
      "commit": "bac1e74dba9755128748b872a0f304dad4d198c6",
      "tree": "68ffa67da67b1d7f06b4ff1cc7a705d3a5842386",
      "parents": [
        "f4e385ccfc10f44364101b126d1ac52b4c806f1d"
      ],
      "author": {
        "name": "David Alan Gilbert",
        "email": "linux@treblig.org",
        "time": "Tue Aug 24 20:22:18 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 24 20:22:18 2010 +0200"
      },
      "message": "PM QoS: Fix kzalloc() parameters swapped in pm_qos_power_open()\n\nsparse spotted that the kzalloc() in pm_qos_power_open() in the\ncurrent Linus\u0027 git tree had its parameters swapped.  Fix this.\n\nSigned-off-by: David Alan Gilbert \u003clinux@treblig.org\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e41e704bc4f49057fc68b643108366e6e6781aa3",
      "tree": "8cc85208970ba0c9adf533903243e28c506f23ae",
      "parents": [
        "972fa1c5316d18c8297123e08e9b6930ca34f888"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 24 14:22:47 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 24 18:01:32 2010 +0200"
      },
      "message": "workqueue: improve destroy_workqueue() debuggability\n\nNow that the worklist is global, having works pending after wq\ndestruction can easily lead to oops and destroy_workqueue() have\nseveral BUG_ON()s to catch these cases.  Unfortunately, BUG_ON()\ndoesn\u0027t tell much about how the work became pending after the final\nflush_workqueue().\n\nThis patch adds WQ_DYING which is set before the final flush begins.\nIf a work is requested to be queued on a dying workqueue,\nWARN_ON_ONCE() is triggered and the request is ignored.  This clearly\nindicates which caller is trying to queue a work on a dying workqueue\nand keeps the system working in most cases.\n\nLocking rule comment is updated such that the \u0027I\u0027 rule includes\nmodifying the field from destruction path.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "972fa1c5316d18c8297123e08e9b6930ca34f888",
      "tree": "b96c34cb7ac493a80d959db6b361d2e87e854e06",
      "parents": [
        "06bd6ebffae36d3b105677598c48e8bd0a10b205"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Aug 22 23:19:43 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 23 11:37:49 2010 +0200"
      },
      "message": "workqueue: mark lock acquisition on worker_maybe_bind_and_lock()\n\nworker_maybe_bind_and_lock() actually grabs gcwq-\u003elock but was missing proper\nannotation. Add it. So this patch will remove following sparse warnings:\n\n kernel/workqueue.c:1214:13: warning: context imbalance in \u0027worker_maybe_bind_and_lock\u0027 - wrong count at exit\n arch/x86/include/asm/irqflags.h:44:9: warning: context imbalance in \u0027worker_rebind_fn\u0027 - unexpected unlock\n kernel/workqueue.c:1991:17: warning: context imbalance in \u0027rescuer_thread\u0027 - unexpected unlock\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "06bd6ebffae36d3b105677598c48e8bd0a10b205",
      "tree": "d75a38a50378a3365bf57383297e0fe0372e916a",
      "parents": [
        "8d9df9f0844ed87541453a3ef91bfc9f487053b7"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Aug 22 23:19:42 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 23 11:37:49 2010 +0200"
      },
      "message": "workqueue: annotate lock context change\n\nSome of internal functions called within gcwq-\u003elock context releases and\nregrabs the lock but were missing proper annotations. Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "9d0f4dcc5c4d1c5dd01172172684a45b5f49d740",
      "tree": "e24eb28059f983284c29851e0598667cd428e2a1",
      "parents": [
        "763008c4357b73c8d18396dfd8d79dc58fa3f99d"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Wed Aug 18 15:00:27 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 23 10:56:27 2010 +0200"
      },
      "message": "mutex: Improve the scalability of optimistic spinning\n\nThere is a scalability issue for current implementation of optimistic\nmutex spin in the kernel.  It is found on a 8 node 64 core Nehalem-EX\nsystem (HT mode).\n\nThe intention of the optimistic mutex spin is to busy wait and spin on a\nmutex if the owner of the mutex is running, in the hope that the mutex\nwill be released soon and be acquired, without the thread trying to\nacquire mutex going to sleep. However, when we have a large number of\nthreads, contending for the mutex, we could have the mutex grabbed by\nother thread, and then another ……, and we will keep spinning, wasting cpu\ncycles and adding to the contention.  One possible fix is to quit\nspinning and put the current thread on wait-list if mutex lock switch to\na new owner while we spin, indicating heavy contention (see the patch\nincluded).\n\nI did some testing on a 8 socket Nehalem-EX system with a total of 64\ncores. Using Ingo\u0027s test-mutex program that creates/delete files with 256\nthreads (http://lkml.org/lkml/2006/1/8/50) , I see the following speed up\nafter putting in the mutex spin fix:\n\n ./mutex-test V 256 10\n                 Ops/sec\n 2.6.34          62864\n With fix        197200\n\nRepeating the test with Aim7 fserver workload, again there is a speed up\nwith the fix:\n\n                 Jobs/min\n 2.6.34          91657\n With fix        149325\n\nTo look at the impact on the distribution of mutex acquisition time, I\ncollected the mutex acquisition time on Aim7 fserver workload with some\ninstrumentation.  The average acquisition time is reduced by 48% and\nnumber of contentions reduced by 32%.\n\n                 #contentions    Time to acquire mutex (cycles)\n 2.6.34          72973           44765791\n With fix        49210           23067129\n\nThe histogram of mutex acquisition time is listed below.  The acquisition\ntime is in 2^bin cycles.  We see that without the fix, the acquisition\ntime is mostly around 2^26 cycles.  With the fix, we the distribution get\nspread out a lot more towards the lower cycles, starting from 2^13.\nHowever, there is an increase of the tail distribution with the fix at\n2^28 and 2^29 cycles.  It seems a small price to pay for the reduced\naverage acquisition time and also getting the cpu to do useful work.\n\n Mutex acquisition time distribution (acq time \u003d 2^bin cycles):\n         2.6.34                  With Fix\n bin     #occurrence     %       #occurrence     %\n 11      2               0.00%   120             0.24%\n 12      10              0.01%   790             1.61%\n 13      14              0.02%   2058            4.18%\n 14      86              0.12%   3378            6.86%\n 15      393             0.54%   4831            9.82%\n 16      710             0.97%   4893            9.94%\n 17      815             1.12%   4667            9.48%\n 18      790             1.08%   5147            10.46%\n 19      580             0.80%   6250            12.70%\n 20      429             0.59%   6870            13.96%\n 21      311             0.43%   1809            3.68%\n 22      255             0.35%   2305            4.68%\n 23      317             0.44%   916             1.86%\n 24      610             0.84%   233             0.47%\n 25      3128            4.29%   95              0.19%\n 26      63902           87.69%  122             0.25%\n 27      619             0.85%   286             0.58%\n 28      0               0.00%   3536            7.19%\n 29      0               0.00%   903             1.83%\n 30      0               0.00%   0               0.00%\n\nI\u0027ve done similar experiments with 2.6.35 kernel on smaller boxes as\nwell.  One is on a dual-socket Westmere box (12 cores total, with HT).\nAnother experiment is on an old dual-socket Core 2 box (4 cores total, no\nHT)\n\nOn the 12-core Westmere box, I see a 250% increase for Ingo\u0027s mutex-test\nprogram with my mutex patch but no significant difference in aim7\u0027s\nfserver workload.\n\nOn the 4-core Core 2 box, I see the difference with the patch for both\nmutex-test and aim7 fserver are negligible.\n\nSo far, it seems like the patch has not caused regression on smaller\nsystems.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e # .35.x\nLKML-Reference: \u003c1282168827.9542.72.camel@schen9-DESK\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6db67cda735d8ace5f19c3831240e1408679790",
      "tree": "8512efd772cb3d3f30b49001890c93a22f2db50f",
      "parents": [
        "ede1b4290781ae82ccf0f2ecc6dada8d3dd35779"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Aug 20 11:49:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 23 10:48:05 2010 +0200"
      },
      "message": "watchdog: Don\u0027t throttle the watchdog\n\nStephane reported that when the machine locks up, the regular ticks,\nwhich are responsible to resetting the throttle count, stop too.\n\nHence the NMI watchdog can end up being throttled before it reports on\nthe locked up state, and we end up being sad..\n\nCure this by having the watchdog overflow reset its own throttle count.\n\nReported-by: Stephane Eranian \u003ceranian@google.com\u003e\nTested-by: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1282215916.1926.4696.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e36c886a0f9d624377977fa6cae309cfd7f362fa",
      "tree": "f75e7c3e50a48c671ed4dff33103f601a2204af9",
      "parents": [
        "69b26c7ad00fd5b6129400725e2ffb95134a0e1b"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Aug 21 13:07:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 13:19:37 2010 -0700"
      },
      "message": "workqueue: Add basic tracepoints to track workqueue execution\n\nWith the introduction of the new unified work queue thread pools,\nwe lost one feature: It\u0027s no longer possible to know which worker\nis causing the CPU to wake out of idle. The result is that PowerTOP\nnow reports a lot of \"kworker/a:b\" instead of more readable results.\n\nThis patch adds a pair of tracepoints to the new workqueue code,\nsimilar in style to the timer/hrtimer tracepoints.\n\nWith this pair of tracepoints, the next PowerTOP can correctly\nreport which work item caused the wakeup (and how long it took):\n\nInterrupt (43)            i915      time   3.51ms    wakeups 141\nWork      ieee80211_iface_work      time   0.81ms    wakeups  29\nWork              do_dbs_timer      time   0.55ms    wakeups  24\nProcess                   Xorg      time  21.36ms    wakeups   4\nTimer    sched_rt_period_timer      time   0.01ms    wakeups   1\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5eee372478fc32fec5fe8eed711eedb13f3d",
      "tree": "18415eae0833ff4767943f985900524d6b1d73f1",
      "parents": [
        "36423a5ed5e4ea95ceedb68fad52965033e11639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:24:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:21 2010 -0700"
      },
      "message": "mm: make the vma list be doubly linked\n\nIt\u0027s a really simple list, and several of the users want to go backwards\nin it to find the previous vma.  So rather than have to look up the\nprevious entry with \u0027find_vma_prev()\u0027 or something similar, just make it\ndoubly linked instead.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f335397d177c906256ee1bba28e8c49e8ec63817",
      "tree": "b6911d0b40940cbec9083769856e7744d5461e22",
      "parents": [
        "1495cc9df4e81f5a8fa9b0b8f1034b14d24b7d8c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Aug 17 21:15:47 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 21 00:34:45 2010 -0700"
      },
      "message": "Input: sysrq - drop tty argument form handle_sysrq()\n\nSysrq operations do not accept tty argument anymore so no need to pass\nit to us.\n\n[Stephen Rothwell \u003csfr@canb.auug.org.au\u003e: fix build breakage in drm code\n caused by sysrq using bool but not including linux/types.h]\n\n[Sachin Sant \u003csachinp@in.ibm.com\u003e: fix build breakage in s390 keyboadr\n driver]\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b35de43b31040828f83046f40fd34ba33146409d",
      "tree": "693ffff84f463da3a7d81d8bd7bb26e144d7d499",
      "parents": [
        "c81476df1b4241aefba4ff83a7701b3a926bd7ce"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "arighi@develer.com",
        "time": "Thu Aug 19 14:13:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:54 2010 -0700"
      },
      "message": "kfifo: implement missing __kfifo_skip_r()\n\nkfifo_skip() is currently broken, due to the missing of the internal\nhelper function.  Add it.\n\nSigned-off-by: Andrea Righi \u003carighi@develer.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nAcked-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "861d034ee814917a83bd5de4b26e3b8336ddeeb8",
      "tree": "6514cb3ebbb58fb0a638e267dfd6da510a5c8a00",
      "parents": [
        "763008c4357b73c8d18396dfd8d79dc58fa3f99d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Aug 19 13:31:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 20 14:59:01 2010 +0200"
      },
      "message": "sched: Fix rq-\u003eclock synchronization when migrating tasks\n\nsched_fork() -- we do task placement in -\u003etask_fork_fair() ensure we\n  update_rq_clock() so we work with current time. We leave the vruntime\n  in relative state, so the time delay until wake_up_new_task() doesn\u0027t\n  matter.\n\nwake_up_new_task() -- Since task_fork_fair() left p-\u003evruntime in\n  relative state we can safely migrate, the activate_task() on the\n  remote rq will call update_rq_clock() and causes the clock to be\n  synced (enough).\n\nTested-by: Jack Daniel \u003cwanders.thirst@gmail.com\u003e\nTested-by: Philby John \u003cpjohn@mvista.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1281002322.1923.1708.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1495cc9df4e81f5a8fa9b0b8f1034b14d24b7d8c",
      "tree": "7a08852f9fb0cb3073367ef84c0218af0b5479f7",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Aug 17 21:15:46 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 19 22:07:06 2010 -0700"
      },
      "message": "Input: sysrq - drop tty argument from sysrq ops handlers\n\nNoone is using tty argument so let\u0027s get rid of it.\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "145c3ae46b37993b0debb0b3da6256daea4a6ec5",
      "tree": "0dbff382ce36b23b3d2dbff87d3eaab73a07a2a4",
      "parents": [
        "81ca03a0e2ea0207b2df80e0edcf4c775c07a505",
        "99b7db7b8ffd6bb755eb0a175596421a0b581cb2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:35:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:35:08 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fs: brlock vfsmount_lock\n  fs: scale files_lock\n  lglock: introduce special lglock and brlock spin locks\n  tty: fix fu_list abuse\n  fs: cleanup files_lock locking\n  fs: remove extra lookup in __lookup_hash\n  fs: fs_struct rwlock to spinlock\n  apparmor: use task path helpers\n  fs: dentry allocation consolidation\n  fs: fix do_lookup false negative\n  mbcache: Limit the maximum number of cache entries\n  hostfs -\u003efollow_link() braino\n  hostfs: dumb (and usually harmless) tpyo - strncpy instead of strlcpy\n  remove SWRITE* I/O types\n  kill BH_Ordered flag\n  vfs: update ctime when changing the file\u0027s permission by setfacl\n  cramfs: only unlock new inodes\n  fix reiserfs_evict_inode end_writeback second call\n"
    },
    {
      "commit": "1ca72feb9343d10a620c3076b0aa6e80d613fcf7",
      "tree": "911ddec19e97d06877f3f00ee90f51389e030549",
      "parents": [
        "7dfb2d4069cc698da925327e8c2106852a0c77a2",
        "9d5f3714e4705a66b6be693f7202192f756f498e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:32:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 18 09:32:13 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Fix build on POSIX shells\n  latencytop: Fix kconfig dependency warnings\n  perf annotate tui: Fix exit and RIGHT keys handling\n  tracing: Sanitize value returned from write(trace_marker, \"...\", len)\n  tracing/events: Convert format output to seq_file\n  tracing: Extend recordmcount to better support Blackfin mcount\n  tracing: Fix ring_buffer_read_page reading out of page boundary\n  tracing: Fix an unallocated memory access in function_graph\n"
    },
    {
      "commit": "2a4419b5b2a77f3f4537c14f7ad7df95770655dd",
      "tree": "ad66519a92b995920ecada788e4a08e265747545",
      "parents": [
        "44672e4fbd40e2dda8bbce7d0f71d24dbfc7e00e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Wed Aug 18 04:37:33 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 08:35:46 2010 -0400"
      },
      "message": "fs: fs_struct rwlock to spinlock\n\nfs: fs_struct rwlock to spinlock\n\nstruct fs_struct.lock is an rwlock with the read-side used to protect root and\npwd members while taking references to them. Taking a reference to a path\ntypically requires just 2 atomic ops, so the critical section is very small.\nParallel read-side operations would have cacheline contention on the lock, the\ndentry, and the vfsmount cachelines, so the rwlock is unlikely to ever give a\nreal parallelism increase.\n\nReplace it with a spinlock to avoid one or two atomic operations in typical\npath lookup fastpath.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "392abeea52db4dc870c0ea41912df8ca60b27d44",
      "tree": "a2683db754940ea8fb5e4aa78aedbfe2b786b3a4",
      "parents": [
        "472db19ff5729cc9d054d6f87ba5147b21ec0787",
        "beed5336eba6a5a70c97e9f4bfff525915a25003"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:36:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:36:19 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  vt,console,kdb: preserve console_blanked while in kdb\n  vt: fix regression warnings from KMS merge\n  arm,kgdb: fix GDB_MAX_REGS no longer used\n  kgdb: add missing __percpu markup in arch/x86/kernel/kgdb.c\n  kdb: fix compile error without CONFIG_KALLSYMS\n"
    },
    {
      "commit": "f362b73244fb16ea4ae127ced1467dd8adaa7733",
      "tree": "6aa3e767b527157b532c0620f2e9ef4c8f131c45",
      "parents": [
        "d7627467b7a8dd6944885290a03a07ceb28c10eb"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Aug 17 23:56:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:07:43 2010 -0700"
      },
      "message": "Fix unprotected access to task credentials in waitid()\n\nUsing a program like the following:\n\n\t#include \u003cstdlib.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/types.h\u003e\n\t#include \u003csys/wait.h\u003e\n\n\tint main() {\n\t\tid_t id;\n\t\tsiginfo_t infop;\n\t\tpid_t res;\n\n\t\tid \u003d fork();\n\t\tif (id \u003d\u003d 0) { sleep(1); exit(0); }\n\t\tkill(id, SIGSTOP);\n\t\talarm(1);\n\t\twaitid(P_PID, id, \u0026infop, WCONTINUED);\n\t\treturn 0;\n\t}\n\nto call waitid() on a stopped process results in access to the child task\u0027s\ncredentials without the RCU read lock being held - which may be replaced in the\nmeantime - eliciting the following warning:\n\n\t\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t[ INFO: suspicious rcu_dereference_check() usage. ]\n\t---------------------------------------------------\n\tkernel/exit.c:1460 invoked rcu_dereference_check() without protection!\n\n\tother info that might help us debug this:\n\n\trcu_scheduler_active \u003d 1, debug_locks \u003d 1\n\t2 locks held by waitid02/22252:\n\t #0:  (tasklist_lock){.?.?..}, at: [\u003cffffffff81061ce5\u003e] do_wait+0xc5/0x310\n\t #1:  (\u0026(\u0026sighand-\u003esiglock)-\u003erlock){-.-...}, at: [\u003cffffffff810611da\u003e]\n\twait_consider_task+0x19a/0xbe0\n\n\tstack backtrace:\n\tPid: 22252, comm: waitid02 Not tainted 2.6.35-323cd+ #3\n\tCall Trace:\n\t [\u003cffffffff81095da4\u003e] lockdep_rcu_dereference+0xa4/0xc0\n\t [\u003cffffffff81061b31\u003e] wait_consider_task+0xaf1/0xbe0\n\t [\u003cffffffff81061d15\u003e] do_wait+0xf5/0x310\n\t [\u003cffffffff810620b6\u003e] sys_waitid+0x86/0x1f0\n\t [\u003cffffffff8105fce0\u003e] ? child_wait_callback+0x0/0x70\n\t [\u003cffffffff81003282\u003e] system_call_fastpath+0x16/0x1b\n\nThis is fixed by holding the RCU read lock in wait_task_continued() to ensure\nthat the task\u0027s current credentials aren\u0027t destroyed between us reading the\ncred pointer and us reading the UID from those credentials.\n\nFurthermore, protect wait_task_stopped() in the same way.\n\nWe don\u0027t need to keep holding the RCU read lock once we\u0027ve read the UID from\nthe credentials as holding the RCU read lock doesn\u0027t stop the target task from\nchanging its creds under us - so the credentials may be outdated immediately\nafter we\u0027ve read the pointer, lock or no lock.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7627467b7a8dd6944885290a03a07ceb28c10eb",
      "tree": "a18c83468418e878cfb2d44e4310d81b8db84ad7",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 17 23:52:56 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:07:43 2010 -0700"
      },
      "message": "Make do_execve() take a const filename pointer\n\nMake do_execve() take a const filename pointer so that kernel_execve() compiles\ncorrectly on ARM:\n\narch/arm/kernel/sys_arm.c:88: warning: passing argument 1 of \u0027do_execve\u0027 discards qualifiers from pointer target type\n\nThis also requires the argv and envp arguments to be consted twice, once for\nthe pointer array and once for the strings the array points to.  This is\nbecause do_execve() passes a pointer to the filename (now const) to\ncopy_strings_kernel().  A simpler alternative would be to cast the filename\npointer in do_execve() when it\u0027s passed to copy_strings_kernel().\n\ndo_execve() may not change any of the strings it is passed as part of the argv\nor envp lists as they are some of them in .rodata, so marking these strings as\nconst should be fine.\n\nFurther kernel_execve() and sys_execve() need to be changed to match.\n\nThis has been test built on x86_64, frv, arm and mips.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b590cddfa6f40447158323b43a13cdae01d9a051",
      "tree": "c844374c791d69930b57173d34b2cef917281a02",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 16 15:58:29 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 16 15:58:29 2010 -0500"
      },
      "message": "kdb: fix compile error without CONFIG_KALLSYMS\n\nIf CONFIG_KGDB_KDB is set and CONFIG_KALLSYMS is not set the kernel\nwill fail to build with the error:\n\nkernel/built-in.o: In function `kallsyms_symbol_next\u0027:\nkernel/debug/kdb/kdb_support.c:237: undefined reference to `kdb_walk_kallsyms\u0027\nkernel/built-in.o: In function `kallsyms_symbol_complete\u0027:\nkernel/debug/kdb/kdb_support.c:193: undefined reference to `kdb_walk_kallsyms\u0027\n\nThe kdb_walk_kallsyms needs a #ifdef proper header to match the C\nimplementation.  This patch also fixes the compiler warnings in\nkdb_support.c when compiling without CONFIG_KALLSYMS set.  The\ncompiler warnings are a result of the kallsyms_lookup() macro not\ninitializing the two of the pass by reference variables.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\n"
    },
    {
      "commit": "d244b6bd41e09ecbb09c738cc2c108be227398c8",
      "tree": "848c6a8a0d6f83929daf43d63e241dc8072066ac",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73",
        "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "message": "Merge branch \u0027tip/perf/urgent-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into trace/tip/perf/urgent-4\n\nConflicts:\n\tkernel/trace/trace_events.c\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d9df9f0844ed87541453a3ef91bfc9f487053b7",
      "tree": "b9779092c34a47de0cb268f4a631bc1e0024a01a",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Mon Aug 16 09:54:28 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 16 09:55:01 2010 +0200"
      },
      "message": "workqueue: free rescuer on destroy_workqueue\n\nwq-\u003erescuer is not freed when wq is destroyed, leads a memory leak\nthen. This patch also remove a redundant line.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa",
      "tree": "815f3c1d184b61958ee48eb868ed28b1e5aab278",
      "parents": [
        "2a37a3df57c44e947271758a1aa4bea7bff9feab"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed Jul 28 01:18:01 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 13 15:23:16 2010 -0400"
      },
      "message": "tracing: Sanitize value returned from write(trace_marker, \"...\", len)\n\nWhen userspace code writes non-new-line-terminated string to trace_marker\nfile, write handler appends new-line and returns number of bytes written\nto trace buffer, so\nwrite(fd, \"abc\", 3) will return 4\n\nThat\u0027s unexpected and unfortunately it confuses glibc\u0027s fprintf function.\n\nExample:\nint main() {\n  fprintf(stderr, \"abc\");\n  return 0;\n}\n\n$ gcc test.c -o test\n$ echo mmiotrace \u003e /sys/kernel/debug/tracing/current_tracer\n$ ./test 2\u003e/sys/kernel/debug/tracing/trace_marker\n\nresults in infinite loop:\nwrite(fd, \"abc\", 3) \u003d 4\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\n(...)\n\n...and kernel trace buffer full of empty markers.\n\nFix it by sanitizing write return value.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nLKML-Reference: \u003c20100727231801.GB2826@joi.lan\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c7dcf87a6881bf796faee83003163eb3de41a309",
      "tree": "1e4333e588ad6e8e69e310d8ae71798af1c0bdb5",
      "parents": [
        "2be1f3a73dd02e38e181cf5abacb3d45a6a2d6b8"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Aug 13 11:30:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 12:03:24 2010 -0700"
      },
      "message": "time: Workaround gcc loop optimization that causes 64bit div errors\n\nEarly 4.3 versions of gcc apparently aggressively optimize the raw\ntime accumulation loop, replacing it with a divide.\n\nOn 32bit systems, this causes the following link errors:\n\tundefined reference to `__umoddi3\u0027\n\tundefined reference to `__udivdi3\u0027\n\nThe gcc issue has been fixed in 4.4 and greater.\n\nThis patch replaces the accumulation loop with a do_div, as suggested\nby Linus.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCC: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCC: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2069601b3f0ea38170d4b509b89f3ca0a373bdc1",
      "tree": "647002d4c3814bd3d95d16ef7edef1757de8554f",
      "parents": [
        "ad41a1e0cab07c5125456e8d38e5b1ab148d04aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 14:23:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 14:23:04 2010 -0700"
      },
      "message": "Revert \"fsnotify: store struct file not struct path\"\n\nThis reverts commit 3bcf3860a4ff9bbc522820b4b765e65e4deceb3e (and the\naccompanying commit c1e5c954020e \"vfs/fsnotify: fsnotify_close can delay\nthe final work in fput\" that was a horribly ugly hack to make it work at\nall).\n\nThe \u0027struct file\u0027 approach not only causes that disgusting hack, it\nsomehow breaks pulseaudio, probably due to some other subtlety with\nf_count handling.\n\nFix up various conflicts due to later fsnotify work.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a37a3df57c44e947271758a1aa4bea7bff9feab",
      "tree": "89d3e35a1c29f021d7ca0c468a391ec35f0db34b",
      "parents": [
        "465c6cca2668a2db2a4ffce3dca5714017873f2b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 03 15:21:34 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 12 16:59:29 2010 -0400"
      },
      "message": "tracing/events: Convert format output to seq_file\n\nTwo new events were added that broke the current format output.\n\nBoth from the SCSI system: scsi_dispatch_cmd_done and scsi_dispatch_cmd_timeout\n\nThe reason is that their print_fmt exceeded a page size. Since the output\nof the format used simple_read_from_buffer and trace_seq, it was limited\nto a page size in output.\n\nThis patch converts the printing of the format of an event into seq_file,\nwhich allows greater than a page size to be shown.\n\nI diffed all event formats comparing the output with and without this\npatch. All matched except for the above two, which showed just:\n\n  FORMAT TOO BIG\n\nwithout this patch, but now properly displays the output with this patch.\n\nv2: Remove updating *pos in seq start function.\n   [ Thanks to Li Zefan for pointing that out ]\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nCc: Tomohiro Kusumi \u003ckusumi.tomohiro@jp.fujitsu.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26df0766a73a859bb93dc58e747c5028557a23fd",
      "tree": "4776de567425a7fb66ca9a87228309f9c84de633",
      "parents": [
        "580287628cdd99366b10c9050c4479b387283be8",
        "a6de51b2787012ba3ab62c7d50df1b749b83d5f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:01:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:01:59 2010 -0700"
      },
      "message": "Merge branch \u0027params\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027params\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (22 commits)\n  param: don\u0027t deref arg in __same_type() checks\n  param: update drivers/acpi/debug.c to new scheme\n  param: use module_param in drivers/message/fusion/mptbase.c\n  ide: use module_param_named rather than module_param_call\n  param: update drivers/char/ipmi/ipmi_watchdog.c to new scheme\n  param: lock if_sdio\u0027s lbs_helper_name and lbs_fw_name against sysfs changes.\n  param: lock myri10ge_fw_name against sysfs changes.\n  param: simple locking for sysfs-writable charp parameters\n  param: remove unnecessary writable charp\n  param: add kerneldoc to moduleparam.h\n  param: locking for kernel parameters\n  param: make param sections const.\n  param: use free hook for charp (fix leak of charp parameters)\n  param: add a free hook to kernel_param_ops.\n  param: silence .init.text references from param ops\n  Add param ops struct for hvc_iucv driver.\n  nfs: update for module_param_named API change\n  AppArmor: update for module_param_named API change\n  param: use ops in struct kernel_param, rather than get and set fns directly\n  param: move the EXPORT_SYMBOL to after the definitions.\n  ...\n"
    },
    {
      "commit": "deda2e81961e96be4f2c09328baca4710a2fd1a0",
      "tree": "da1968f7e6791cb96735e8f2c602aa55e76fec21",
      "parents": [
        "95f4572737da469b66ebfd1badd69d9adc340409"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 09 14:20:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:53:39 2010 -0700"
      },
      "message": "timekeeping: Fix overflow in rawtime tv_nsec on 32 bit archs\n\nThe tv_nsec is a long and when added to the shifted interval it can wrap\nand become negative which later causes looping problems in the\ngetrawmonotonic().  The edge case occurs when the system has slept for\na short period of time of ~2 seconds.\n\nA trace printk of the values in this patch illustrate the problem:\n\nftrace time stamp: log\n43.716079: logarithmic_accumulation: raw: 3d0913 tv_nsec d687faa\n43.718513: logarithmic_accumulation: raw: 3d0913 tv_nsec da588bd\n43.722161: logarithmic_accumulation: raw: 3d0913 tv_nsec de291d0\n46.349925: logarithmic_accumulation: raw: 7a122600 tv_nsec e1f9ae3\n46.349930: logarithmic_accumulation: raw: 1e848980 tv_nsec 8831c0e3\n\nThe kernel starts looping at 46.349925 in the getrawmonotonic() due to\nthe negative value from adding the raw value to tv_nsec.\n\nA simple solution is to accumulate into a u64, and then normalize it\nto a timespec_t.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n [ Reworked variable names and simplified some of the code. - John ]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12fdff3fc2483f906ae6404a6e8dcf2550310b6f",
      "tree": "a79fb1365fce7c7529655a8802d6d6bf8509b374",
      "parents": [
        "1490cf5f0cb07dd49cdab4bceb769d7f711d7ca6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Aug 12 16:54:57 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:51:35 2010 -0700"
      },
      "message": "Add a dummy printk function for the maintenance of unused printks\n\nAdd a dummy printk function for the maintenance of unused printks through gcc\nformat checking, and also so that side-effect checking is maintained too.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d57a98ccd0b4489003473979da8f5a1363ba7a3",
      "tree": "2982997ce66bb6a92c020b7189966c3097095fd7",
      "parents": [
        "93caf8e69eac763f6a20cf253ace8e7fc1ab7953"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Aug 11 14:17:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "block: add secure discard\n\nSecure discard is the same as discard except that all copies of the\ndiscarded sectors (perhaps created by garbage collection) must also be\nerased.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nCc: \u003clinux-mmc@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": "d78a3eda6985e74bc21a23362f27526f73e71649",
      "tree": "fe395ab0372893e66c8f1375ca8b11a33020d11f",
      "parents": [
        "5af568cbd55f60b5a1d174f621b273e4f585dc35"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Wed Aug 11 14:17:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "kernel/kfifo.c: add handling of chained scatterlists\n\nThe current kfifo scatterlist implementation will not work with chained\nscatterlists.  It assumes that struct scatterlist arrays are allocated\ncontiguously, which is not the case when chained scatterlists (struct\nsg_table) are in use.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af568cbd55f60b5a1d174f621b273e4f585dc35",
      "tree": "7cdc1afeb267519133a29ac595df21278c556c8c",
      "parents": [
        "062e27ec1b49d12bdb1ecc94d74b5fee5a5775db",
        "66a362a2aa8ffa72670259fa15e2a77a01cc2217"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 09:23:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 09:23:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  isofs: Fix lseek() to position beyond 4 GB\n  vfs: remove unused MNT_STRICTATIME\n  vfs: show unreachable paths in getcwd and proc\n  vfs: only add \" (deleted)\" where necessary\n  vfs: add prepend_path() helper\n  vfs: __d_path: dont prepend the name of the root dentry\n  ia64: perfmon: add d_dname method\n  vfs: add helpers to get root and pwd\n  cachefiles: use path_get instead of lone dget\n  fs/sysv/super.c: add support for non-PDP11 v7 filesystems\n  V7: Adjust sanity checks for some volumes\n  Add v7 alias\n  v9fs: fixup for inode_setattr being removed\n\nManual merge to take Al\u0027s version of the fs/sysv/super.c file: it merged\ncleanly, but Al had removed an unnecessary header include, so his side\nwas better.\n"
    },
    {
      "commit": "2e956fb320568cc70861761483e2f0e2db75fd66",
      "tree": "737c21d0eb1981f26de6d4830ef6fa8162888c89",
      "parents": [
        "4201d9a8e86b51dd40aa8a0dabd093376c859985"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Aug 10 18:03:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:23 2010 -0700"
      },
      "message": "kfifo: replace the old non generic API\n\nSimply replace the whole kfifo.c and kfifo.h files with the new generic\nversion and fix the kerneldoc API template file.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\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": "4201d9a8e86b51dd40aa8a0dabd093376c859985",
      "tree": "6c5351812aab1e027056139c95982642890797ec",
      "parents": [
        "4457d9845927b3c62b6e833be243d21d6ca7df47"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Aug 10 18:03:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:23 2010 -0700"
      },
      "message": "kfifo: add the new generic kfifo API\n\nAdd the new version of the kfifo API files kfifo.c and kfifo.h.\n\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\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": "f65a03f6ab6f53a6f2847dbac232dcb38b3b3642",
      "tree": "b6412bfc2ec6dd1cc061e11e60cad1949ca6cf8d",
      "parents": [
        "832ccf6f44969b616b2aeea25276684cf104fa3b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Aug 10 18:03:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "kexec: return -EFAULT on copy_to_user() failures\n\ncopy_to/from_user() returns the number of bytes remaining to be copied.\nIt never returns a negative value.  The correct return code is -EFAULT and\nnot -EIO.\n\nAll the callers check for non-zero returns so that\u0027s Ok, but the return\ncode is passed to the user so we should fix this.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Simon Kagstrom \u003csimon.kagstrom@netinsight.net\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@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": "863a6049202412a6d655d052eb1c45ca7dd74a83",
      "tree": "9550c1f6c484460cb646f4472558512ac8a9f149",
      "parents": [
        "e2e7e093259d4c6b73b432122974393d6fcdfc2a"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Aug 10 18:03:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "lib/bug.c: add oops end marker to WARN implementation\n\nWe are missing the oops end marker for the exception based WARN implementation\nin lib/bug.c. This is useful for logfile analysis tools.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7ff0d9c92435e836e13aaa8d0e56d4000424bcc",
      "tree": "96f56d15b5dd96c44fb183ce00152608df50dc5c",
      "parents": [
        "bebf8cfaea1df1a104b993b995bb385e998a4dc8"
      ],
      "author": {
        "name": "TAMUKI Shoichi",
        "email": "tamuki@linet.gr.jp",
        "time": "Tue Aug 10 18:03:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "panic: keep blinking in spite of long spin timer mode\n\nTo keep panic_timeout accuracy when running under a hypervisor, the\ncurrent implementation only spins on long time (1 second) calls to mdelay.\n That brings a good effect, but the problem is the keyboard LEDs don\u0027t\nblink at all on that situation.\n\nThis patch changes to call to panic_blink_enter() between every mdelay and\nkeeps blinking in spite of long spin timer mode.\n\nThe time to call to mdelay is now 100ms.  Even this change will keep\npanic_timeout accuracy enough when running under a hypervisor.\n\nSigned-off-by: TAMUKI Shoichi \u003ctamuki@linet.gr.jp\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c52b0b91ba1f4b7ea90e20385c0a6df0ba54aed4",
      "tree": "6d92439150a3218da5807610991da4d70af56bf8",
      "parents": [
        "5fdee8c4a5e1800489ce61963208f8cc55e42ea1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 10 18:03:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:20 2010 -0700"
      },
      "message": "pids: alloc_pidmap: remove the unnecessary boundary checks\n\nalloc_pidmap() calculates max_scan so that if the initial offset !\u003d 0 we\ninspect the first map-\u003epage twice.  This is correct, we want to find the\nunused bits \u003c offset in this bitmap block.  Add the comment.\n\nBut it doesn\u0027t make any sense to stop the find_next_offset() loop when we\nare looking into this map-\u003epage for the second time.  We have already\nalready checked the bits \u003e\u003d offset during the first attempt, it is fine to\ndo this again, no matter if we succeed this time or not.\n\nRemove this hard-to-understand code.  It optimizes the very unlikely case\nwhen we are going to fail, but slows down the more likely case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fdee8c4a5e1800489ce61963208f8cc55e42ea1",
      "tree": "9e675416ab1085e9ce4822cd5e6c5705cb62204b",
      "parents": [
        "9c867fbe06458a8957024236b574733fae0cefed"
      ],
      "author": {
        "name": "Salman",
        "email": "sqazi@google.com",
        "time": "Tue Aug 10 18:03:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:20 2010 -0700"
      },
      "message": "pids: fix a race in pid generation that causes pids to be reused immediately\n\nA program that repeatedly forks and waits is susceptible to having the\nsame pid repeated, especially when it competes with another instance of\nthe same program.  This is really bad for bash implementation.\nFurthermore, many shell scripts assume that pid numbers will not be used\nfor some length of time.\n\nRace Description:\n\nA                                    B\n\n// pid \u003d\u003d offset \u003d\u003d n                // pid \u003d\u003d offset \u003d\u003d n + 1\ntest_and_set_bit(offset, map-\u003epage)\n                                     test_and_set_bit(offset, map-\u003epage);\n                                     pid_ns-\u003elast_pid \u003d pid;\npid_ns-\u003elast_pid \u003d pid;\n                                     // pid \u003d\u003d n + 1 is freed (wait())\n\n                                     // Next fork()...\n                                     last \u003d pid_ns-\u003elast_pid; // \u003d\u003d n\n                                     pid \u003d last + 1;\n\nCode to reproduce it (Running multiple instances is more effective):\n\n#include \u003cerrno.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/wait.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n\n// The distance mod 32768 between two pids, where the first pid is expected\n// to be smaller than the second.\nint PidDistance(pid_t first, pid_t second) {\n  return (second + 32768 - first) % 32768;\n}\n\nint main(int argc, char* argv[]) {\n  int failed \u003d 0;\n  pid_t last_pid \u003d 0;\n  int i;\n  printf(\"%d\\n\", sizeof(pid_t));\n  for (i \u003d 0; i \u003c 10000000; ++i) {\n    if (i % 32786 \u003d\u003d 0)\n      printf(\"Iter: %d\\n\", i/32768);\n    int child_exit_code \u003d i % 256;\n    pid_t pid \u003d fork();\n    if (pid \u003d\u003d -1) {\n      fprintf(stderr, \"fork failed, iteration %d, errno\u003d%d\", i, errno);\n      exit(1);\n    }\n    if (pid \u003d\u003d 0) {\n      // Child\n      exit(child_exit_code);\n    } else {\n      // Parent\n      if (i \u003e 0) {\n        int distance \u003d PidDistance(last_pid, pid);\n        if (distance \u003d\u003d 0 || distance \u003e 30000) {\n          fprintf(stderr,\n                  \"Unexpected pid sequence: previous fork: pid\u003d%d, \"\n                  \"current fork: pid\u003d%d for iteration\u003d%d.\\n\",\n                  last_pid, pid, i);\n          failed \u003d 1;\n        }\n      }\n      last_pid \u003d pid;\n      int status;\n      int reaped \u003d wait(\u0026status);\n      if (reaped !\u003d pid) {\n        fprintf(stderr,\n                \"Wait return value: expected pid\u003d%d, \"\n                \"got %d, iteration %d\\n\",\n                pid, reaped, i);\n        failed \u003d 1;\n      } else if (WEXITSTATUS(status) !\u003d child_exit_code) {\n        fprintf(stderr,\n                \"Unexpected exit status %x, iteration %d\\n\",\n                WEXITSTATUS(status), i);\n        failed \u003d 1;\n      }\n    }\n  }\n  exit(failed);\n}\n\nThanks to Ted Tso for the key ideas of this implementation.\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7e49c1488ab20342eaaf38f1ca35a207f4c051d",
      "tree": "43876a69cafbb49ce86f71ba5db88018ca7cc036",
      "parents": [
        "13d7e3a2dba6a79589ed34dc0b9114d7b5ff9eab"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 10 18:03:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "ptrace: optimize exit_ptrace() for the likely case\n\nexit_ptrace() takes tasklist_lock unconditionally.  We need this lock to\navoid the race with ptrace_traceme(), it acts as a barrier.\n\nChange its caller, forget_original_parent(), to call exit_ptrace() under\ntasklist_lock.  Change exit_ptrace() to drop and reacquire this lock if\nneeded.\n\nThis allows us to add the fastpath list_empty(ptraced) check.  In the\nlikely no-tracees case exit_ptrace() just returns and we avoid the lock()\n+ unlock() sequence.\n\n\"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e suggested to add this\ncheck, and he reports that this change adds about 11% improvement in some\ntests.\n\nSuggested-and-tested-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e400c28524af2d344b1663b27bf28984fa959a0e",
      "tree": "00be68cbb87be859edd67da60dfd12506879fe01",
      "parents": [
        "2b24706a798d07cf40534d7763f608045e42e15f"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Aug 10 18:02:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "cgroups: save space for the terminator\n\nThe original code didn\u0027t leave enough space for a NULL terminator.  These\nstrings are copied with strcpy() into fixed length buffers in\ncgroup_root_from_opts().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nReviewd-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "907b29eb41aa604477a655bff7345731da94514d",
      "tree": "12a7142ffa81a65da204384dfa26365d30803735",
      "parents": [
        "914dcaa84c53f2c3efa6016efcae13fd92a8a17c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:19 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:20 2010 +0930"
      },
      "message": "param: locking for kernel parameters\n\nThere may be cases (most obviously, sysfs-writable charp parameters) where\na module needs to prevent sysfs access to parameters.\n\nRather than express this in terms of a big lock, the functions are\nexpressed in terms of what they protect against.  This is clearer, esp.\nif the implementation changes to a module-level or even param-level lock.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "914dcaa84c53f2c3efa6016efcae13fd92a8a17c",
      "tree": "6bbcf8953012000cb0a22b47ff616ff2dbe481f2",
      "parents": [
        "a1054322afc8120ea5a50bc84e5beeda54571862"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:18 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:19 2010 +0930"
      },
      "message": "param: make param sections const.\n\nSince this section can be read-only (they\u0027re in .rodata), they should\nalways have been const.  Minor flow-through various functions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "a1054322afc8120ea5a50bc84e5beeda54571862",
      "tree": "ee7d56b7b72ee51193067ede97d61d14535244fc",
      "parents": [
        "e6df34a4429b77fdffb6e05adf263468a3dcda33"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:18 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:18 2010 +0930"
      },
      "message": "param: use free hook for charp (fix leak of charp parameters)\n\nInstead of using a \"I kmalloced this\" flag, we keep track of the kmalloced\nstrings and use that list to check if we need to kfree (in practice, the\nlist is very short).\n\nThis means that kparams can be const again, and plugs a leak.  This\nis important for drivers/usb/gadget/nokia.c which gets modprobe/rmmod\u0027ed\nfrequently on the N9000.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "e6df34a4429b77fdffb6e05adf263468a3dcda33",
      "tree": "0858a2cd08fffad89c05ab4a0d14ae832777f42b",
      "parents": [
        "6a841528d288ac420052f5c98fd426b0fcdc5b52"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:17 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:18 2010 +0930"
      },
      "message": "param: add a free hook to kernel_param_ops.\n\nThis allows us to generalize the KPARAM_KMALLOCED flag, by calling a function\non every parameter when a module is unloaded.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "9bbb9e5a33109b2832e2e63dcc7a132924ab374b",
      "tree": "87270ed3a61d0d0e654a61c8d44504cdef330192",
      "parents": [
        "a14fe249a8f74269c9e636bcbaa78f5bdb354ce3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:13 2010 +0930"
      },
      "message": "param: use ops in struct kernel_param, rather than get and set fns directly\n\nThis is more kernel-ish, saves some space, and also allows us to\nexpand the ops without breaking all the callers who are happy for the\nnew members to be NULL.\n\nThe few places which defined their own param types are changed to the\nnew scheme (more which crept in recently fixed in following patches).\n\nSince we\u0027re touching them anyway, we change get() and set() to take a\nconst struct kernel_param (which they really are).  This causes some\nharmless warnings until we fix them (in following patches).\n\nTo reduce churn, module_param_call creates the ops struct so the callers\ndon\u0027t have to change (and casts the functions to reduce warnings).\nThe modern version which takes an ops struct is called module_param_cb.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ville Syrjala \u003csyrjala@sci.fi\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Alessandro Rubini \u003crubini@ipvvis.unipv.it\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-input@vger.kernel.org\nCc: linux-fbdev-devel@lists.sourceforge.net\nCc: linux-nfs@vger.kernel.org\nCc: netdev@vger.kernel.org\n"
    },
    {
      "commit": "a14fe249a8f74269c9e636bcbaa78f5bdb354ce3",
      "tree": "3cae09b8db30b321401ca985d01e572e4cf75848",
      "parents": [
        "2e9fb9953df91ef6310da22182ca8f4496907502"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:11 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:12 2010 +0930"
      },
      "message": "param: move the EXPORT_SYMBOL to after the definitions.\n\nThis is modern style, and good to do before we start changing things.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "2e9fb9953df91ef6310da22182ca8f4496907502",
      "tree": "096a7b4c2cff57e6fb520f1abdc740260c57471f",
      "parents": [
        "d2800800d795350435936b08afb402ed9aab1e66"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:10 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:11 2010 +0930"
      },
      "message": "params: don\u0027t hand NULL values to param.set callbacks.\n\nAn audit by Dongdong Deng revealed that most driver-author-written param\ncalls don\u0027t handle val \u003d\u003d NULL (which happens when parameters are specified\nwith no \u003d, eg \"foo\" instead of \"foo\u003d1\").\n\nThe only real case to use this is boolean, so handle it specially for that\ncase and remove a source of bugs for everyone else.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\n"
    },
    {
      "commit": "f7ad3c6be90809b53b7f0ae9d4eaa45ce2564a79",
      "tree": "dc9b09188bab35320200f318b5e7b52f24dc43ad",
      "parents": [
        "542ce7a9bc6b3838832ae0f4f8de30c667af8ff3"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Aug 10 11:41:36 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 11 00:28:20 2010 -0400"
      },
      "message": "vfs: add helpers to get root and pwd\n\nAdd three helpers that retrieve a refcounted copy of the root and cwd\nfrom the supplied fs_struct.\n\n get_fs_root()\n get_fs_pwd()\n get_fs_root_and_pwd()\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0caa621065b2cc05d4e53655a34fd989f500b040",
      "tree": "4c48d514d615df6cad84d42dfba9d1b62744ce4c",
      "parents": [
        "0f7436a5b09d9c6d67ed272be9641af003b1b3b2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Aug 09 16:32:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:33:09 2010 -0700"
      },
      "message": "kernel/timer.c: fix kernel-doc function parameter warning\n\nFix kernel-doc warning, add @timer description:\n\n  Warning(kernel/timer.c:335): No description found for parameter \u0027timer\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "b34d8915c413acb51d837a45fb8747b61f65c020",
      "tree": "ced5fac166324634653d84b1afe2b958b3904f4d",
      "parents": [
        "e8a89cebdbaab14caaa26debdb4ffd493b8831af",
        "f33ebbe9da2c3c24664a0ad4f8fd83f293547e63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:07:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:07:51 2010 -0700"
      },
      "message": "Merge branch \u0027writable_limits\u0027 of git://decibel.fi.muni.cz/~xslaby/linux\n\n* \u0027writable_limits\u0027 of git://decibel.fi.muni.cz/~xslaby/linux:\n  unistd: add __NR_prlimit64 syscall numbers\n  rlimits: implement prlimit64 syscall\n  rlimits: switch more rlimit syscalls to do_prlimit\n  rlimits: redo do_setrlimit to more generic do_prlimit\n  rlimits: add rlimit64 structure\n  rlimits: do security check under task_lock\n  rlimits: allow setrlimit to non-current tasks\n  rlimits: split sys_setrlimit\n  rlimits: selinux, do rlimits changes under task_lock\n  rlimits: make sure -\u003erlim_max never grows in sys_setrlimit\n  rlimits: add task_struct to update_rlimit_cpu\n  rlimits: security, add task_struct to setrlimit\n\nFix up various system call number conflicts.  We not only added fanotify\nsystem calls in the meantime, but asm-generic/unistd.h added a wait4\nalong with a range of reserved per-architecture system calls.\n"
    },
    {
      "commit": "8c8946f509a494769a8c602b5ed189df01917d39",
      "tree": "dfd96bd6ca5ea6803c6d77f65ba37e04f78b2d3b",
      "parents": [
        "5f248c9c251c60af3403902b26e08de43964ea0b",
        "1968f5eed54ce47bde488fd9a450912e4a2d7138"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:39:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:39:13 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify: (132 commits)\n  fanotify: use both marks when possible\n  fsnotify: pass both the vfsmount mark and inode mark\n  fsnotify: walk the inode and vfsmount lists simultaneously\n  fsnotify: rework ignored mark flushing\n  fsnotify: remove global fsnotify groups lists\n  fsnotify: remove group-\u003emask\n  fsnotify: remove the global masks\n  fsnotify: cleanup should_send_event\n  fanotify: use the mark in handler functions\n  audit: use the mark in handler functions\n  dnotify: use the mark in handler functions\n  inotify: use the mark in handler functions\n  fsnotify: send fsnotify_mark to groups in event handling functions\n  fsnotify: Exchange list heads instead of moving elements\n  fsnotify: srcu to protect read side of inode and vfsmount locks\n  fsnotify: use an explicit flag to indicate fsnotify_destroy_mark has been called\n  fsnotify: use _rcu functions for mark list traversal\n  fsnotify: place marks on object in order of group memory address\n  vfs/fsnotify: fsnotify_close can delay the final work in fput\n  fsnotify: store struct file not struct path\n  ...\n\nFix up trivial delete/modify conflict in fs/notify/inotify/inotify.c.\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "8c4af38e9b2c2a78369c4e2e5706fe539ac64eb2",
      "tree": "17671814cc7afb4e5eaafad32f0ed0c428764515",
      "parents": [
        "547415d5edf8660aee040dc81d8c71b081a59bda"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Aug 09 17:20:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:06 2010 -0700"
      },
      "message": "gcc-4.6: printk: use stable variable to dump kmsg buffer\n\nkmsg_dump takes care to sample the global variables\ninside a spinlock, but then goes on to use the same\nvariables outside the spinlock region too.\n\nUse the correct variable. This will make the race\nwindow smaller.\n\nFound by gcc 4.6\u0027s new warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "878ae1274944908e1863b06b03a2c94907afaa20",
      "tree": "35030101311d4c3e092e59da5ef0210229a81a00",
      "parents": [
        "d7a7c573936a86474c4a5090a45a4bc6e680c117"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon Aug 09 17:20:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:06 2010 -0700"
      },
      "message": "stop_machine: struct cpu_stopper, remove alignment padding on 64 bits\n\nReorder elements in structure cpu_stopper to remove alignment padding on\n64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes\nper cpu.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "459b37d423104f00e87d1934821bc8739979d0e4",
      "tree": "22433f169c493acb46c6c46ba26c0e1bc6cb24a9",
      "parents": [
        "2ee7c922f20c96dba56fd378a466790d87f42e84"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Mon Aug 09 17:20:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:06 2010 -0700"
      },
      "message": "kernel/range: remove unused definition of ARRAY_SIZE()\n\nRemove duplicate definition of ARRAY_SIZE(), which was never used anyway.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ee7c922f20c96dba56fd378a466790d87f42e84",
      "tree": "9eda39ff1867c4695c1e7349045ccc23176b623b",
      "parents": [
        "5bf1d290b57e392eaf4bfb15c67f315fce4140be"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:20:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:05 2010 -0700"
      },
      "message": "sys_personality: remove the bogus checks in sys_personality()-\u003e__set_personality() path\n\nCleanup, no functional changes.\n\n- __set_personality() always changes -\u003eexec_domain/personality, the\n  special case when -\u003eexec_domain remains the same buys nothing but\n  complicates the code. Unify both cases to simplify the code.\n\n- The -EINVAL check in sys_personality() was never right. If we assume\n  that set_personality() can fail we should check the value it returns\n  instead of verifying that task-\u003epersonality was actually changed.\n\n  Remove it. Before the previous patch it was possible to hit this case\n  due to overflow problems, but this -EINVAL just indicated the kernel\n  bug.\n\nOTOH, probably it makes sense to change lookup_exec_domain() to return\nERR_PTR() instead of default_exec_domain if the search in exec_domains\nlist fails, and report this error to the user-space.  But this means\nanother user-space change, and we have in-kernel users which need fixes.\nFor example, PER_OSF4 falls into PER_MASK for unkown reason and nobody\ncares to register this domain.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Wenming Zhang \u003cwezhang@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2997b1042ec150616c1963b5e5e919ffd0b0ebf",
      "tree": "c970746ad3d5c3e0ccbd1695d07144dbe4534ec4",
      "parents": [
        "966cca029f739716fbcc8068b8c6dfe381f86fc3"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "hibernation: freeze swap at hibernation\n\nWhen taking a memory snapshot in hibernate_snapshot(), all (directly\ncalled) memory allocations use GFP_ATOMIC.  Hence swap misusage during\nhibernation never occurs.\n\nBut from a pessimistic point of view, there is no guarantee that no page\nallcation has __GFP_WAIT.  It is better to have a global indication \"we\nenter hibernation, don\u0027t use swap!\".\n\nThis patch tries to freeze new-swap-allocation during hibernation.  (All\nuser processes are frozenm so swapin is not a concern).\n\nThis way, no updates will happen to swap_map[] between\nhibernate_snapshot() and save_image().  Swap is thawed when swsusp_free()\nis called.  We can be assured that swap corruption will not occur.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a63d83f427fbce97a6cea0db2e64b0eb8435cd10",
      "tree": "8ac229cdf6e2289d97e82e35774057106fe7f4a2",
      "parents": [
        "74bcbf40546bb7500f2a7ba4ff3cc056a6bd004a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:19:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: badness heuristic rewrite\n\nThis a complete rewrite of the oom killer\u0027s badness() heuristic which is\nused to determine which task to kill in oom conditions.  The goal is to\nmake it as simple and predictable as possible so the results are better\nunderstood and we end up killing the task which will lead to the most\nmemory freeing while still respecting the fine-tuning from userspace.\n\nInstead of basing the heuristic on mm-\u003etotal_vm for each task, the task\u0027s\nrss and swap space is used instead.  This is a better indication of the\namount of memory that will be freeable if the oom killed task is chosen\nand subsequently exits.  This helps specifically in cases where KDE or\nGNOME is chosen for oom kill on desktop systems instead of a memory\nhogging task.\n\nThe baseline for the heuristic is a proportion of memory that each task is\ncurrently using in memory plus swap compared to the amount of \"allowable\"\nmemory.  \"Allowable,\" in this sense, means the system-wide resources for\nunconstrained oom conditions, the set of mempolicy nodes, the mems\nattached to current\u0027s cpuset, or a memory controller\u0027s limit.  The\nproportion is given on a scale of 0 (never kill) to 1000 (always kill),\nroughly meaning that if a task has a badness() score of 500 that the task\nconsumes approximately 50% of allowable memory resident in RAM or in swap\nspace.\n\nThe proportion is always relative to the amount of \"allowable\" memory and\nnot the total amount of RAM systemwide so that mempolicies and cpusets may\noperate in isolation; they shall not need to know the true size of the\nmachine on which they are running if they are bound to a specific set of\nnodes or mems, respectively.\n\nRoot tasks are given 3% extra memory just like __vm_enough_memory()\nprovides in LSMs.  In the event of two tasks consuming similar amounts of\nmemory, it is generally better to save root\u0027s task.\n\nBecause of the change in the badness() heuristic\u0027s baseline, it is also\nnecessary to introduce a new user interface to tune it.  It\u0027s not possible\nto redefine the meaning of /proc/pid/oom_adj with a new scale since the\nABI cannot be changed for backward compatability.  Instead, a new tunable,\n/proc/pid/oom_score_adj, is added that ranges from -1000 to +1000.  It may\nbe used to polarize the heuristic such that certain tasks are never\nconsidered for oom kill while others may always be considered.  The value\nis added directly into the badness() score so a value of -500, for\nexample, means to discount 50% of its memory consumption in comparison to\nother tasks either on the system, bound to the mempolicy, in the cpuset,\nor sharing the same memory controller.\n\n/proc/pid/oom_adj is changed so that its meaning is rescaled into the\nunits used by /proc/pid/oom_score_adj, and vice versa.  Changing one of\nthese per-task tunables will rescale the value of the other to an\nequivalent meaning.  Although /proc/pid/oom_adj was originally defined as\na bitshift on the badness score, it now shares the same linear growth as\n/proc/pid/oom_score_adj but with different granularity.  This is required\nso the ABI is not broken with userspace applications and allows oom_adj to\nbe deprecated for future removal.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e4228e1edb922afa83366803a1e5b3fa8e987c2",
      "tree": "e741de337b409a430e0f34647e059dd35a84f72c",
      "parents": [
        "e365893236ca78fa1fe2482ccbdc30e9abde6027"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: move sysctl declarations to oom.h\n\nThe three oom killer sysctl variables (sysctl_oom_dump_tasks,\nsysctl_oom_kill_allocating_task, and sysctl_panic_on_oom) are better\ndeclared in include/linux/oom.h rather than kernel/sysctl.c.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebabe9a9001af0af56c0c2780ca1576246e7a74b",
      "tree": "b263299f575c650b6e9d95c7c4bdeef958af2fc9",
      "parents": [
        "336fb3b97b78edc65bae0b223b83bf676cfe29e2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 07 18:53:11 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:42 2010 -0400"
      },
      "message": "pass a struct path to vfs_statfs\n\nWe\u0027ll need the path to implement the flags field for statvfs support.\nWe do have it available in all callers except:\n\n - ecryptfs_statfs.  This one doesn\u0027t actually need vfs_statfs but just\n   needs to do a caller to the lower filesystem statfs method.\n - sys_ustat.  Add a non-exported statfs_by_dentry helper for it which\n   doesn\u0027t won\u0027t be able to fill out the flags field later on.\n\nIn addition rename the helpers for statfs vs fstatfs to do_*statfs instead\nof the misleading vfs prefix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6500947a9cbb81cfa07ff344f16955d9c6ebe61",
      "tree": "6544ae45f39370fd35cb44076dc4628bd852bc19",
      "parents": [
        "38f51568005873a241a8ae6bf28c9ddd3f6a11ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "message": "workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier\n\nCommit 6ee0578b (workqueue: mark init_workqueues as early_initcall)\nmade workqueue SMP initialization depend on workqueue_cpu_callback(),\nwhich however was registered as hotcpu_notifier() and didn\u0027t get\ncalled if CONFIG_HOTPLUG_CPU is not set.  This made gcwqs on non-boot\nCPUs not create their initial workers leading to boot failures.  Fix\nit by making it a cpu_notifier.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-bisected-by: walt \u003cw41ter@gmail.com\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "38f51568005873a241a8ae6bf28c9ddd3f6a11ed",
      "tree": "88adaff7c44514bf3bc2610473d4b7fc266178c6",
      "parents": [
        "2d53056973079e6c2ffc0d7ae3afbdd3d4f18ae3"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "message": "workqueue: add missing __percpu markup in kernel/workqueue.c\n\nworks in schecule_on_each_cpu() is a percpu pointer but was missing\n__percpu markup.  Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
      "tree": "8e3fce9f27fd058904c0a3247a5c5ebb8df9fbe8",
      "parents": [
        "cd816a0d84377c4e87f55cbe934a23417f9f5743",
        "5f202bd5ca64132cdd7f186656bc0221f257733d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  do_coredump: Do not take BKL\n  init: Remove the BKL from startup code\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "62c2a7d969f30163f733c81158254b3095b23e72",
      "tree": "3e5dd79d874b996757814562b874a18415599a61",
      "parents": [
        "6e9624b8caec290d28b4c6d9ec75749df6372b87"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: push BKL into blktrace ioctls\n\nThe blktrace driver currently needs the BKL, but\nwe should not need to take that in the block layer,\nso just push it down into the driver itself.\n\nIt is quite likely that the BKL is not actually\nrequired in blktrace code and could be removed\nin a follow-on patch.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b6d91daee5cac6402186ff224c3af39d79f4a0e",
      "tree": "b1518cf0b6c301178e0a320f80610cd5b3aa7625",
      "parents": [
        "33659ebbae262228eef4e0fe990f393d1f0ed941"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "message": "block: unify flags for struct bio and struct request\n\nRemove the current bio flags and reuse the request flags for the bio, too.\nThis allows to more easily trace the type of I/O from the filesystem\ndown to the block driver.  There were two flags in the bio that were\nmissing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I\u0027ve\nrenamed two request flags that had a superflous RW in them.\n\nNote that the flags are in bio.h despite having the REQ_ name - as\nblkdev.h includes bio.h that is the only way to go for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "33659ebbae262228eef4e0fe990f393d1f0ed941",
      "tree": "fcb537f09359c8dad3a6f6e16dc4319562dc42cc",
      "parents": [
        "7e005f79791dcd58436c88ded4a7f5aed1b82147"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "message": "block: remove wrappers for request type/flags\n\nRemove all the trivial wrappers for the cmd_type and cmd_flags fields in\nstruct requests.  This allows much easier grepping for different request\ntypes instead of unwinding through macros.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "17879857821adad4e180c5d6457c3b8bbf1d0c0c",
      "tree": "28afa4b59847ca13b8d51a83fa04954916387de9",
      "parents": [
        "b62ad9ab181a67207a4c8c373461b587c4861a68",
        "4877c737283813bdb4bebfa3168c1585f6e3a8ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  xen: Do not suspend IPI IRQs.\n  powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts\n  ixp4xx-beeper: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupt\n  irq: Add new IRQ flag IRQF_NO_SUSPEND\n"
    },
    {
      "commit": "b62ad9ab181a67207a4c8c373461b587c4861a68",
      "tree": "ace1572964d81f5f9bbc10b7960c1f742832d744",
      "parents": [
        "af390084359a5de20046c901529b2b6a50b941cb",
        "b29230769e3482bbd62a07d6d9485371ee66a18f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "message": "Merge branch \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  um: Fix read_persistent_clock fallout\n  kgdb: Do not access xtime directly\n  powerpc: Clean up obsolete code relating to decrementer and timebase\n  powerpc: Rework VDSO gettimeofday to prevent time going backwards\n  clocksource: Add __clocksource_updatefreq_hz/khz methods\n  x86: Convert common clocksources to use clocksource_register_hz/khz\n  timekeeping: Make xtime and wall_to_monotonic static\n  hrtimer: Cleanup direct access to wall_to_monotonic\n  um: Convert to use read_persistent_clock\n  timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n  powerpc: Cleanup xtime usage\n  powerpc: Simplify update_vsyscall\n  time: Kill off CONFIG_GENERIC_TIME\n  time: Implement timespec_add\n  x86: Fix vtime/file timestamp inconsistencies\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n\nMuch less trivial conflicts in arch/powerpc/kernel/time.c resolved as\nper Thomas\u0027 earlier merge commit 47916be4e28c (\"Merge branch\n\u0027powerpc.cherry-picks\u0027 into timers/clocksource\")\n"
    },
    {
      "commit": "af390084359a5de20046c901529b2b6a50b941cb",
      "tree": "b73a6261d1b1f9fb34432cc9a47411a49330b8dc",
      "parents": [
        "7645e4320497b35ce9fb6c2269ebcd57af9fe735",
        "0fcb80818bc3ade5befd409051089f710adcf7b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Documentation: Add timers/timers-howto.txt\n  timer: Added usleep_range timer\n  Revert \"timer: Added usleep[_range] timer\"\n  clockevents: Remove the per cpu tick skew\n  posix_timer: Move copy_to_user(created_timer_id) down in timer_create()\n  timer: Added usleep[_range] timer\n  timers: Document meaning of deferrable timer\n"
    },
    {
      "commit": "ab69bcd66fb4be64edfc767365cb9eb084961246",
      "tree": "f7623585aee58978fc7814460fff517ec39138f2",
      "parents": [
        "c513b67e68787eceafeede32bcd0edbee45c0006",
        "6937e8f8c0135f2325194c372ada6dc655499992"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (28 commits)\n  driver core: device_rename\u0027s new_name can be const\n  sysfs: Remove owner field from sysfs struct attribute\n  powerpc/pci: Remove owner field from attribute initialization in PCI bridge init\n  regulator: Remove owner field from attribute initialization in regulator core driver\n  leds: Remove owner field from attribute initialization in bd2802 driver\n  scsi: Remove owner field from attribute initialization in ARCMSR driver\n  scsi: Remove owner field from attribute initialization in LPFC driver\n  cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n  Driver core: Add BUS_NOTIFY_BIND_DRIVER\n  driver core: fix memory leak on one error path in bus_register()\n  debugfs: no longer needs to depend on SYSFS\n  sysfs: Fix one more signature discrepancy between sysfs implementation and docs.\n  sysfs: fix discrepancies between implementation and documentation\n  dcdbas: remove a redundant smi_data_buf_free in dcdbas_exit\n  dmi-id: fix a memory leak in dmi_id_init error path\n  sysfs: sysfs_chmod_file\u0027s attr can be const\n  firmware: Update hotplug script\n  Driver core: move platform device creation helpers to .init.text (if MODULE\u003dn)\n  Driver core: reduce duplicated code for platform_device creation\n  Driver core: use kmemdup in platform_device_add_resources\n  ...\n"
    },
    {
      "commit": "18fab912d4fa70133df164d2dcf3310be0c38c34",
      "tree": "a577bc5d5465f67da5dd4b705059562ad55ed76e",
      "parents": [
        "575570f02761bd680ba5731c1dfd4701062e7fb2"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 28 14:14:01 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 06 14:34:45 2010 -0400"
      },
      "message": "tracing: Fix ring_buffer_read_page reading out of page boundary\n\nWith the configuration: CONFIG_DEBUG_PAGEALLOC\u003dy and Shaohua\u0027s patch:\n\n[PATCH]x86: make spurious_fault check correct pte bit\n\nFunction call graph trace with the following will trigger a page fault.\n\n# cd /sys/kernel/debug/tracing/\n# echo function_graph \u003e current_tracer\n# cat per_cpu/cpu1/trace_pipe_raw \u003e /dev/null\n\nBUG: unable to handle kernel paging request at ffff880006e99000\nIP: [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\nPGD 1b19063 PUD 1b1d063 PMD 3f067 PTE 6e99160\nOops: 0000 [#1] SMP DEBUG_PAGEALLOC\nlast sysfs file: /sys/devices/virtual/net/lo/operstate\nCPU 1\nModules linked in:\n\nPid: 1982, comm: cat Not tainted 2.6.35-rc6-aes+ #300 /Bochs\nRIP: 0010:[\u003cffffffff81085572\u003e]  [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\nRSP: 0018:ffff880006475e38  EFLAGS: 00010006\nRAX: 0000000000000ff0 RBX: ffff88000786c630 RCX: 000000000000001d\nRDX: ffff880006e98000 RSI: 0000000000000ff0 RDI: ffff880006e99000\nRBP: ffff880006475eb8 R08: 000000145d7008bd R09: 0000000000000000\nR10: 0000000000008000 R11: ffffffff815d9336 R12: ffff880006d08000\nR13: ffff880006e605d8 R14: 0000000000000000 R15: 0000000000000018\nFS:  00007f2b83e456f0(0000) GS:ffff880002100000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: ffff880006e99000 CR3: 00000000064a8000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess cat (pid: 1982, threadinfo ffff880006474000, task ffff880006e40770)\nStack:\n ffff880006475eb8 ffffffff8108730f 0000000000000ff0 000000145d7008bd\n\u003c0\u003e ffff880006e98010 ffff880006d08010 0000000000000296 ffff88000786c640\n\u003c0\u003e ffffffff81002956 0000000000000000 ffff8800071f4680 ffff8800071f4680\nCall Trace:\n [\u003cffffffff8108730f\u003e] ? ring_buffer_read_page+0x15a/0x24a\n [\u003cffffffff81002956\u003e] ? return_to_handler+0x15/0x2f\n [\u003cffffffff8108a575\u003e] tracing_buffers_read+0xb9/0x164\n [\u003cffffffff810debfe\u003e] vfs_read+0xaf/0x150\n [\u003cffffffff81002941\u003e] return_to_handler+0x0/0x2f\n [\u003cffffffff810248b0\u003e] __bad_area_nosemaphore+0x17e/0x1a1\n [\u003cffffffff81002941\u003e] return_to_handler+0x0/0x2f\n [\u003cffffffff810248e6\u003e] bad_area_nosemaphore+0x13/0x15\nCode: 80 25 b2 16 b3 00 fe c9 c3 55 48 89 e5 f0 80 0d a4 16 b3 00 02 c9 c3 55 31 c0 48 89 e5 48 83 3d 94 16 b3 00 01 c9 0f 94 c0 c3 55 \u003c8a\u003e 0f 48 89 e5 83 e1 1f b8 08 00 00 00 0f b6 d1 83 fa 1e 74 27\nRIP  [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\n RSP \u003cffff880006475e38\u003e\nCR2: ffff880006e99000\n---[ end trace a6877bb92ccb36bb ]---\n\nThe root cause is that ring_buffer_read_page() may read out of page\nboundary, because the boundary checking is done after reading. This is\nfixed via doing boundary checking before reading.\n\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nLKML-Reference: \u003c1280297641.2771.307.camel@yhuang-dev\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "3a3527b6461b1298cc53ce72f336346739297ac8",
      "tree": "30bea5dd7163f13d6c962888feaf53f50ead4cce",
      "parents": [
        "cc77b4db0017dab014ad7ea3d297e10f5b5bf028",
        "a53f4b61a76a7e95139b8e8abba02e9bfe87a58a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Revert \"net: Make accesses to -\u003ebr_port safe for sparse RCU\"\n  mce: convert to rcu_dereference_index_check()\n  net: Make accesses to -\u003ebr_port safe for sparse RCU\n  vfs: add fs.h to define struct file\n  lockdep: Add an in_workqueue_context() lockdep-based test function\n  rcu: add __rcu API for later sparse checking\n  rcu: add an rcu_dereference_index_check()\n  tree/tiny rcu: Add debug RCU head objects\n  mm: remove all rcu head initializations\n  fs: remove all rcu head initializations, except on_stack initializations\n  powerpc: remove all rcu head initializations\n"
    },
    {
      "commit": "575570f02761bd680ba5731c1dfd4701062e7fb2",
      "tree": "7789ba121ae95af2705fe9053fa1ae9e9fb04a5b",
      "parents": [
        "8a4fd31e0e8dc33f00b8949a12ac56310bac57bc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jul 27 16:06:34 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 06 12:19:15 2010 -0400"
      },
      "message": "tracing: Fix an unallocated memory access in function_graph\n\nWith CONFIG_DEBUG_PAGEALLOC, I observed an unallocated memory access in\nfunction_graph trace. It appears we find a small size entry in ring buffer,\nbut we access it as a big size entry. The access overflows the page size\nand touches an unallocated page.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nLKML-Reference: \u003c1280217994.32400.76.camel@sli10-desk.sh.intel.com\u003e\n[ Added a comment to explain the problem - SDR ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9779714c8af09d57527f18d9aa2207dcc27a8687",
      "tree": "52182f2289d9b7a77fbe119f4cd5726ef6494e66",
      "parents": [
        "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
        "65b5ac1479840a3e87f086d68e5ef91f3002e8e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "message": "Merge branch \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kgdb,docs: Update the kgdb docs to include kms\n  drm_fb_helper: Preserve capability to use atomic kms\n  i915: when kgdb is active display compression should be off\n  drm/i915: use new fb debug hooks\n  drm: add KGDB/KDB support\n  fb: add hooks to handle KDB enter/exit\n  kgdboc: Add call backs to allow kernel mode switching\n  vt,console,kdb: automatically set kdb LINES variable\n  vt,console,kdb: implement atomic console enter/leave functions\n"
    },
    {
      "commit": "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
      "tree": "12b16a8abe303fd86c156ddfbb86caa469e45a98",
      "parents": [
        "03c0c29aff7e56b722eb6c47eace222b140d0377",
        "3fa43aba08c5b5a4b407e402606fbe463239b14a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  debug_core,kdb: fix crash when arch does not have single step\n  kgdb,x86: use macro HBP_NUM to replace magic number 4\n  kgdb,mips: remove unused kgdb_cpu_doing_single_step operations\n  mm,kdb,kgdb: Add a debug reference for the kdb kmap usage\n  KGDB: Remove set but unused newPC\n  ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n  ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n  kgdb,powerpc: Replace hardcoded offset by BREAK_INSTR_SIZE\n  arm,kgdb: Add ability to trap into debugger on notify_die\n  gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n  gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n  kgdb,arm: Individual register get/set for arm\n  kgdb,mips: Individual register get/set for mips\n  kgdb,x86: Individual register get/set for x86\n  kgdb,kdb: individual register set and and get API\n  gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n  kgdb: remove custom hex_to_bin()implementation\n"
    },
    {
      "commit": "676db4af043014e852f67ba0349dae0071bd11f3",
      "tree": "63435bb80dc87454c54aec82e9ba78671b26e688",
      "parents": [
        "45daef0fdcc44f6af86fdebc4fc7eb7c79375398"
      ],
      "author": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "message": "cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n\nWe really shouldn\u0027t be asking userspace to create new root filesystems.\nSo follow along with all of the other in-kernel filesystems, and provide\na mount point in sysfs.\n\nFor cgroupfs, this should be in /sys/fs/cgroup/  This change provides\nthat mount point when the cgroup filesystem is registered in the kernel.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "94f17cd7887ca681ea88fda1fd9bf65c0ca161f0",
      "tree": "9606c654afd4cf939dd4557d33fa28467f514050",
      "parents": [
        "14ec5394827eea8df7bbf14775c52fc48fc97a40"
      ],
      "author": {
        "name": "Ian Abbott",
        "email": "abbotti@mev.co.uk",
        "time": "Mon Jun 07 12:57:12 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:33 2010 -0700"
      },
      "message": "hotplug: Support kernel/hotplug sysctl variable when !CONFIG_NET\n\nThe kernel/hotplug sysctl variable (/proc/sys/kernel/hotplug file) was\nmade conditional on CONFIG_NET by commit\nf743ca5e10f4145e0b3e6d11b9b46171e16af7ce (applied in 2.6.18) to fix\nproblems with undefined references in 2.6.16 when CONFIG_HOTPLUG\u003dy \u0026\u0026\n!CONFIG_NET, but this restriction is no longer needed.\n\nThis patch makes the kernel/hotplug sysctl variable depend only on\nCONFIG_HOTPLUG.\n\nSigned-off-by: Ian Abbott \u003cabbotti@mev.co.uk\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.COM\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "90d3417a3a4e810d67081dd106f0e603a856978f",
      "tree": "b9791c255f6d98114dcb5a0abf9228db4091a1ed",
      "parents": [
        "552c7dbb3459c219e44a65fd6bca21b1227c0e33",
        "51f3d0f474aaebbc253100fa32a49c8256812330"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: cleanup comments, remove noinline\n  module: group post-relocation functions into post_relocation()\n  module: move module args strndup_user to just before use\n  module: pass load_info into other functions\n  module: fix sysfs cleanup for !CONFIG_SYSFS\n  module: sysfs cleanup\n  module: layout_and_allocate\n  module: fix crash in get_ksymbol() when oopsing in module init\n  module: kallsyms functions take struct load_info\n  module: refactor out section header rewriting: FIX modversions\n  module: refactor out section header rewriting\n  module: add load_info\n  module: reduce stack usage for each_symbol()\n  module: refactor load_module part 5\n  module: refactor load_module part 4\n  module: refactor load_module part 3\n  module: refactor load_module part 2\n  module: refactor load_module\n  module: module_unload_init() cleanup\n"
    },
    {
      "commit": "cdd854bc42b5e6c79bbbc40c6600d995ffe6e747",
      "tree": "18c4dcc07bbb8aeb2b23bc812cd60cc293f36cd8",
      "parents": [
        "bbc4fd12a635492ad9d12bb418124fa2d5f0d734",
        "42a0ae2282b512d1a8f6f020327f5f7b8f31a5ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (79 commits)\n  powerpc/8xx: Add support for the MPC8xx based boards from TQC\n  powerpc/85xx: Introduce support for the Freescale P1022DS reference board\n  powerpc/85xx: Adding DTS for the STx GP3-SSA MPC8555 board\n  powerpc/85xx: Change deprecated binding for 85xx-based boards\n  powerpc/tqm85xx: add a quirk for ti1520 PCMCIA bridge\n  powerpc/tqm85xx: update PCI interrupt-map attribute\n  powerpc/mpc8308rdb: support for MPC8308RDB board from Freescale\n  powerpc/fsl_pci: add quirk for mpc8308 pcie bridge\n  powerpc/85xx: Cleanup QE initialization for MPC85xxMDS boards\n  powerpc/85xx: Fix booting for P1021MDS boards\n  powerpc/85xx: Fix SWIOTLB initalization for MPC85xxMDS boards\n  powerpc/85xx: kexec for SMP 85xx BookE systems\n  powerpc/5200/i2c: improve i2c bus error recovery\n  of/xilinxfb: update tft compatible versions\n  powerpc/fsl-diu-fb: Support setting display mode using EDID\n  powerpc/5121: doc/dts-bindings: update doc of FSL DIU bindings\n  powerpc/5121: shared DIU framebuffer support\n  powerpc/5121: move fsl-diu-fb.h to include/linux\n  powerpc/5121: fsl-diu-fb: fix issue with re-enabling DIU area descriptor\n  powerpc/512x: add clock structure for Video-IN (VIU) unit\n  ...\n"
    },
    {
      "commit": "c3d1f1746b966907ba5ad2f75ddca24db8b21147",
      "tree": "548a25e104d8bdb906030b8d3bf78fbfde0e5817",
      "parents": [
        "66eddbfcc1f6610fa7c73c8d20a57eaf8e284e2f",
        "0d365753d0b7c26043fdfa97790411606fb40112"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus: (150 commits)\n  MIPS: PowerTV: Separate PowerTV USB support from non-USB code\n  MIPS: strip the un-needed sections of vmlinuz\n  MIPS: Clean up the calculation of VMLINUZ_LOAD_ADDRESS\n  MIPS: Clean up arch/mips/boot/compressed/decompress.c\n  MIPS: Clean up arch/mips/boot/compressed/ld.script\n  MIPS: Unify the suffix of compressed vmlinux.bin\n  MIPS: PowerTV: Add Gaia platform definitions.\n  MIPS: BCM47xx: Fix nvram_getenv return value.\n  MIPS: Octeon: Allow more than 3.75GB of memory with PCIe\n  MIPS: Clean up notify_die() usage.\n  MIPS: Remove unused task_struct.trap_no field.\n  Documentation: Mention that KProbes is supported on MIPS\n  SAMPLES: kprobe_example: Make it print something on MIPS.\n  MIPS: kprobe: Add support.\n  MIPS: Add instrunction format for BREAK and SYSCALL\n  MIPS: kprobes: Define regs_return_value()\n  MIPS: Ritually kill stupid printk.\n  MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts.\n  MIPS: Octeon: Support 256 MSI on PCIe\n  MIPS: Decode core number for R2 CPUs.\n  ...\n"
    },
    {
      "commit": "81d4450732c68aa728f2c86c0c2993c6cfc3d032",
      "tree": "c332675648080d38e9f461286274534a16e7346b",
      "parents": [
        "b45cfba4e9005d64d419718e7ff7f7cab44c1994"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "message": "vt,console,kdb: automatically set kdb LINES variable\n\nThe kernel console interface stores the number of lines it is\nconfigured to use. The kdb debugger can greatly benefit by knowing how\nmany lines there are on the console for the pager functionality\nwithout having the end user compile in the setting or have to\nrepeatedly change it at run time.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCC: David Airlie \u003cairlied@linux.ie\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa43aba08c5b5a4b407e402606fbe463239b14a",
      "tree": "83c6b8a61a1c8a8795504217518300417c49c6a6",
      "parents": [
        "df4939350b345ebb44937902827aa75b8ad4998c"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "message": "debug_core,kdb: fix crash when arch does not have single step\n\nWhen an arch such as mips and microblaze does not implement either HW\nor software single stepping the debug core should re-enter kdb.  The\nkdb code will properly ignore the single step operation.  Attempting\nto single step the kernel without software or hardware support causes\nunpredictable kernel crashes.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "19063c776fe745fab11216422cf56489ee83b452",
      "tree": "a08994bd7badecc81ac04f4b6c4732986dea8588",
      "parents": [
        "955b61e597984745fb7d34c75708f6503b6aaeab"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n\nIn systems with more than one processor it is desirable to look at the\nper cpu trace buffers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    }
  ],
  "next": "955b61e597984745fb7d34c75708f6503b6aaeab"
}
