)]}'
{
  "log": [
    {
      "commit": "43742b14ffbe87453e96f4411389445fc707df57",
      "tree": "42e98afb73a408e2cf9b3525648657f8c7612d2c",
      "parents": [
        "eb4b2df8f20d4479eceeb9bc51695caaa7bcd229"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Sep 26 19:06:32 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Nov 11 09:36:23 2011 -0800"
      },
      "message": "ptrace: don\u0027t clear GROUP_STOP_SIGMASK on double-stop\n\n[This does not correspond to any specific patch in the upstream tree as it was\nfixed accidentally by rewriting the code in the 3.1 release]\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d740121\n\n1. Luke Macken triggered WARN_ON(!(group_stop \u0026 GROUP_STOP_SIGMASK))\n   in do_signal_stop().\n\n   This is because do_signal_stop() clears GROUP_STOP_SIGMASK part\n   unconditionally but doesn\u0027t update it if task_is_stopped().\n\n2. Looking at this problem I noticed that WARN_ON_ONCE(!ptrace) is\n   not right, a stopped-but-resumed tracee can clone the untraced\n   thread in the SIGNAL_STOP_STOPPED group, the new thread can start\n   another group-stop.\n\n   Remove this warning, we need more fixes to make it true.\n\nReported-by: Luke Macken \u003clmacken@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "09bb52774e0543390bdba59b67ade093d34e4906",
      "tree": "0515e384685d0898716bfb63cebd4c39be24ee27",
      "parents": [
        "12cb3e734a5616ea0057aee938c553ff6ccbdfbd"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Mon Oct 03 15:37:00 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Nov 11 09:35:54 2011 -0800"
      },
      "message": "genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier\n\ncommit 9bab0b7fbaceec47d32db51cd9e59c82fb071f5a upstream.\n\nThis adds a mechanism to resume selected IRQs during syscore_resume\ninstead of dpm_resume_noirq.\n\nUnder Xen we need to resume IRQs associated with IPIs early enough\nthat the resched IPI is unmasked and we can therefore schedule\nourselves out of the stop_machine where the suspend/resume takes\nplace.\n\nThis issue was introduced by 676dc3cf5bc3 \"xen: Use IRQF_FORCE_RESUME\".\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Jeremy Fitzhardinge \u003cJeremy.Fitzhardinge@citrix.com\u003e\nCc: xen-devel \u003cxen-devel@lists.xensource.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nLink: http://lkml.kernel.org/r/1318713254.11016.52.camel@dagon.hellion.org.uk\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "12cb3e734a5616ea0057aee938c553ff6ccbdfbd",
      "tree": "828c560746757c997c97a76777444a036a5ef9ac",
      "parents": [
        "d59892017c5f6de2fdee221f2a7788696e9f2cda"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 14 10:44:25 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Nov 11 09:35:53 2011 -0800"
      },
      "message": "tracing: Fix returning of duplicate data after EOF in trace_pipe_raw\n\ncommit 436fc280261dcfce5af38f08b89287750dc91cd2 upstream.\n\nThe trace_pipe_raw handler holds a cached page from the time the file\nis opened to the time it is closed. The cached page is used to handle\nthe case of the user space buffer being smaller than what was read from\nthe ring buffer. The left over buffer is held in the cache so that the\nnext read will continue where the data left off.\n\nAfter EOF is returned (no more data in the buffer), the index of\nthe cached page is set to zero. If a user app reads the page again\nafter EOF, the check in the buffer will see that the cached page\nis less than page size and will return the cached page again. This\nwill cause reading the trace_pipe_raw again after EOF to return\nduplicate data, making the output look like the time went backwards\nbut instead data is just repeated.\n\nThe fix is to not reset the index right after all data is read\nfrom the cache, but to reset it after all data is read and more\ndata exists in the ring buffer.\n\nReported-by: Jeremy Eder \u003cjeder@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c7f65094f7e2b8463a7c002e967e78db8f30468a",
      "tree": "da95910f073769273a1708fccc566e18337d0752",
      "parents": [
        "40b3c4dc2c6c44972323be3a1ebd62c4fe35fac0"
      ],
      "author": {
        "name": "hank",
        "email": "pyu@redhat.com",
        "time": "Tue Sep 20 13:53:39 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Nov 11 09:35:52 2011 -0800"
      },
      "message": "time: Change jiffies_to_clock_t() argument type to unsigned long\n\ncommit cbbc719fccdb8cbd87350a05c0d33167c9b79365 upstream.\n\nThe parameter\u0027s origin type is long. On an i386 architecture, it can\neasily be larger than 0x80000000, causing this function to convert it\nto a sign-extended u64 type.\n\nChange the type to unsigned long so we get the correct result.\n\nSigned-off-by: hank \u003cpyu@redhat.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n[ build fix ]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3cdf240310b4f3d94981d727d3660c78a50a40c6",
      "tree": "fae7019c027ef93773110db514fa39f63cff46f5",
      "parents": [
        "50f621d8f5b6f9e8ed931df12c595fd0e882f8e3"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Oct 26 13:10:39 2011 +1030"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Nov 11 09:35:48 2011 -0800"
      },
      "message": "kmod: prevent kmod_loop_msg overflow in __request_module()\n\ncommit 37252db6aa576c34fd794a5a54fb32d7a8b3a07a upstream.\n\nDue to post-increment in condition of kmod_loop_msg in __request_module(),\nthe system log can be spammed by much more than 5 instances of the \u0027runaway\nloop\u0027 message if the number of events triggering it makes the kmod_loop_msg\nto overflow.\n\nFix that by making sure we never increment it past the threshold.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "607ce3ed1cf6aa5af82a12faf1adf0de5d2f583e",
      "tree": "c362e60a92b358b460147092ea479bb3f52055c8",
      "parents": [
        "f62f4cad504f32e9d4e407ea5ba8a743da399a8a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 17 11:50:30 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 25 07:10:14 2011 +0200"
      },
      "message": "cputimer: Cure lock inversion\n\ncommit bcd5cff7216f9b2de0a148cc355eac199dc6f1cf upstream.\n\nThere\u0027s a lock inversion between the cputimer-\u003elock and rq-\u003elock;\nnotably the two callchains involved are:\n\n update_rlimit_cpu()\n   sighand-\u003esiglock\n   set_process_cpu_timer()\n     cpu_timer_sample_group()\n       thread_group_cputimer()\n         cputimer-\u003elock\n         thread_group_cputime()\n           task_sched_runtime()\n             -\u003epi_lock\n             rq-\u003elock\n\n scheduler_tick()\n   rq-\u003elock\n   task_tick_fair()\n     update_curr()\n       account_group_exec()\n         cputimer-\u003elock\n\nWhere the first one is enabling a CLOCK_PROCESS_CPUTIME_ID timer, and\nthe second one is keeping up-to-date.\n\nThis problem was introduced by e8abccb7193 (\"posix-cpu-timers: Cure\nSMP accounting oddities\").\n\nCure the problem by removing the cputimer-\u003elock and rq-\u003elock nesting,\nthis leaves concurrent enablers doing duplicate work, but the time\nwasted should be on the same order otherwise wasted spinning on the\nlock and the greater-than assignment filter should ensure we preserve\nmonotonicity.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1318928713.21167.4.camel@twins\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "60635529f6aec7572ae7009aabd80558cf2f43b4",
      "tree": "d1e0354991824e03a169dd784158cd1894c2d417",
      "parents": [
        "05ffb6746c59a967115714ea1e5b8412291874ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 17 08:24:24 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 25 07:10:14 2011 +0200"
      },
      "message": "Avoid using variable-length arrays in kernel/sys.c\n\ncommit a84a79e4d369a73c0130b5858199e949432da4c6 upstream.\n\nThe size is always valid, but variable-length arrays generate worse code\nfor no good reason (unless the function happens to be inlined and the\ncompiler sees the length for the simple constant it is).\n\nAlso, there seems to be some code generation problem on POWER, where\nHenrik Bakken reports that register r28 can get corrupted under some\nsubtle circumstances (interrupt happening at the wrong time?).  That all\nindicates some seriously broken compiler issues, but since variable\nlength arrays are bad regardless, there\u0027s little point in trying to\nchase it down.\n\n\"Just don\u0027t do that, then\".\n\nReported-by: Henrik Grindal Bakken \u003chenribak@cisco.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9374622a9923b2343ee2f5083ebe6c51fcc914c5",
      "tree": "e8bb3d4a219b791361b4c9d716350d17be0b7d8f",
      "parents": [
        "d7f04c486e494bf96166ff53b0957369e32509c6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:55 2011 -0700"
      },
      "message": "ftrace: Fix regression where ftrace breaks when modules are loaded\n\ncommit f7bc8b61f65726ff98f52e286b28e294499d7a08 upstream.\n\nEnabling function tracer to trace all functions, then load a module and\nthen disable function tracing will cause ftrace to fail.\n\nThis can also happen by enabling function tracing on the command line:\n\n  ftrace\u003dfunction\n\nand during boot up, modules are loaded, then you disable function tracing\nwith \u0027echo nop \u003e current_tracer\u0027 you will trigger a bug in ftrace that\nwill shut itself down.\n\nThe reason is, the new ftrace code keeps ref counts of all ftrace_ops that\nare registered for tracing. When one or more ftrace_ops are registered,\nall the records that represent the functions that the ftrace_ops will\ntrace have a ref count incremented. If this ref count is not zero,\nwhen the code modification runs, that function will be enabled for tracing.\nIf the ref count is zero, that function will be disabled from tracing.\n\nTo make sure the accounting was working, FTRACE_WARN_ON()s were added\nto updating of the ref counts.\n\nIf the ref count hits its max (\u003e 2^30 ftrace_ops added), or if\nthe ref count goes below zero, a FTRACE_WARN_ON() is triggered which\ndisables all modification of code.\n\nSince it is common for ftrace_ops to trace all functions in the kernel,\ninstead of creating \u003e 20,000 hash items for the ftrace_ops, the hash\ncount is just set to zero, and it represents that the ftrace_ops is\nto trace all functions. This is where the issues arrise.\n\nIf you enable function tracing to trace all functions, and then add\na module, the modules function records do not get the ref count updated.\nWhen the function tracer is disabled, all function records ref counts\nare subtracted. Since the modules never had their ref counts incremented,\nthey go below zero and the FTRACE_WARN_ON() is triggered.\n\nThe solution to this is rather simple. When modules are loaded, and\ntheir functions are added to the the ftrace pool, look to see if any\nftrace_ops are registered that trace all functions. And for those,\nupdate the ref count for the module function records.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n\n"
    },
    {
      "commit": "d7f04c486e494bf96166ff53b0957369e32509c6",
      "tree": "5f133f3a4b823bcbdbe66aa1265254bf8f7e316f",
      "parents": [
        "e35c99bc50ef74c02244d6e6d40868f9a49a59be"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 07 11:09:22 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:55 2011 -0700"
      },
      "message": "ftrace: Fix regression of :mod:module function enabling\n\ncommit 43dd61c9a09bd413e837df829e6bfb42159be52a upstream.\n\nThe new code that allows different utilities to pick and choose\nwhat functions they trace broke the :mod: hook that allows users\nto trace only functions of a particular module.\n\nThe reason is that the :mod: hook bypasses the hash that is setup\nto allow individual users to trace their own functions and uses\nthe global hash directly. But if the global hash has not been\nset up, it will cause a bug:\n\necho \u0027*:mod:radeon\u0027 \u003e /sys/kernel/debug/set_ftrace_filter\n\nproduces:\n\n [drm:drm_mode_getfb] *ERROR* invalid framebuffer id\n [drm:radeon_crtc_page_flip] *ERROR* failed to reserve new rbo buffer before flip\n BUG: unable to handle kernel paging request at ffffffff8160ec90\n IP: [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n PGD 1a05067 PUD 1a09063 PMD 80000000016001e1\n Oops: 0003 [#1] SMP Jul  7 04:02:28 phyllis kernel: [55303.858604] CPU 1\n Modules linked in: cryptd aes_x86_64 aes_generic binfmt_misc rfcomm bnep ip6table_filter hid radeon r8169 ahci libahci mii ttm drm_kms_helper drm video i2c_algo_bit intel_agp intel_gtt\n\n Pid: 10344, comm: bash Tainted: G        WC  3.0.0-rc5 #1 Dell Inc. Inspiron N5010/0YXXJJ\n RIP: 0010:[\u003cffffffff810d9136\u003e]  [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n RSP: 0018:ffff88003a96bda8  EFLAGS: 00010246\n RAX: ffff8801301735c0 RBX: ffffffff8160ec80 RCX: 0000000000306ee0\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880137c92940\n RBP: ffff88003a96bdb8 R08: ffff880137c95680 R09: 0000000000000000\n R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff81c9df78\n R13: ffff8801153d1000 R14: 0000000000000000 R15: 0000000000000000\n FS: 00007f329c18a700(0000) GS:ffff880137c80000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: ffffffff8160ec90 CR3: 000000003002b000 CR4: 00000000000006e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process bash (pid: 10344, threadinfo ffff88003a96a000, task ffff88012fcfc470)\n Stack:\n  0000000000000fd0 00000000000000fc ffff88003a96be38 ffffffff810d92f5\n  ffff88011c4c4e00 ffff880000000000 000000000b69f4d0 ffffffff8160ec80\n  ffff8800300e6f06 0000000081130295 0000000000000282 ffff8800300e6f00\n Call Trace:\n  [\u003cffffffff810d92f5\u003e] match_records+0x155/0x1b0\n  [\u003cffffffff810d940c\u003e] ftrace_mod_callback+0xbc/0x100\n  [\u003cffffffff810dafdf\u003e] ftrace_regex_write+0x16f/0x210\n  [\u003cffffffff810db09f\u003e] ftrace_filter_write+0xf/0x20\n  [\u003cffffffff81166e48\u003e] vfs_write+0xc8/0x190\n  [\u003cffffffff81167001\u003e] sys_write+0x51/0x90\n  [\u003cffffffff815c7e02\u003e] system_call_fastpath+0x16/0x1b\n Code: 48 8b 33 31 d2 48 85 f6 75 33 49 89 d4 4c 03 63 08 49 8b 14 24 48 85 d2 48 89 10 74 04 48 89 42 08 49 89 04 24 4c 89 60 08 31 d2\n RIP [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n  RSP \u003cffff88003a96bda8\u003e\n CR2: ffffffff8160ec90\n ---[ end trace a5d031828efdd88e ]---\n\nReported-by: Brian Marete \u003cmarete@toshnix.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "249cf808ba1a0d403fe7c476a74b66e2bc0a8e53",
      "tree": "e090348cc2bc2a3a1a226f35e6c6f99f76c1bebb",
      "parents": [
        "3217df8e225c8579293fd2e193ba5cee709b6eba"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 01 12:42:04 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "posix-cpu-timers: Cure SMP wobbles\n\ncommit d670ec13178d0fd8680e6742a2bc6e04f28f87d8 upstream.\n\nDavid reported:\n\n  Attached below is a watered-down version of rt/tst-cpuclock2.c from\n  GLIBC.  Just build it with \"gcc -o test test.c -lpthread -lrt\" or\n  similar.\n\n  Run it several times, and you will see cases where the main thread\n  will measure a process clock difference before and after the nanosleep\n  which is smaller than the cpu-burner thread\u0027s individual thread clock\n  difference.  This doesn\u0027t make any sense since the cpu-burner thread\n  is part of the top-level process\u0027s thread group.\n\n  I\u0027ve reproduced this on both x86-64 and sparc64 (using both 32-bit and\n  64-bit binaries).\n\n  For example:\n\n  [davem@boricha build-x86_64-linux]$ ./test\n  process: before(0.001221967) after(0.498624371) diff(497402404)\n  thread:  before(0.000081692) after(0.498316431) diff(498234739)\n  self:    before(0.001223521) after(0.001240219) diff(16698)\n  [davem@boricha build-x86_64-linux]$\n\n  The diff of \u0027process\u0027 should always be \u003e\u003d the diff of \u0027thread\u0027.\n\n  I make sure to wrap the \u0027thread\u0027 clock measurements the most tightly\n  around the nanosleep() call, and that the \u0027process\u0027 clock measurements\n  are the outer-most ones.\n\n  ---\n  #include \u003cunistd.h\u003e\n  #include \u003cstdio.h\u003e\n  #include \u003cstdlib.h\u003e\n  #include \u003ctime.h\u003e\n  #include \u003cfcntl.h\u003e\n  #include \u003cstring.h\u003e\n  #include \u003cerrno.h\u003e\n  #include \u003cpthread.h\u003e\n\n  static pthread_barrier_t barrier;\n\n  static void *chew_cpu(void *arg)\n  {\n\t  pthread_barrier_wait(\u0026barrier);\n\t  while (1)\n\t\t  __asm__ __volatile__(\"\" : : : \"memory\");\n\t  return NULL;\n  }\n\n  int main(void)\n  {\n\t  clockid_t process_clock, my_thread_clock, th_clock;\n\t  struct timespec process_before, process_after;\n\t  struct timespec me_before, me_after;\n\t  struct timespec th_before, th_after;\n\t  struct timespec sleeptime;\n\t  unsigned long diff;\n\t  pthread_t th;\n\t  int err;\n\n\t  err \u003d clock_getcpuclockid(0, \u0026process_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(pthread_self(), \u0026my_thread_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_init(\u0026barrier, NULL, 2);\n\t  err \u003d pthread_create(\u0026th, NULL, chew_cpu, NULL);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(th, \u0026th_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_wait(\u0026barrier);\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  sleeptime.tv_sec \u003d 0;\n\t  sleeptime.tv_nsec \u003d 500000000;\n\t  nanosleep(\u0026sleeptime, NULL);\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  diff \u003d process_after.tv_nsec - process_before.tv_nsec;\n\t  printf(\"process: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t process_before.tv_sec, process_before.tv_nsec,\n\t\t process_after.tv_sec, process_after.tv_nsec, diff);\n\t  diff \u003d th_after.tv_nsec - th_before.tv_nsec;\n\t  printf(\"thread:  before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t th_before.tv_sec, th_before.tv_nsec,\n\t\t th_after.tv_sec, th_after.tv_nsec, diff);\n\t  diff \u003d me_after.tv_nsec - me_before.tv_nsec;\n\t  printf(\"self:    before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t me_before.tv_sec, me_before.tv_nsec,\n\t\t me_after.tv_sec, me_after.tv_nsec, diff);\n\n\t  return 0;\n  }\n\nThis is due to us using p-\u003ese.sum_exec_runtime in\nthread_group_cputime() where we iterate the thread group and sum all\ndata. This does not take time since the last schedule operation (tick\nor otherwise) into account. We can cure this by using\ntask_sched_runtime() at the cost of having to take locks.\n\nThis also means we can (and must) do away with\nthread_group_sched_runtime() since the modified thread_group_cputime()\nis now more accurate and would deadlock when called from\nthread_group_sched_runtime().\n\nAside of that it makes the function safe on 32 bit systems. The old\ncode added t-\u003ese.sum_exec_runtime unprotected. sum_exec_runtime is a\n64bit value and could be changed on another cpu at the same time.\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1314874459.7945.22.camel@twins\nTested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4e41ce698822a9a2cfd324a11ea44f60fc95c871",
      "tree": "d2a7be264f9b5d631dcc7f26091d1f46e40ef565",
      "parents": [
        "113f8b8f997cd3a70e6e4c95ced9232d50b7a308"
      ],
      "author": {
        "name": "Simon Kirby",
        "email": "sim@hostway.ca",
        "time": "Thu Sep 22 17:03:46 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "sched: Fix up wchan borkage\n\ncommit 6ebbe7a07b3bc40b168d2afc569a6543c020d2e3 upstream.\n\nCommit c259e01a1ec (\"sched: Separate the scheduler entry for\npreemption\") contained a boo-boo wrecking wchan output. It forgot to\nput the new schedule() function in the __sched section and thereby\ndoesn\u0027t get properly ignored for things like wchan.\n\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110923000346.GA25425@hostway.ca\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "113f8b8f997cd3a70e6e4c95ced9232d50b7a308",
      "tree": "b538a6784088c3a84cef45aec6952f392d83c2b3",
      "parents": [
        "ca64baea4dd045516046a84a8860c3f9809b8984"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Sep 12 09:28:04 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Oct 16 14:14:51 2011 -0700"
      },
      "message": "sched/rt: Migrate equal priority tasks to available CPUs\n\ncommit 3be209a8e22cedafc1b6945608b7bb8d9887ab61 upstream.\n\nCommit 43fa5460fe60dea5c610490a1d263415419c60f6 (\"sched: Try not to\nmigrate higher priority RT tasks\") also introduced a change in behavior\nwhich keeps RT tasks on the same CPU if there is an equal priority RT\ntask currently running even if there are empty CPUs available.\n\nThis can cause unnecessary wakeup latencies, and can prevent the\nscheduler from balancing all RT tasks across available CPUs.\n\nThis change causes an RT task to search for a new CPU if an equal\npriority RT task is already running on wakeup.  Lower priority tasks\nwill still have to wait on higher priority tasks, but the system should\nstill balance out because there is always the possibility that if there\nare both a high and low priority RT tasks on a given CPU that the high\npriority task could wakeup while the low priority task is running and\nforce it to search for a better runqueue.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315837684-18733-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d5b1a08d0d0a73c716766275eb0c5648e143ca85",
      "tree": "2f62c1aa34c268658ca29b6776fdb73b71fcc7e9",
      "parents": [
        "c780713f786ee22532839502ed35f1bd1cb0fd1d"
      ],
      "author": {
        "name": "Thomas Tuttle",
        "email": "ttuttle@chromium.org",
        "time": "Wed Sep 14 16:22:28 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:31 2011 -0700"
      },
      "message": "workqueue: lock cwq access in drain_workqueue\n\ncommit fa2563e41c3d6d6e8af437643981ed28ae0cb56d upstream.\n\nTake cwq-\u003egcwq-\u003elock to avoid racing between drain_workqueue checking to\nmake sure the workqueues are empty and cwq_dec_nr_in_flight decrementing\nand then incrementing nr_active when it activates a delayed work.\n\nWe discovered this when a corner case in one of our drivers resulted in\nus trying to destroy a workqueue in which the remaining work would\nalways requeue itself again in the same workqueue.  We would hit this\nrace condition and trip the BUG_ON on workqueue.c:3080.\n\nSigned-off-by: Thomas Tuttle \u003cttuttle@chromium.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "79e72e1b97162d5f4d4ac320238b5cc82e97f040",
      "tree": "c62247ec0810df4eae3656101194ef651f1d75f4",
      "parents": [
        "1e6ad9a39701e09f93d2726ef3602e05f5787ff1"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Sep 11 13:59:27 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:27 2011 -0700"
      },
      "message": "genirq: Make irq_shutdown() symmetric vs. irq_startup again\n\ncommit ed585a651681e822089087b426e6ebfb6d3d9873 upstream.\n\nIf an irq_chip provides .irq_shutdown(), but neither of .irq_disable() or\n.irq_mask(), free_irq() crashes when jumping to NULL.\nFix this by only trying .irq_disable() and .irq_mask() if there\u0027s no\n.irq_shutdown() provided.\n\nThis revives the symmetry with irq_startup(), which tries .irq_startup(),\n.irq_enable(), and irq_unmask(), and makes it consistent with the comment for\nirq_chip.irq_shutdown() in \u003clinux/irq.h\u003e, which says:\n\n * @irq_shutdown:\tshut down the interrupt (defaults to -\u003edisable if NULL)\n\nThis is also how __free_irq() behaved before the big overhaul, cfr. e.g.\n3b56f0585fd4c02d047dc406668cb40159b2d340 (\"genirq: Remove bogus conditional\"),\nwhere the core interrupt code always overrode .irq_shutdown() to\n.irq_disable() if .irq_shutdown() was NULL.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: linux-m68k@lists.linux-m68k.org\nLink: http://lkml.kernel.org/r/1315742394-16036-2-git-send-email-geert@linux-m68k.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "70a4888b98f8fe19323a7a33d8d55be5d22513e8",
      "tree": "96c04a67bf267b3f5db230b66ffdcf4f35b40fab",
      "parents": [
        "f4e97b682ac92d2aed3db68f396b022113d9ad30"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 18 20:36:57 2011 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:09 2011 -0700"
      },
      "message": "sched: Fix a memory leak in __sdt_free()\n\ncommit feff8fa0075bdfd43c841e9d689ed81adda988d6 upstream.\n\nThis patch fixes the following memory leak:\n\nunreferenced object 0xffff880107266800 (size 512):\n  comm \"sched-powersave\", pid 3718, jiffies 4323097853 (age 27495.450s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff81133940\u003e] create_object+0x187/0x28b\n    [\u003cffffffff814ac103\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff811232ba\u003e] __kmalloc_node+0x104/0x159\n    [\u003cffffffff81044b98\u003e] kzalloc_node.clone.97+0x15/0x17\n    [\u003cffffffff8104cb90\u003e] build_sched_domains+0xb7/0x7f3\n    [\u003cffffffff8104d4df\u003e] partition_sched_domains+0x1db/0x24a\n    [\u003cffffffff8109ee4a\u003e] do_rebuild_sched_domains+0x3b/0x47\n    [\u003cffffffff810a00c7\u003e] rebuild_sched_domains+0x10/0x12\n    [\u003cffffffff8104d5ba\u003e] sched_power_savings_store+0x6c/0x7b\n    [\u003cffffffff8104d5df\u003e] sched_mc_power_savings_store+0x16/0x18\n    [\u003cffffffff8131322c\u003e] sysdev_class_store+0x20/0x22\n    [\u003cffffffff81193876\u003e] sysfs_write_file+0x108/0x144\n    [\u003cffffffff81135b10\u003e] vfs_write+0xaf/0x102\n    [\u003cffffffff81135d23\u003e] sys_write+0x4d/0x74\n    [\u003cffffffff814c8a42\u003e] system_call_fastpath+0x16/0x1b\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1313671017-4112-1-git-send-email-amwang@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f4e97b682ac92d2aed3db68f396b022113d9ad30",
      "tree": "fcaf4fb3e45f8a89313b003a10765f1dc97cbbaa",
      "parents": [
        "edbb7ce79e62d1028781b58337100108dc41471e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:01 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:09 2011 -0700"
      },
      "message": "sched: Move blk_schedule_flush_plug() out of __schedule()\n\ncommit 9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c upstream.\n\nThere is no real reason to run blk_schedule_flush_plug() with\ninterrupts and preemption disabled.\n\nMove it into schedule() and call it when the task is going voluntarily\nto sleep. There might be false positives when the task is woken\nbetween that call and actually scheduling, but that\u0027s not really\ndifferent from being woken immediately after switching away.\n\nThis fixes a deadlock in the scheduler where the\nblk_schedule_flush_plug() callchain enables interrupts and thereby\nallows a wakeup to happen of the task that\u0027s going to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-dwfxtra7yg1b5r65m32ywtct@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "edbb7ce79e62d1028781b58337100108dc41471e",
      "tree": "ada11412d0cba8bf4a3a900e14429935bee8322a",
      "parents": [
        "1ed2053563d4d0bf70864a9df53c7a5dce7724e9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:00 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:08 2011 -0700"
      },
      "message": "sched: Separate the scheduler entry for preemption\n\ncommit c259e01a1ec90063042f758e409cd26b2a0963c8 upstream.\n\nBlock-IO and workqueues call into notifier functions from the\nscheduler core code with interrupts and preemption disabled. These\ncalls should be made before entering the scheduler core.\n\nTo simplify this, separate the scheduler core code into\n__schedule(). __schedule() is directly called from the places which\nset PREEMPT_ACTIVE and from schedule(). This allows us to add the work\nchecks into schedule(), so they are only called when a task voluntary\ngoes to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110622174918.813258321@linutronix.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c3a44b4d23f4cb1b3eafb8c2c74d88f452d50a6d",
      "tree": "1ae49d74350fd3febbc73b1516924bc7faed7e7d",
      "parents": [
        "0898dd1603e1dec711217b85329c031b30f81710"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:07 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible denial of service with high freq periodic timers\n\ncommit 6af7e471e5a7746b8024d70b4363d3dfe41d36b8 upstream.\n\nIts possible to jam up the alarm timers by setting very small interval\ntimers, which will cause the alarmtimer subsystem to spend all of its time\nfiring and restarting timers. This can effectivly lock up a box.\n\nA deeper fix is needed, closely mimicking the hrtimer code, but for now\njust cap the interval to 100us to avoid userland hanging the system.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0898dd1603e1dec711217b85329c031b30f81710",
      "tree": "fce87fc0b31865100b5e35d26ce1159fc5261a36",
      "parents": [
        "26cf1a7ba1a6cc19d48c993bebd3be94c48af74a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:51:56 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:07 2011 -0700"
      },
      "message": "alarmtimers: Memset itimerspec passed into alarm_timer_get\n\ncommit ea7802f630d356acaf66b3c0b28c00a945fc35dc upstream.\n\nFollowing common_timer_get, zero out the itimerspec passed in.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "26cf1a7ba1a6cc19d48c993bebd3be94c48af74a",
      "tree": "d58851c18bab62e7ce380ca8c32fa2b515149599",
      "parents": [
        "5607cbd164dc1913cc52abba893c0961617eafd2"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:25:35 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:40:06 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible null pointer traversal\n\ncommit 971c90bfa2f0b4fe52d6d9002178d547706f1343 upstream.\n\nWe don\u0027t check if old_setting is non null before assigning it, so\ncorrect this.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7f4e15693062aa1afcfc8f05f6790baf29bacfa3",
      "tree": "d4ef5496034aaaeba1ce945f810ee56ec2a5fce5",
      "parents": [
        "04aa37b5f943920017ad094e776cd5514b1a9246"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Thu Aug 25 15:59:11 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 03 11:39:46 2011 -0700"
      },
      "message": "kernel/printk: do not turn off bootconsole in printk_late_init() if keep_bootcon\n\ncommit 4c30c6f566c0989ddaee3407da44751e340a63ed upstream.\n\nIt seems that 7bf693951a8e (\"console: allow to retain boot console via\nboot option keep_bootcon\") doesn\u0027t always achieve what it aims, as when\nprintk_late_init() runs it unconditionally turns off all boot consoles.\nWith this patch, I am able to see more messages on the boot console in\nKVM guests than I can without, when keep_bootcon is specified.\n\nI think it is appropriate for the relevant -stable trees.  However, it\u0027s\nmore of an annoyance than a serious bug (ideally you don\u0027t need to keep\nthe boot console around as console handover should be working -- I was\nencountering a situation where the console handover wasn\u0027t working and\nnot having the boot console available meant I couldn\u0027t see why).\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Fabio M. Di Nitto \u003cfdinitto@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "512228f0be3af44bf5cf6cc5750ddd279bbedaf3",
      "tree": "4efaddfd0a353537b70c2a1059ebf49a1b624286",
      "parents": [
        "80b5405f36fba0caa9a142f978c00afa6aa7714c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Aug 19 16:15:10 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:16 2011 -0700"
      },
      "message": "Add a personality to report 2.6.x version numbers\n\ncommit be27425dcc516fd08245b047ea57f83b8f6f0903 upstream.\n\nI ran into a couple of programs which broke with the new Linux 3.0\nversion.  Some of those were binary only.  I tried to use LD_PRELOAD to\nwork around it, but it was quite difficult and in one case impossible\nbecause of a mix of 32bit and 64bit executables.\n\nFor example, all kind of management software from HP doesnt work, unless\nwe pretend to run a 2.6 kernel.\n\n  $ uname -a\n  Linux svivoipvnx001 3.0.0-08107-g97cd98f #1062 SMP Fri Aug 12 18:11:45 CEST 2011 i686 i686 i386 GNU/Linux\n\n  $ hpacucli ctrl all show\n\n  Error: No controllers detected.\n\n  $ rpm -qf /usr/sbin/hpacucli\n  hpacucli-8.75-12.0\n\nAnother notable case is that Python now reports \"linux3\" from\nsys.platform(); which in turn can break things that were checking\nsys.platform() \u003d\u003d \"linux2\":\n\n  https://bugzilla.mozilla.org/show_bug.cgi?id\u003d664564\n\nIt seems pretty clear to me though it\u0027s a bug in the apps that are using\n\u0027\u003d\u003d\u0027 instead of .startswith(), but this allows us to unbreak broken\nprograms.\n\nThis patch adds a UNAME26 personality that makes the kernel report a\n2.6.40+x version number instead.  The x is the x in 3.x.\n\nI know this is somewhat ugly, but I didn\u0027t find a better workaround, and\ncompatibility to existing programs is important.\n\nSome programs also read /proc/sys/kernel/osrelease.  This can be worked\naround in user space with mount --bind (and a mount namespace)\n\nTo use:\n\n  wget ftp://ftp.kernel.org/pub/linux/kernel/people/ak/uname26/uname26.c\n  gcc -o uname26 uname26.c\n  ./uname26 program\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6857336c7fddaf460a13adc0c395698fcf9423ff",
      "tree": "dac27f38c28bf9d30535b5abc51a6424e7b32afb",
      "parents": [
        "e25d2c749d25fc559f374766af66d267c97e0877"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jun 23 11:19:26 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:08 2011 -0700"
      },
      "message": "x86, mtrr: lock stop machine during MTRR rendezvous sequence\n\ncommit 6d3321e8e2b3bf6a5892e2ef673c7bf536e3f904 upstream.\n\nMTRR rendezvous sequence using stop_one_cpu_nowait() can potentially\nhappen in parallel with another system wide rendezvous using\nstop_machine(). This can lead to deadlock (The order in which\nworks are queued can be different on different cpu\u0027s. Some cpu\u0027s\nwill be running the first rendezvous handler and others will be running\nthe second rendezvous handler. Each set waiting for the other set to join\nfor the system wide rendezvous, leading to a deadlock).\n\nMTRR rendezvous sequence is not implemented using stop_machine() as this\ngets called both from the process context aswell as the cpu online paths\n(where the cpu has not come online and the interrupts are disabled etc).\nstop_machine() works with only online cpus.\n\nFor now, take the stop_machine mutex in the MTRR rendezvous sequence that\ngets called from an online cpu (here we are in the process context\nand can potentially sleep while taking the mutex). And the MTRR rendezvous\nthat gets triggered during cpu online doesn\u0027t need to take this stop_machine\nlock (as the stop_machine() already ensures that there is no cpu hotplug\ngoing on in parallel by doing get_online_cpus())\n\n    TBD: Pursue a cleaner solution of extending the stop_machine()\n         infrastructure to handle the case where the calling cpu is\n         still not online and use this for MTRR rendezvous sequence.\n\nfixes: https://bugzilla.novell.com/show_bug.cgi?id\u003d672008\n\nReported-by: Vadim Kotelnikov \u003cvadimuzzz@inbox.ru\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/20110623182056.807230326@sbsiddha-MOBL3.sc.intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9a420aaeab0231727fc620fca9cd0e46e6438e93",
      "tree": "0bf9479537631cf02f2146a215a7e4fe9d0c5156",
      "parents": [
        "d31bf2883542cd3414674238f94123bd1d9c0b9f"
      ],
      "author": {
        "name": "jhbird.choi@samsung.com",
        "email": "jhbird.choi@samsung.com",
        "time": "Thu Jul 21 15:29:14 2011 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 29 13:29:06 2011 -0700"
      },
      "message": "genirq: Fix wrong bit operation\n\ncommit 1dd75f91ae713049eb6baaa640078f3a6549e522 upstream.\n\n(!msk \u0026 0x01) should be !(msk \u0026 0x01)\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nLink: http://lkml.kernel.org/r/1311229754-6003-1-git-send-email-jhbird.choi@samsung.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3169336d0e0e6a41049b6798404a6ec1eb3ca80d",
      "tree": "4f4d3a236c8025b13d5f5630c538950330234ce0",
      "parents": [
        "2020455efc64a6ac564e30407dc060f69b300493"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Thu Jun 30 11:21:32 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 15 18:31:32 2011 -0700"
      },
      "message": "futex: Fix regression with read only mappings\n\ncommit 9ea71503a8ed9184d2d0b8ccc4d269d05f7940ae upstream.\n\ncommit 7485d0d3758e8e6491a5c9468114e74dc050785d (futexes: Remove rw\nparameter from get_futex_key()) in 2.6.33 fixed two problems:  First, It\nprevented a loop when encountering a ZERO_PAGE. Second, it fixed RW\nMAP_PRIVATE futex operations by forcing the COW to occur by\nunconditionally performing a write access get_user_pages_fast() to get\nthe page.  The commit also introduced a user-mode regression in that it\nbroke futex operations on read-only memory maps.  For example, this\nbreaks workloads that have one or more reader processes doing a\nFUTEX_WAIT on a futex within a read only shared file mapping, and a\nwriter processes that has a writable mapping issuing the FUTEX_WAKE.\n\nThis fixes the regression for valid futex operations on RO mappings by\ntrying a RO get_user_pages_fast() when the RW get_user_pages_fast()\nfails. This change makes it necessary to also check for invalid use\ncases, such as anonymous RO mappings (which can never change) and the\nZERO_PAGE which the commit referenced above was written to address.\n\nThis patch does restore the original behavior with RO MAP_PRIVATE\nmappings, which have inherent user-mode usage problems and don\u0027t really\nmake sense.  With this patch performing a FUTEX_WAIT within a RO\nMAP_PRIVATE mapping will be successfully woken provided another process\nupdates the region of the underlying mapped file.  However, the mmap()\nman page states that for a MAP_PRIVATE mapping:\n\n  It is unspecified whether changes made to the file after\n  the mmap() call are visible in the mapped region.\n\nSo user-mode users attempting to use futex operations on RO MAP_PRIVATE\nmappings are depending on unspecified behavior.  Additionally a\nRO MAP_PRIVATE mapping could fail to wake up in the following case.\n\n  Thread-A: call futex(FUTEX_WAIT, memory-region-A).\n            get_futex_key() return inode based key.\n            sleep on the key\n  Thread-B: call mprotect(PROT_READ|PROT_WRITE, memory-region-A)\n  Thread-B: write memory-region-A.\n            COW happen. This process\u0027s memory-region-A become related\n            to new COWed private (ie PageAnon\u003d1) page.\n  Thread-B: call futex(FUETX_WAKE, memory-region-A).\n            get_futex_key() return mm based key.\n            IOW, we fail to wake up Thread-A.\n\nOnce again doing something like this is just silly and users who do\nsomething like this get what they deserve.\n\nWhile RO MAP_PRIVATE mappings are nonsensical, checking for a private\nmapping requires walking the vmas and was deemed too costly to avoid a\nuserspace hang.\n\nThis Patch is based on Peter Zijlstra\u0027s initial patch with modifications to\nonly allow RO mappings for futex operations that need VERIFY_READ access.\n\nReported-by: David Oliver \u003cdavid@rgmadvisors.com\u003e\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: peterz@infradead.org\nCc: eric.dumazet@gmail.com\nCc: zvonler@rgmadvisors.com\nCc: hughd@google.com\nLink: http://lkml.kernel.org/r/1309450892-30676-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b045b9a265fb46d8197b7d78aff1a8f6ab8e23df",
      "tree": "650daaba84981a7ac749611f2ccee133380940c5",
      "parents": [
        "cb83d9f7840657a0f0cc29ba5c01ce7320e28e9a"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 25 17:12:32 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "mm/futex: fix futex writes on archs with SW tracking of dirty \u0026 young\n\ncommit 2efaca927f5cd7ecd0f1554b8f9b6a9a2c329c03 upstream.\n\nI haven\u0027t reproduced it myself but the fail scenario is that on such\nmachines (notably ARM and some embedded powerpc), if you manage to hit\nthat futex path on a writable page whose dirty bit has gone from the PTE,\nyou\u0027ll livelock inside the kernel from what I can tell.\n\nIt will go in a loop of trying the atomic access, failing, trying gup to\n\"fix it up\", getting succcess from gup, go back to the atomic access,\nfailing again because dirty wasn\u0027t fixed etc...\n\nSo I think you essentially hang in the kernel.\n\nThe scenario is probably rare\u0027ish because affected architecture are\nembedded and tend to not swap much (if at all) so we probably rarely hit\nthe case where dirty is missing or young is missing, but I think Shan has\na piece of SW that can reliably reproduce it using a shared writable\nmapping \u0026 fork or something like that.\n\nOn archs who use SW tracking of dirty \u0026 young, a page without dirty is\neffectively mapped read-only and a page without young unaccessible in the\nPTE.\n\nAdditionally, some architectures might lazily flush the TLB when relaxing\nwrite protection (by doing only a local flush), and expect a fault to\ninvalidate the stale entry if it\u0027s still present on another processor.\n\nThe futex code assumes that if the \"in_atomic()\" access -EFAULT\u0027s, it can\n\"fix it up\" by causing get_user_pages() which would then be equivalent to\ntaking the fault.\n\nHowever that isn\u0027t the case.  get_user_pages() will not call\nhandle_mm_fault() in the case where the PTE seems to have the right\npermissions, regardless of the dirty and young state.  It will eventually\nupdate those bits ...  in the struct page, but not in the PTE.\n\nAdditionally, it will not handle the lazy TLB flushing that can be\nrequired by some architectures in the fault case.\n\nBasically, gup is the wrong interface for the job.  The patch provides a\nmore appropriate one which boils down to just calling handle_mm_fault()\nsince what we are trying to do is simulate a real page fault.\n\nThe futex code currently attempts to write to user memory within a\npagefault disabled section, and if that fails, tries to fix it up using\nget_user_pages().\n\nThis doesn\u0027t work on archs where the dirty and young bits are maintained\nby software, since they will gate access permission in the TLB, and will\nnot be updated by gup().\n\nIn addition, there\u0027s an expectation on some archs that a spurious write\nfault triggers a local TLB flush, and that is missing from the picture as\nwell.\n\nI decided that adding those \"features\" to gup() would be too much for this\nalready too complex function, and instead added a new simpler\nfixup_user_fault() which is essentially a wrapper around handle_mm_fault()\nwhich the futex code can call.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix some nits Darren saw, fiddle comment layout]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nReported-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nTested-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nCc: David Laight \u003cDavid.Laight@ACULAB.COM\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Darren Hart \u003cdarren.hart@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ff7b3dc6a634832a912445db8bffd18b05c15043",
      "tree": "f43c5cd10398a1c91f8ff6b061a8b663663d84fb",
      "parents": [
        "f35869d69b65ac9323a0d7ee13c062e1636d4a1b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 14:32:51 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "tracing: Have \"enable\" file use refcounts like the \"filter\" file\n\ncommit 40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe upstream.\n\nThe \"enable\" file for the event system can be removed when a module\nis unloaded and the event system only has events from that module.\nAs the event system nr_events count goes to zero, it may be freed\nif its ref_count is also set to zero.\n\nLike the \"filter\" file, the \"enable\" file may be opened by a task and\nreferenced later, after a module has been unloaded and the events for\nthat event system have been removed.\n\nAlthough the \"filter\" file referenced the event system structure,\nthe \"enable\" file only references a pointer to the event system\nname. Since the name is freed when the event system is removed,\nit is possible that an access to the \"enable\" file may reference\na freed pointer.\n\nUpdate the \"enable\" file to use the subsystem_open() routine that\nthe \"filter\" file uses, to keep a reference to the event system\nstructure while the \"enable\" file is opened.\n\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f35869d69b65ac9323a0d7ee13c062e1636d4a1b",
      "tree": "4923438fa988ce2602b00f2607d8b8d58c39da00",
      "parents": [
        "a3b573350c48edd314b4bdd4f3025b4fda13f0dd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 11:36:06 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:38 2011 -0700"
      },
      "message": "tracing: Fix bug when reading system filters on module removal\n\ncommit e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02 upstream.\n\nThe event system is freed when its nr_events is set to zero. This happens\nwhen a module created an event system and then later the module is\nremoved. Modules may share systems, so the system is allocated when\nit is created and freed when the modules are unloaded and all the\nevents under the system are removed (nr_events set to zero).\n\nThe problem arises when a task opened the \"filter\" file for the\nsystem. If the module is unloaded and it removed the last event for\nthat system, the system structure is freed. If the task that opened\nthe filter file accesses the \"filter\" file after the system has\nbeen freed, the system will access an invalid pointer.\n\nBy adding a ref_count, and using it to keep track of what\nis using the event system, we can free it after all users\nare finished with the event system.\n\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "462fee3af72df0de7b60b96c525ffe8baf4db0f0",
      "tree": "2ef57937c4aedce2879d9af2cd8ce183342e9c1a",
      "parents": [
        "6e243f86d1424d7a1d67da4f8527239a786d9c2f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 28 20:47:10 2011 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 04 21:58:35 2011 -0700"
      },
      "message": "perf: Fix software event overflow\n\nThe below patch is for -stable only, upstream has a much larger patch\nthat contains the below hunk in commit a8b0ca17b80e92faab46ee7179ba9e99ccb61233\n\nVince found that under certain circumstances software event overflows\ngo wrong and deadlock. Avoid trying to delete a timer from the timer\ncallback.\n\nReported-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f",
      "tree": "489c64380668e8c5a29d3f36f37554e4b081a647",
      "parents": [
        "acc11eab70591744369722280c9ce162a6193494",
        "d1e9ae47a0285d3f1699e8219ce50f656243b93f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: align __lock_task_sighand() irq disabling and RCU\n  softirq,rcu: Inform RCU of irq_exit() activity\n  sched: Add irq_{enter,exit}() to scheduler_ipi()\n  rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n  rcu: Streamline code produced by __rcu_read_unlock()\n  rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n  rcu: decrease rcu_report_exp_rnp coupling with scheduler\n"
    },
    {
      "commit": "d1e9ae47a0285d3f1699e8219ce50f656243b93f",
      "tree": "2f5a68b5ba1677bcd49ee759f09ffc5ccccb1455",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b",
        "a841796f11c90d53dbac773be56b04fbee8af272"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "a841796f11c90d53dbac773be56b04fbee8af272",
      "tree": "9401a53faddecc7c1644565d0e22630028f82bca",
      "parents": [
        "ec433f0c51527426989ea8a38a856d810d739414"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 19 03:25:36 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 11:04:54 2011 -0700"
      },
      "message": "signal: align __lock_task_sighand() irq disabling and RCU\n\nThe __lock_task_sighand() function calls rcu_read_lock() with interrupts\nand preemption enabled, but later calls rcu_read_unlock() with interrupts\ndisabled.  It is therefore possible that this RCU read-side critical\nsection will be preempted and later RCU priority boosted, which means that\nrcu_read_unlock() will call rt_mutex_unlock() in order to deboost itself, but\nwith interrupts disabled. This results in lockdep splats, so this commit\nnests the RCU read-side critical section within the interrupt-disabled\nregion of code.  This prevents the RCU read-side critical section from\nbeing preempted, and thus prevents the attempt to deboost with interrupts\ndisabled.\n\nIt is quite possible that a better long-term fix is to make rt_mutex_unlock()\ndisable irqs when acquiring the rt_mutex structure\u0027s -\u003ewait_lock.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ec433f0c51527426989ea8a38a856d810d739414",
      "tree": "001550d7b18b3f2b5326da3f9dfd893e31c8dc1c",
      "parents": [
        "c5d753a55ac92e09816d410cd17093813f1a904b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:32:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:12 2011 -0700"
      },
      "message": "softirq,rcu: Inform RCU of irq_exit() activity\n\nThe rcu_read_unlock_special() function relies on in_irq() to exclude\nscheduler activity from interrupt level.  This fails because exit_irq()\ncan invoke the scheduler after clearing the preempt_count() bits that\nin_irq() uses to determine that it is at interrupt level.  This situation\ncan result in failures as follows:\n\n $task\t\t\tIRQ\t\tSoftIRQ\n\n rcu_read_lock()\n\n /* do stuff */\n\n \u003cpreempt\u003e |\u003d UNLOCK_BLOCKED\n\n rcu_read_unlock()\n   --t-\u003ercu_read_lock_nesting\n\n\t\t\tirq_enter();\n\t\t\t/* do stuff, don\u0027t use RCU */\n\t\t\tirq_exit();\n\t\t\t  sub_preempt_count(IRQ_EXIT_OFFSET);\n\t\t\t  invoke_softirq()\n\n\t\t\t\t\tttwu();\n\t\t\t\t\t  spin_lock_irq(\u0026pi-\u003elock)\n\t\t\t\t\t  rcu_read_lock();\n\t\t\t\t\t  /* do stuff */\n\t\t\t\t\t  rcu_read_unlock();\n\t\t\t\t\t    rcu_read_unlock_special()\n\t\t\t\t\t      rcu_report_exp_rnp()\n\t\t\t\t\t        ttwu()\n\t\t\t\t\t          spin_lock_irq(\u0026pi-\u003elock) /* deadlock */\n\n   rcu_read_unlock_special(t);\n\nEd can simply trigger this \u0027easy\u0027 because invoke_softirq() immediately\ndoes a ttwu() of ksoftirqd/# instead of doing the in-place softirq stuff\nfirst, but even without that the above happens.\n\nCure this by also excluding softirqs from the\nrcu_read_unlock_special() handler and ensuring the force_irqthreads\nksoftirqd/# wakeup is done from full softirq context.\n\n[ Alternatively, delaying the -\u003ercu_read_lock_nesting decrement\n  until after the special handling would make the thing more robust\n  in the face of interrupts as well.  And there is a separate patch\n  for that. ]\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c5d753a55ac92e09816d410cd17093813f1a904b",
      "tree": "162c63edcc463e18d50fb5b5be479785f02222c4",
      "parents": [
        "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:07:25 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "sched: Add irq_{enter,exit}() to scheduler_ipi()\n\nEnsure scheduler_ipi() calls irq_{enter,exit} when it does some actual\nwork. Traditionally we never did any actual work from the resched IPI\nand all magic happened in the return from interrupt path.\n\nNow that we do do some work, we need to ensure irq_{enter,exit} are\ncalled so that we don\u0027t confuse things.\n\nThis affects things like timekeeping, NO_HZ and RCU, basically\neverything with a hook in irq_enter/exit.\n\nExplicit examples of things going wrong are:\n\n  sched_clock_cpu() -- has a callback when leaving NO_HZ state to take\n                    a new reading from GTOD and TSC. Without this\n                    callback, time is stuck in the past.\n\n  RCU -- needs in_irq() to work in order to avoid some nasty deadlocks\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f",
      "tree": "2e8349c57b1f0563a27be49410f413b643ded1a9",
      "parents": [
        "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 17 21:14:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n\nThe addition of RCU read-side critical sections within runqueue and\npriority-inheritance lock critical sections introduced some deadlock\ncycles, for example, involving interrupts from __rcu_read_unlock()\nwhere the interrupt handlers call wake_up().  This situation can cause\nthe instance of __rcu_read_unlock() invoked from interrupt to do some\nof the processing that would otherwise have been carried out by the\ntask-level instance of __rcu_read_unlock().  When the interrupt-level\ninstance of __rcu_read_unlock() is called with a scheduler lock held\nfrom interrupt-entry/exit situations where in_irq() returns false,\ndeadlock can result.\n\nThis commit resolves these deadlocks by using negative values of\nthe per-task -\u003ercu_read_lock_nesting counter to indicate that an\ninstance of __rcu_read_unlock() is in flight, which in turn prevents\ninstances from interrupt handlers from doing any special processing.\nThis patch is inspired by Steven Rostedt\u0027s earlier patch that similarly\nmade __rcu_read_unlock() guard against interrupt-mediated recursion\n(see https://lkml.org/lkml/2011/7/15/326), but this commit refines\nSteven\u0027s approach to avoid the need for preemption disabling on the\n__rcu_read_unlock() fastpath and to also avoid the need for manipulating\na separate per-CPU variable.\n\nThis patch avoids need for preempt_disable() by instead using negative\nvalues of the per-task -\u003ercu_read_lock_nesting counter.  Note that nested\nrcu_read_lock()/rcu_read_unlock() pairs are still permitted, but they will\nnever see -\u003ercu_read_lock_nesting go to zero, and will therefore never\ninvoke rcu_read_unlock_special(), thus preventing them from seeing the\nRCU_READ_UNLOCK_BLOCKED bit should it be set in -\u003ercu_read_unlock_special.\nThis patch also adds a check for -\u003ercu_read_unlock_special being negative\nin rcu_check_callbacks(), thus preventing the RCU_READ_UNLOCK_NEED_QS\nbit from being set should a scheduling-clock interrupt occur while\n__rcu_read_unlock() is exiting from an outermost RCU read-side critical\nsection.\n\nOf course, __rcu_read_unlock() can be preempted during the time that\n-\u003ercu_read_lock_nesting is negative.  This could result in the setting\nof the RCU_READ_UNLOCK_BLOCKED bit after __rcu_read_unlock() checks it,\nand would also result it this task being queued on the corresponding\nrcu_node structure\u0027s blkd_tasks list.  Therefore, some later RCU read-side\ncritical section would enter rcu_read_unlock_special() to clean up --\nwhich could result in deadlock if that critical section happened to be in\nthe scheduler where the runqueue or priority-inheritance locks were held.\n\nThis situation is dealt with by making rcu_preempt_note_context_switch()\ncheck for negative -\u003ercu_read_lock_nesting, thus refraining from\nqueuing the task (and from setting RCU_READ_UNLOCK_BLOCKED) if we are\nalready exiting from the outermost RCU read-side critical section (in\nother words, we really are no longer actually in that RCU read-side\ncritical section).  In addition, rcu_preempt_note_context_switch()\ninvokes rcu_read_unlock_special() to carry out the cleanup in this case,\nwhich clears out the -\u003ercu_read_unlock_special bits and dequeues the task\n(if necessary), in turn avoiding needless delay of the current RCU grace\nperiod and needless RCU priority boosting.\n\nIt is still illegal to call rcu_read_unlock() while holding a scheduler\nlock if the prior RCU read-side critical section has ever had either\npreemption or irqs enabled.  However, the common use case is legal,\nnamely where then entire RCU read-side critical section executes with\nirqs disabled, for example, when the scheduler lock is held across the\nentire lifetime of the RCU read-side critical section.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d110235d2c331c4f79e0879f51104be79e17a469",
      "tree": "d56bb05a1274f9e7c6a20467d2d04713c185e7ce",
      "parents": [
        "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 20 18:42:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:54:33 2011 +0200"
      },
      "message": "sched: Avoid creating superfluous NUMA domains on non-NUMA systems\n\nWhen creating sched_domains, stop when we\u0027ve covered the entire\ntarget span instead of continuing to create domains, only to\nlater find they\u0027re redundant and throw them away again.\n\nThis avoids single node systems from touching funny NUMA\nsched_domain creation code and reduces the risks of the new\nSD_OVERLAP code.\n\nRequested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: mahesh@linux.vnet.ibm.com\nCc: benh@kernel.crashing.org\nCc: linuxppc-dev@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1311180177.29152.57.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c",
      "tree": "414bf6bdbad3f04f629fa2a72254ea85acf723f4",
      "parents": [
        "9c3f75cbd144014bea6af866a154cc2e73ab2287"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 15 10:35:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:41 2011 +0200"
      },
      "message": "sched: Allow for overlapping sched_domain spans\n\nAllow for sched_domain spans that overlap by giving such domains their\nown sched_group list instead of sharing the sched_groups amongst\neach-other.\n\nThis is needed for machines with more than 16 nodes, because\nsched_domain_node_span() will generate a node mask from the\n16 nearest nodes without regard if these masks have any overlap.\n\nCurrently sched_domains have a sched_group that maps to their child\nsched_domain span, and since there is no overlap we share the\nsched_group between the sched_domains of the various CPUs. If however\nthere is overlap, we would need to link the sched_group list in\ndifferent ways for each cpu, and hence sharing isn\u0027t possible.\n\nIn order to solve this, allocate private sched_groups for each CPU\u0027s\nsched_domain but have the sched_groups share a sched_group_power\nstructure such that we can uniquely track the power.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-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\nLink: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-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\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2",
      "tree": "fe53c0731f5c3a6e56e2358eee9b8f17c3af83f4",
      "parents": [
        "7765be2fec0f476fcd61812d5f9406b04c765020"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 21 05:57:18 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:53 2011 -0700"
      },
      "message": "rcu: Streamline code produced by __rcu_read_unlock()\n\nGiven some common flag combinations, particularly -Os, gcc will inline\nrcu_read_unlock_special() despite its being in an unlikely() clause.\nUse noinline to prohibit this misoptimization.\n\nIn addition, move the second barrier() in __rcu_read_unlock() so that\nit is not on the common-case code path.  This will allow the compiler to\ngenerate better code for the common-case path through __rcu_read_unlock().\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\n"
    },
    {
      "commit": "7765be2fec0f476fcd61812d5f9406b04c765020",
      "tree": "e89ccb3fbd5655090b05f608f8e1d39924f23a9a",
      "parents": [
        "131906b0062ddde7f85bbe67754983c754648bd8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jul 14 12:24:11 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:52 2011 -0700"
      },
      "message": "rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n\nThe RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task\nwrite to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure\u0027s\n-\u003ercu_read_unlock_special field, but, as noted by Steven Rostedt, without\ncorrectly synchronizing all accesses to -\u003ercu_read_unlock_special.\nThis could result in bits in -\u003ercu_read_unlock_special being spuriously\nset and cleared due to conflicting accesses, which in turn could result\nin deadlocks between the rcu_node structure\u0027s -\u003elock and the scheduler\u0027s\nrq and pi locks.  These deadlocks would result from RCU incorrectly\nbelieving that the just-ended RCU read-side critical section had been\npreempted and/or boosted.  If that RCU read-side critical section was\nexecuted with either rq or pi locks held, RCU\u0027s ensuing (incorrect)\ncalls to the scheduler would cause the scheduler to attempt to once\nagain acquire the rq and pi locks, resulting in deadlock.  More complex\ndeadlock cycles are also possible, involving multiple rq and pi locks\nas well as locks from multiple rcu_node structures.\n\nThis commit fixes synchronization by creating -\u003ercu_boosted field in\ntask_struct that is accessed and modified only when holding the -\u003elock\nin the rcu_node structure on which the task is queued (on that rcu_node\nstructure\u0027s -\u003eblkd_tasks list).  This results in tasks accessing only\ntheir own current-\u003ercu_read_unlock_special fields, making unsynchronized\naccess once again legal, and keeping the rcu_read_unlock() fastpath free\nof atomic instructions and memory barriers.\n\nThe reason that the rcu_read_unlock() fastpath does not need to access\nthe new current-\u003ercu_boosted field is that this new field cannot\nbe non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the\ncurrent-\u003ercu_read_unlock_special field.  Therefore, rcu_read_unlock()\nneed only test current-\u003ercu_read_unlock_special: if that is zero, then\ncurrent-\u003ercu_boosted must also be zero.\n\nThis bug does not affect TINY_PREEMPT_RCU because this implementation\nof RCU accesses current-\u003ercu_read_unlock_special with irqs disabled,\nthus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on.\n\nMaybe-reported-by: Dave Jones \u003cdavej@redhat.com\u003e\nMaybe-reported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "131906b0062ddde7f85bbe67754983c754648bd8",
      "tree": "1b92eacb707befb294b4d9985f10aa44715cba16",
      "parents": [
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jul 17 02:05:49 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:51 2011 -0700"
      },
      "message": "rcu: decrease rcu_report_exp_rnp coupling with scheduler\n\nPREEMPT_RCU read-side critical sections blocking an expedited grace\nperiod invoke rcu_report_exp_rnp().  When the last such critical section\nhas completed, rcu_report_exp_rnp() invokes the scheduler to wake up the\ntask that invoked synchronize_rcu_expedited() -- needlessly holding the\nroot rcu_node structure\u0027s lock while doing so, thus needlessly providing\na way for RCU and the scheduler to deadlock.\n\nThis commit therefore releases the root rcu_node structure\u0027s lock before\ncalling wake_up().\n\nReported-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
      "tree": "d5fb84d4bec0dc62b1ec1a19a01718620caa9918",
      "parents": [
        "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu:\n  rcu: Prevent RCU callbacks from executing before scheduler initialized\n"
    },
    {
      "commit": "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
      "tree": "0777bdbb0424a6ce948c817247757a4ba3b01a32",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 11 16:28:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:02 2011 -0700"
      },
      "message": "sched: Fix 32bit race\n\nCommit 3fe1698b7fe0 (\"sched: Deal with non-atomic min_vruntime reads\non 32bit\") forgot to initialize min_vruntime_copy which could lead to\nan infinite while loop in task_waking_fair() under some circumstances\n(early boot, lucky timing).\n\n[ This bug was also reported by others that blamed it on the RCU\n  initialization problems ]\n\nReported-and-tested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0d304172f49061b4ff78f9e2b02719ac69c8a7e",
      "tree": "882123e565ced895910490514f6e676c708b5001",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 10 15:57:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 13 08:17:56 2011 -0700"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that\nare not yet initialized.  Therefore, when these callbacks are invoked,\nhard hangs and crashes ensue.  This commit therefore prevents RCU\ncallbacks from being invoked until after the scheduler is fully up and\nrunning, as in after multiple tasks have been spawned.\n\nIt might well turn out that a better approach is to identify the specific\nRCU callbacks that are causing this problem, but that discussion will\nwait until such time as someone really needs an RCU callback to be invoked\n(as opposed to merely registered) during early boot.\n\nReported-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nReported-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nTested-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\n"
    },
    {
      "commit": "d93a881dd7d71ad0e6504af232be2795044ab686",
      "tree": "71fc6918e676a0cf53d585f5a253646a49b60c83",
      "parents": [
        "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
        "24109afd17426e1a2b72141e4a2b730057e1a0ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  pcmcia: pxa2xx/vpac270: free gpios on exist rather than requesting\n  ARM: pxa/raumfeld: fix device name for codec ak4104\n  ARM: pxa/raumfeld: display initialisation fixes\n  ARM: pxa/raumfeld: adapt to upcoming hardware change\n  ARM: pxa: fix gpio_to_chip() clash with gpiolib namespace\n  genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n  arm: mach-vt8500: add forgotten irq_data conversion\n  ARM: pxa168: correct nand pmu setting\n  ARM: pxa910: correct nand pmu setting\n  ARM: pxa: fix PGSR register address calculation\n"
    },
    {
      "commit": "31cb852809c86541c817538c98003678546dfa58",
      "tree": "324808c5a9def43a7f15c0fda97f58ee01f03c42",
      "parents": [
        "2a9d6df425d7b46b23cbc8673b2dfefa4678abdb",
        "4d4cf23cdde2f8f9324f5684a7f349e182039529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -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 / Hibernate: Fix free_unnecessary_pages()\n"
    },
    {
      "commit": "27a3b735b70651f28db03e5f92775a40661ba7a6",
      "tree": "9f300b93aa34381aa1d3121e9d53e8c8e1623a24",
      "parents": [
        "85746e429f8e5dc8c5c0beadc0f099cb1feab93e",
        "161b6ae0e067e421b20bb35caf66bdb405c929ac",
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
        "e4c2fb0d5776b58049d2556b456144a4db3fe5a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  debugobjects: Fix boot crash when kmemleak and debugobjects enabled\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  jump_label: Fix jump_label update for modules\n  oprofile, x86: Fix race in nmi handler while starting counters\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Disable (revert) SCHED_LOAD_SCALE increase\n  sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n"
    },
    {
      "commit": "659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5",
      "tree": "a875904f1c457f321563060491956266a57c6514",
      "parents": [
        "d30e1521b2afb5e6f21ca8bc1a4b6ec2afc93597"
      ],
      "author": {
        "name": "Simon Guinot",
        "email": "sguinot@lacie.com",
        "time": "Wed Jul 06 12:41:31 2011 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 07 16:02:26 2011 +0000"
      },
      "message": "genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n\nThis fixes a regression introduced by e59347a \"arm: orion:\nUse generic irq chip\".\n\nDepending on the device, interrupts acknowledgement is done by setting\nor by clearing a dedicated register. Replace irq_gc_ack() with some\n{set,clr}_bit variants allows to handle both cases.\n\nNote that this patch affects the following SoCs: Davinci, Samsung and\nOrion. Except for this last, the change is minor: irq_gc_ack() is just\nrenamed into irq_gc_ack_set_bit().\n\nFor the Orion SoCs, the edge GPIO interrupts support is currently\nbroken. irq_gc_ack() try to acknowledge a such interrupt by setting\nthe corresponding cause register bit. The Orion GPIO device expect the\nopposite. To fix this issue, the irq_gc_ack_clr_bit() variant is used.\n\nTested on Network Space v2.\n\nReported-by: Joey Oravec \u003cjoravec@drewtech.com\u003e\nSigned-off-by: Simon Guinot \u003csguinot@lacie.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "4d4cf23cdde2f8f9324f5684a7f349e182039529",
      "tree": "f84a26d15f1112cc7c452d1fdac3bd70857774e0",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "message": "PM / Hibernate: Fix free_unnecessary_pages()\n\nThere is a bug in free_unnecessary_pages() that causes it to\nattempt to free too many pages in some cases, which triggers the\nBUG_ON() in memory_bm_clear_bit() for copy_bm.  Namely, if\ncount_data_pages() is initially greater than alloc_normal, we get\nto_free_normal equal to 0 and \"save\" greater from 0.  In that case,\nif the sum of \"save\" and count_highmem_pages() is greater than\nalloc_highmem, we subtract a positive number from to_free_normal.\nHence, since to_free_normal was 0 before the subtraction and is\nan unsigned int, the result is converted to a huge positive number\nthat is used as the number of pages to free.\n\nFix this bug by checking if to_free_normal is actually greater\nthan or equal to the number we\u0027re going to subtract from it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "23c570a67448e803408191f529ed9a83fd34a25a",
      "tree": "8705e1ad863d745c42d8eb95a8c3f53f26fd0e38",
      "parents": [
        "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Tue Jul 05 23:44:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:54:08 2011 -0700"
      },
      "message": "resource: ability to resize an allocated resource\n\nProvides the ability to resize a resource that is already allocated.\nThis functionality is put in place to support reallocation needs of\npci resources.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd62287e364c0d15d517c6ced4e4808b54711475",
      "tree": "12544d4a0b84f378691be2a1d3d48a46f42595fc",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Jun 04 15:03:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:25:03 2011 +0200"
      },
      "message": "sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n\nCommit c8b28116 (\"sched: Increase SCHED_LOAD_SCALE resolution\")\nintended to have no user-visible effect, but allows setting\ncpu.shares to \u003c MIN_SHARES, which the user then sees.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nLink: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
      "tree": "e59debeb1aea1650fd490b0264f66b4f70a26aca",
      "parents": [
        "debf1d4948bccf58fa172acb1a7306792d77705d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 21 10:35:55 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 29 09:59:17 2011 -0400"
      },
      "message": "jump_label: Fix jump_label update for modules\n\nThe jump labels entries for modules do not stop at __stop__jump_table,\nbut after mod-\u003ejump_entries + mod_num_jump_entries.\n\nBy checking the wrong end point, module trace events never get enabled.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nTested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4E00038B.2060404@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c4caea9d697043cc5a458b96411b86d7f6babd",
      "tree": "cf4de2553fbfcafc41eb4f84bc9ee1eb69adf725",
      "parents": [
        "08142579b6ca35883c1ed066a2681de6f6917062"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Jun 27 16:18:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "taskstats: don\u0027t allow duplicate entries in listener mode\n\nCurrently a single process may register exit handlers unlimited times.\nIt may lead to a bloated listeners chain and very slow process\nterminations.\n\nEg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of\nkernel memory is stolen for the handlers chain and \"time id\" shows 2-7\nseconds instead of normal 0.003.  It makes it possible to exhaust all\nkernel memory and to eat much of CPU time by triggerring numerous exits\non a single CPU.\n\nThe patch limits the number of times a single process may register\nitself on a single CPU to one.\n\nOne little issue is kept unfixed - as taskstats_exit() is called before\nexit_files() in do_exit(), the orphaned listener entry (if it was not\nexplicitly deregistered) is kept until the next someone\u0027s exit() and\nimplicit deregistration in send_cpu_listeners().  So, if a process\nregistered itself as a listener exits and the next spawned process gets\nthe same pid, it would inherit taskstats attributes.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8abf55883431a91d4877933240c8419b7fc17274",
      "tree": "c7de035cf068f3edf5053a30d912c2024bac88d8",
      "parents": [
        "4d362ad280fca0f2e098de607534f72f2c243e12",
        "b1eb085c064d0843826d7402db7fc5f3032e01fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "message": "Merge branch \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtc: vt8500: Fix build error \u0026 cleanup rtc_class_ops-\u003eupdate_irq_enable()\n  alarmtimers: Return -ENOTSUPP if no RTC device is present\n  alarmtimers: Handle late rtc module loading\n"
    },
    {
      "commit": "1c6b39ad3f01514fd8dd84b5b412bafb75c19388",
      "tree": "bd31cf5d3e67acc9ef23c97ddd92c961b73f40c7",
      "parents": [
        "c008ba58af24dc5d0d8e9fe6e59d876910254761"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:47:37 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:32:28 2011 -0700"
      },
      "message": "alarmtimers: Return -ENOTSUPP if no RTC device is present\n\nToralf Förster and Richard Weinberger noted that if there is\nno RTC device, the alarm timers core prints out an annoying\n\"ALARM timers will not wake from suspend\" message.\n\nThis warning has been removed in a previous patch, however\nthe issue still remains:  The original idea was to support\nalarm timers even if there was no rtc device, as long as the\nsystem didn\u0027t go into suspend.\n\nHowever, after further consideration, communicating to the application\nthat alarmtimers are not fully functional seems like the better\nsolution.\n\nSo this patch makes it so we return -ENOTSUPP to any posix _ALARM\nclockid calls if there is no backing RTC device on the system.\n\nFurther this changes the behavior where when there is no rtc device\nwe will check for one on clock_getres, clock_gettime, timer_create,\nand timer_nsleep instead of on suspend.\n\nCC: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: Richard Weinberger \u003crichard@nod.at\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nReported by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c008ba58af24dc5d0d8e9fe6e59d876910254761",
      "tree": "0e718ce49992b6a7dfde619cd6ebf05afe06ae12",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:27:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 15:38:33 2011 -0700"
      },
      "message": "alarmtimers: Handle late rtc module loading\n\nThe alarmtimers code currently picks a rtc device to use at\nlate init time. However, if your rtc driver is loaded as a module,\nit may be registered after the alarmtimers late init code, leaving\nthe alarmtimers nonfunctional.\n\nThis patch moves the the rtcdevice selection to when we actually try\nto use it, allowing us to make use of rtc modules that may have been\nloaded at any point since bootup.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8440f4b19494467883f8541b7aa28c7bbf6ac92b",
      "tree": "3682e034553d8b9ac676e17b144fe5b15cbb0174",
      "parents": [
        "f76b168b6f117a49d36307053e1acbe30580ea5b"
      ],
      "author": {
        "name": "Michal Kubecek",
        "email": "mkubecek@suse.cz",
        "time": "Sat Jun 18 20:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:06 2011 +0200"
      },
      "message": "PM: Free memory bitmaps if opening /dev/snapshot fails\n\nWhen opening /dev/snapshot device, snapshot_open() creates memory\nbitmaps which are freed in snapshot_release(). But if any of the\ncallbacks called by pm_notifier_call_chain() returns NOTIFY_BAD, open()\nfails, snapshot_release() is never called and bitmaps are not freed.\nNext attempt to open /dev/snapshot then triggers BUG_ON() check in\ncreate_basic_memory_bitmaps(). This happens e.g. when vmwatchdog module\nis active on s390x.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8816ead9d8e7c2745788e0684797e1912b504f33",
      "tree": "2a619a821024d31be2ce6ff422f287792379fe5b",
      "parents": [
        "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
        "203db2952bc87f5d610c9ad53a7d02b85897721f",
        "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
        "b5199515c25cca622495eb9c6a8a1d275e775088",
        "c1f5c54b57341e872a9d375dccef7257f86033ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "message": "Merge branches \u0027perf-urgent-for-linus\u0027, \u0027sched-urgent-for-linus\u0027, \u0027timers-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tools/perf: Fix static build of perf tool\n  tracing: Fix regression in printk_formats file\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Make watchdog robust vs. interruption\n  timerfd: Fix wakeup of processes when timer is cancelled on clock change\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, MAINTAINERS: Add x86 MCE people\n  x86, efi: Do not reserve boot services regions within reserved areas\n"
    },
    {
      "commit": "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
      "tree": "ff4eb7e809e547bc3c0680dfd51793a8f57b2063",
      "parents": [
        "de505e709ffb09a7382ca8e0d8c7dbb171ba5830",
        "f8b7fc6b514f34a51875dd48dff70d4d17a54f38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Move RCU_BOOST #ifdefs to header file\n  rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n  rcu: Use softirq to address performance regression\n  rcu: Simplify curing of load woes\n"
    },
    {
      "commit": "879669961b11e7f40b518784863a259f735a72bf",
      "tree": "9bff5392e365caf656c9dd9be38f7471c182278c",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 17 11:25:59 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 09:40:48 2011 -0700"
      },
      "message": "KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring\n\n____call_usermodehelper() now erases any credentials set by the\nsubprocess_inf::init() function.  The problem is that commit\n17f60a7da150 (\"capabilites: allow the application of capability limits\nto usermode helpers\") creates and commits new credentials with\nprepare_kernel_cred() after the call to the init() function.  This wipes\nall keyrings after umh_keys_init() is called.\n\nThe best way to deal with this is to put the init() call just prior to\nthe commit_creds() call, and pass the cred pointer to init().  That\nmeans that umh_keys_init() and suchlike can modify the credentials\n_before_ they are published and potentially in use by the rest of the\nsystem.\n\nThis prevents request_key() from working as it is prevented from passing\nthe session keyring it set up with the authorisation token to\n/sbin/request-key, and so the latter can\u0027t assume the authority to\ninstantiate the key.  This causes the in-kernel DNS resolver to fail\nwith ENOKEY unconditionally.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
      "tree": "0260df1b5b5b1601f56229c7dde54594d2dfebcb",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "Takao Indoh",
        "email": "indou.takao@jp.fujitsu.com",
        "time": "Tue Mar 29 12:35:04 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 17 10:17:12 2011 +0200"
      },
      "message": "generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\nThere is a problem that kdump(2nd kernel) sometimes hangs up due\nto a pending IPI from 1st kernel. Kernel panic occurs because IPI\ncomes before call_single_queue is initialized.\n\nTo fix the crash, rename init_call_single_data() to call_function_init()\nand call it in start_kernel() so that call_single_queue can be\ninitialized before enabling interrupts.\n\nThe details of the crash are:\n\n (1) 2nd kernel boots up\n\n (2) A pending IPI from 1st kernel comes when irqs are first enabled\n     in start_kernel().\n\n (3) Kernel tries to handle the interrupt, but call_single_queue\n     is not initialized yet at this point. As a result, in the\n     generic_smp_call_function_single_interrupt(), NULL pointer\n     dereference occurs when list_replace_init() tries to access\n     \u0026q-\u003elist.next.\n\nTherefore this patch changes the name of init_call_single_data()\nto call_function_init() and calls it before local_irq_enable()\nin start_kernel().\n\nSigned-off-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: kexec@lists.infradead.org\nLink: http://lkml.kernel.org/r/D6CBEE2F420741indou.takao@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f8b7fc6b514f34a51875dd48dff70d4d17a54f38",
      "tree": "dc6583851e3536516761b0fd9b07f5a3a1743ebb",
      "parents": [
        "a46e0899eec7a3069bcadd45dfba7bf67c6ed016"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 16 08:26:32 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 16 16:12:05 2011 -0700"
      },
      "message": "rcu: Move RCU_BOOST #ifdefs to header file\n\nThe commit \"use softirq instead of kthreads except when RCU_BOOST\u003dy\"\njust applied #ifdef in place.  This commit is a cleanup that moves\nthe newly #ifdef\u0027ed code to the header file kernel/rcutree_plugin.h.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b5199515c25cca622495eb9c6a8a1d275e775088",
      "tree": "250fc4f3d02c58eddf770e9d040edeafd0012e76",
      "parents": [
        "1123d93963cbd2546449d4d9f0c568e323cb0ac6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 16:22:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 19:30:53 2011 +0200"
      },
      "message": "clocksource: Make watchdog robust vs. interruption\n\nThe clocksource watchdog code is interruptible and it has been\nobserved that this can trigger false positives which disable the TSC.\n\nThe reason is that an interrupt storm or a long running interrupt\nhandler between the read of the watchdog source and the read of the\nTSC brings the two far enough apart that the delta is larger than the\nunstable treshold. Move both reads into a short interrupt disabled\nregion to avoid that.\n\nReported-and-tested-by: Vernon Mauery \u003cvernux@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a46e0899eec7a3069bcadd45dfba7bf67c6ed016",
      "tree": "78158b4056fe1365d5086f66769abdc3ef2643c3",
      "parents": [
        "09223371deac67d08ca0b70bd18787920284c967"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 15:47:09 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 23:07:21 2011 -0700"
      },
      "message": "rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n\nThis patch #ifdefs RCU kthreads out of the kernel unless RCU_BOOST\u003dy,\nthus eliminating context-switch overhead if RCU priority boosting has\nnot been configured.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1b6ae8ed01736dae19a33e74ea4e8dd88f891b5",
      "tree": "62019061cacdc90ba1454a8f9d227acbd7a64cde",
      "parents": [
        "21c5977a836e399fc710ff2c5367845ed5c2527f",
        "0da938c44921cfb690283d3b0c9c48a10375db2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Check if lowest_mask is initialized in find_lowest_rq()\n  sched: Fix need_resched() when checking peempt\n"
    },
    {
      "commit": "d2c32258798f813dc2be6cbc32f78aa5ac5cb205",
      "tree": "e44c0d0feeaa52fe7d7b02ed343f7f5b671c372a",
      "parents": [
        "b0461a44a2f1fc052fc949ae19c3a5d684627b09"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Wed Jun 15 15:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "gcov: disable CONFIG_CONSTRUCTORS when not needed by CONFIG_GCOV_KERNEL\n\nCONFIG_CONSTRUCTORS controls support for running constructor functions at\nkernel init time.  According to commit b99b87f70c7785ab (\"kernel:\nconstructor support\"), gcov (CONFIG_GCOV_KERNEL) needs this.  However,\nCONFIG_CONSTRUCTORS currently defaults to y, with no option to disable it,\nand CONFIG_GCOV_KERNEL depends on it.  Instead, default it to n and have\nCONFIG_GCOV_KERNEL select it, so that the normal case of\nCONFIG_GCOV_KERNEL\u003dn will result in CONFIG_CONSTRUCTORS\u003dn.\n\nObserved in the short list of \u003dy values in a minimal kernel configuration.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.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": "733eda7ac316cd4e550fa096e4ed42356dc546e7",
      "tree": "6522f47608fb97314a7b615b1cb1d6e2c58952c8",
      "parents": [
        "37573e8c718277103f61f03741bdc5606d31b07e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jun 15 15:08:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "memcg: clear mm-\u003eowner when last possible owner leaves\n\nThe following crash was reported:\n\n\u003e Call Trace:\n\u003e [\u003cffffffff81139792\u003e] mem_cgroup_from_task+0x15/0x17\n\u003e [\u003cffffffff8113a75a\u003e] __mem_cgroup_try_charge+0x148/0x4b4\n\u003e [\u003cffffffff810493f3\u003e] ? need_resched+0x23/0x2d\n\u003e [\u003cffffffff814cbf43\u003e] ? preempt_schedule+0x46/0x4f\n\u003e [\u003cffffffff8113afe8\u003e] mem_cgroup_charge_common+0x9a/0xce\n\u003e [\u003cffffffff8113b6d1\u003e] mem_cgroup_newpage_charge+0x5d/0x5f\n\u003e [\u003cffffffff81134024\u003e] khugepaged+0x5da/0xfaf\n\u003e [\u003cffffffff81078ea0\u003e] ? __init_waitqueue_head+0x4b/0x4b\n\u003e [\u003cffffffff81133a4a\u003e] ? add_mm_counter.constprop.5+0x13/0x13\n\u003e [\u003cffffffff81078625\u003e] kthread+0xa8/0xb0\n\u003e [\u003cffffffff814d13e8\u003e] ? sub_preempt_count+0xa1/0xb4\n\u003e [\u003cffffffff814d5664\u003e] kernel_thread_helper+0x4/0x10\n\u003e [\u003cffffffff814ce858\u003e] ? retint_restore_args+0x13/0x13\n\u003e [\u003cffffffff8107857d\u003e] ? __init_kthread_worker+0x5a/0x5a\n\nWhat happens is that khugepaged tries to charge a huge page against an mm\nwhose last possible owner has already exited, and the memory controller\ncrashes when the stale mm-\u003eowner is used to look up the cgroup to charge.\n\nmm-\u003eowner has never been set to NULL with the last owner going away, but\nnobody cared until khugepaged came along.\n\nEven then it wasn\u0027t a problem because the final mmput() on an mm was\nforced to acquire and release mmap_sem in write-mode, preventing an\nexiting owner to go away while the mmap_sem was held, and until \"692e0b3\nmm: thp: optimize memcg charge in khugepaged\", the memory cgroup charge\nwas protected by mmap_sem in read-mode.\n\nInstead of going back to relying on the mmap_sem to enforce lifetime of a\ntask, this patch ensures that mm-\u003eowner is properly set to NULL when the\nlast possible owner is exiting, which the memory controller can handle\njust fine.\n\n[akpm@linux-foundation.org: tweak comments]\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReviewed-by: 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": "0da938c44921cfb690283d3b0c9c48a10375db2c",
      "tree": "7e9374a3ed16a4118f2f5d600067c471aaa80c70",
      "parents": [
        "8dd0de8be31b4b966d17750a0b10df2f575c91ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 18:36:25 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 11:44:48 2011 +0200"
      },
      "message": "sched: Check if lowest_mask is initialized in find_lowest_rq()\n\nOn system boot up, the lowest_mask is initialized with an\nearly_initcall(). But RT tasks may wake up on other\nearly_initcall() callers before the lowest_mask is initialized,\ncausing a system crash.\n\nCommit \"d72bce0e67 rcu: Cure load woes\" was the first commit\nto wake up RT tasks in early init. Before this commit this bug\nshould not happen.\n\nReported-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.824872966@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dd0de8be31b4b966d17750a0b10df2f575c91ac",
      "tree": "991b9dddf6ef092f94bba5af7609c13c8d7b113c",
      "parents": [
        "2c53b436a30867eb6b47dd7bab23ba638d1fb0d2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jun 14 18:36:24 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 09:50:32 2011 +0200"
      },
      "message": "sched: Fix need_resched() when checking peempt\n\nThe RT preempt check tests the wrong task if NEED_RESCHED is\nset. It currently checks the local CPU task. It is supposed to\ncheck the task that is running on the runqueue we are about to\nwake another task on.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.450239027@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ada9c93312f7ec49514c68c211595ce2601cebae",
      "tree": "d20d678c04daf68705f3006e3bc2a00746f3eb18",
      "parents": [
        "60b8b1de0dd2bf246f0e074d287bb3f0bc42a755"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 14 15:50:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 14 19:12:17 2011 -0700"
      },
      "message": "signal.c: fix kernel-doc notation\n\nFix kernel-doc warnings in signal.c:\n\n  Warning(kernel/signal.c:2374): No description found for parameter \u0027nset\u0027\n  Warning(kernel/signal.c:2374): Excess function parameter \u0027set\u0027 description in \u0027sys_rt_sigprocmask\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09223371deac67d08ca0b70bd18787920284c967",
      "tree": "0ad0354a93ac209c8cfd2b79d03d0462aa3c5c58",
      "parents": [
        "9a432736904d386cda28b987b38ba14dae960ecc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 14 13:26:25 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:39 2011 -0700"
      },
      "message": "rcu: Use softirq to address performance regression\n\nCommit a26ac2455ffcf3(rcu: move TREE_RCU from softirq to kthread)\nintroduced performance regression. In an AIM7 test, this commit degraded\nperformance by about 40%.\n\nThe commit runs rcu callbacks in a kthread instead of softirq. We observed\nhigh rate of context switch which is caused by this. Out test system has\n64 CPUs and HZ is 1000, so we saw more than 64k context switch per second\nwhich is caused by RCU\u0027s per-CPU kthread.  A trace showed that most of\nthe time the RCU per-CPU kthread doesn\u0027t actually handle any callbacks,\nbut instead just does a very small amount of work handling grace periods.\nThis means that RCU\u0027s per-CPU kthreads are making the scheduler do quite\na bit of work in order to allow a very small amount of RCU-related\nprocessing to be done.\n\nAlex Shi\u0027s analysis determined that this slowdown is due to lock\ncontention within the scheduler.  Unfortunately, as Peter Zijlstra points\nout, the scheduler\u0027s real-time semantics require global action, which\nmeans that this contention is inherent in real-time scheduling.  (Yes,\nperhaps someone will come up with a workaround -- otherwise, -rt is not\ngoing to do well on large SMP systems -- but this patch will work around\nthis issue in the meantime.  And \"the meantime\" might well be forever.)\n\nThis patch therefore re-introduces softirq processing to RCU, but only\nfor core RCU work.  RCU callbacks are still executed in kthread context,\nso that only a small amount of RCU work runs in softirq context in the\ncommon case.  This should minimize ksoftirqd execution, allowing us to\nskip boosting of ksoftirqd for CONFIG_RCU_BOOST\u003dy kernels.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nTested-by: \"Alex,Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a432736904d386cda28b987b38ba14dae960ecc",
      "tree": "20294203f9c6132d79737e9ab54c746546afe7d4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 30 20:38:55 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:15 2011 -0700"
      },
      "message": "rcu: Simplify curing of load woes\n\nMake the functions creating the kthreads wake them up.  Leverage the\nfact that the per-node and boost kthreads can run anywhere, thus\ndispensing with the need to wake them up once the incoming CPU has\ngone fully online.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\n"
    },
    {
      "commit": "c78a9b9b8e36b8de302eddbe7a1688af3d9650ff",
      "tree": "3857996cf30ae6a60b5afe2e1e3e30f75fbca05e",
      "parents": [
        "842c895d140a75e5d67fa346213deb3ca2b460f8",
        "5f127133ee432d0b83ee26e8e3a3d7828ab5f2b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n  kprobes/trace: Fix kprobe selftest for gcc 4.6\n  ftrace: Fix possible undefined return code\n  oprofile, dcookies: Fix possible circular locking dependency\n  oprofile: Fix locking dependency in sync_start()\n  oprofile: Free potentially owned tasks in case of errors\n  oprofile, x86: Add comments to IBS LVT offset initialization\n"
    },
    {
      "commit": "13863a66c9c8a663665445cf05d68de96ff31830",
      "tree": "cb7864cf23b6f26f3eb11cfe09526eb7110a0e9a",
      "parents": [
        "7f45e5cd1718ed769295033ca214032848a0097d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Jun 09 23:14:58 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 10 10:53:42 2011 +0200"
      },
      "message": "genirq: Prevent potential NULL dereference in irq_set_irq_wake()\n\nIn kernel/irq/manage.c::irq_set_irq_wake() we call\nirq_get_desc_buslock() which may return NULL, but the code\ndereferences the result unconditionally.\n\nirq_set_irq_wake() has lots of callers - I checked a few and I couldn\u0027t\nfind anything that guarantees that they won\u0027t call it with some input that\nwill cause irq_get_desc_buslock() to return NULL, so I think it\u0027s a good\nthing to test and -EINVAL was the most sane error code in this situation\nthat I could think of.\n\nNot all callers test the return value of irq_set_irq_wake(), but those\nthat do take !\u003d 0 to mean error as far as I can see, so they should be\nfine. I guess those that don\u0027t test actually should, but that\u0027s a\ndifferent issue.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1106092300360.17868@swampdragon.chaosbits.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "db5e7ecc4abc91b9f26f0c0d79ef88a51e987d90",
      "tree": "022c475cc132e64f01c0765d2d965c0aa5df2286",
      "parents": [
        "5cf42f7055648aaba68ce95ecec69128d7fbf65f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 09 08:40:59 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 09 08:42:15 2011 -0400"
      },
      "message": "tracing: Fix regression in printk_formats file\n\nThe fix to fix the printk_formats of modules broke the\nprintk_formats of trace_printks in the kernel.\n\nThe update of what to show via the seq_file was only updated\nif the passed in fmt was NULL, which happens only on the first\niteration. The result was showing the first format every time\ninstead of iterating through the available formats.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33726bf2140a0e7c9de3ccd7cba6d69962f0b773",
      "tree": "a4f5bca74d61072533806a2fe7f257357cae1ce2",
      "parents": [
        "5b28f6a25ee202046e2d57bd431671bc23cf3dd1",
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix comments in include/linux/perf_event.h\n  perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n  perf python: Fix argument name list of read_on_cpu()\n  perf evlist: Don\u0027t die if sample_{id_all|type} is invalid\n  perf python: Use exception to propagate errors\n  perf evlist: Remove dependency on debug routines\n  perf, cgroups: Fix up for new API\n"
    },
    {
      "commit": "cb0a02ecf95e5f47d92e7d4c513cc1f7aeb40cda",
      "tree": "3e9b2341855a1b5ddac5f0edb74a679111f8a350",
      "parents": [
        "d681f1204d701cafbc45fa90e0ac977acddc33cc",
        "c5182b8867e189e14a8df5dbfcba1c73f286e061"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n  genirq: Fix descriptor init on non-sparse IRQs\n  irq: Handle spurios irq detection for threaded irqs\n  genirq: Print threaded handler in spurious debug output\n"
    },
    {
      "commit": "6715a52a581c891e9a2034abe1c81ddb482d70b3",
      "tree": "03bac8851232d11382af718c2d10559cc16e4f0f",
      "parents": [
        "ef2398019b305827ea7130ebaf7bf521b444530e",
        "6c6c54e1807faf116724451ef2bd14993780470a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix/clarify set_task_cpu() locking rules\n  lockdep: Fix lock_is_held() on recursion\n  sched: Fix schedstat.nr_wakeups_migrate\n  sched: Fix cross-cpu clock sync on remote wakeups\n"
    },
    {
      "commit": "a4f18ed11a4ddf327dd91cd19e237278600ad327",
      "tree": "bbe96241c6db2be16e881920a3312ec937ed7cd1",
      "parents": [
        "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 07 09:26:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:49:19 2011 -0400"
      },
      "message": "ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n\nRevert the commit that removed the disabling of interrupts around\nthe initial modifying of mcount callers to nops, and update the comment.\n\nThe original comment was outdated and stated that the interrupts were\nbeing disabled to prevent kstop machine, which was required with the\nold ftrace daemon, but was no longer the case.\n\nWhat the comment failed to mention was that interrupts needed to be\ndisabled to keep interrupts from preempting the modifying of the code\nand then executing the code that was partially modified.\n\nRevert the commit and update the comment.\n\nReported-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nTested-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39",
      "tree": "52ad853f49e8949a307f475115cc682d44753287",
      "parents": [
        "0aff1c0cef13b34c17e81a502336fad738151c37"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 06 22:35:13 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:47:36 2011 -0400"
      },
      "message": "kprobes/trace: Fix kprobe selftest for gcc 4.6\n\nWith gcc 4.6, the self test kprobe function:\n\n kprobe_trace_selftest_target()\n\nis optimized such that kallsyms does not list it. The kprobes\ntest uses this function to insert a probe and test it. But\nit will fail the test if the function is not listed in kallsyms.\n\nAdding a __used annotation keeps the symbol in the kallsyms table.\n\nSuggested-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6c6c54e1807faf116724451ef2bd14993780470a",
      "tree": "c306ec3d4876b70022b81f577d96ddb1c643c1d5",
      "parents": [
        "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jun 03 17:37:07 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:26:40 2011 +0200"
      },
      "message": "sched: Fix/clarify set_task_cpu() locking rules\n\nSergey reported a CONFIG_PROVE_RCU warning in push_rt_task where\nset_task_cpu() was called with both relevant rq-\u003elocks held, which\nshould be sufficient for running tasks since holding its rq-\u003elock\nwill serialize against sched_move_task().\n\nUpdate the comments and fix the task_group() lockdep test.\n\nReported-and-tested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1307115427.2353.3456.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d",
      "tree": "b461cb0836170eb555b20818802c121c79e76d33",
      "parents": [
        "f339b9dc1f03591761d5d930800db24bc0eda1e1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 06 12:32:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:25:50 2011 +0200"
      },
      "message": "lockdep: Fix lock_is_held() on recursion\n\nThe main lock_is_held() user is lockdep_assert_held(), avoid false\nassertions in lockdep_off() sections by unconditionally reporting the\nlock is taken.\n\n[ the reason this is important is a lockdep_assert_held() in ttwu()\n  which triggers a warning under lockdep_off() as in printk() which\n  can trigger another wakeup and lock up due to spinlock\n  recursion, as reported and heroically debugged by Arne Jansen ]\n\nReported-and-tested-by: Arne Jansen \u003clists@die-jansens.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1307398759.2497.966.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0aff1c0cef13b34c17e81a502336fad738151c37",
      "tree": "3bf383429c3d948bd34ff71ae78d82bb2439fab5",
      "parents": [
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "GuoWen Li",
        "email": "guowen.li.linux@gmail.com",
        "time": "Wed Jun 01 19:18:47 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 06 22:34:25 2011 -0400"
      },
      "message": "ftrace: Fix possible undefined return code\n\nkernel/trace/ftrace.c: In function \u0027ftrace_regex_write.clone.15\u0027:\nkernel/trace/ftrace.c:2743:6: warning: \u0027ret\u0027 may be used uninitialized in this\nfunction\n\nSigned-off-by: GuoWen Li \u003cguowen.li.linux@gmail.com\u003e\nLink: http://lkml.kernel.org/r/201106011918.47939.guowen.li.linux@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa4a221875873d2a1f9656cb7fd7e545e952b4fa",
      "tree": "44f66345c06c94cfc95d17b337d45e09917e475d",
      "parents": [
        "710054ba25c0d1f8f41c22ce13ba336503fb5318"
      ],
      "author": {
        "name": "Vince Weaver",
        "email": "vweaver1@eecs.utk.edu",
        "time": "Fri Jun 03 17:54:40 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:22:04 2011 +0200"
      },
      "message": "perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n\nTurns out that distro packages use this file as an indicator of\nthe perf event subsystem - this is easier to check for from scripts\nthan the existence of the system call.\n\nThis is easy enough to keep around for the kernel, so add a\ncomment to make sure it stays so.\n\nSigned-off-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nCc: David Ahern \u003cdsahern@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus@samba.org\nCc: acme@redhat.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.00.1106031751170.29381@cl320.eecs.utk.edu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "710054ba25c0d1f8f41c22ce13ba336503fb5318",
      "tree": "f9b09b722bf511841539173d946f90a20fc2e59a",
      "parents": [
        "74c355fbdfedd3820046dba4f537876cea54c207",
        "b273fa9716aa1564bee88ceee62f9042981cdc81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent\n"
    },
    {
      "commit": "1c3cc11602111d1318c2a5743bd2e88c82813927",
      "tree": "d46a1e4a1914f3bc307f8f6215864144926d0193",
      "parents": [
        "1b054b67d3bfc6dca9f634c104780f3f24ff3eec"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sat May 21 12:58:28 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 15:02:32 2011 +0200"
      },
      "message": "timers: Consider slack value in mod_timer()\n\nThere is an optimization which does not update the timer if the timer\nwas pending and the expiration time was unchanged.\n\nSince commit 3bbb9ec9 (\"timers: Introduce the concept of timer slack\nfor legacy timers\") this optimization is no longer applied for timers\nwhere the expiration time got extended due to the slack value. So we\nneed to check again after the expiration time might have been updated.\n\n[ tglx: Made it a single check by applying slack first and sorting\n  out the slack \u003d 0 value (all timeouts \u003c 256 jiffies) early ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/20110521105828.GA29442@Chamillionaire.breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c5182b8867e189e14a8df5dbfcba1c73f286e061",
      "tree": "89ac7169ab5009625770124e8b78549e69009ea1",
      "parents": [
        "e7fbad300a7a6432238f086e3c9a61538a905858"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Jun 02 18:55:13 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n\nWhen irq_alloc_descs() is called with no base IRQ specified then it will\nsearch for a range of IRQs starting from a specified base address. In the\ncase where an IRQ is specified it still does this search in order to ensure\nthat none of the requested range is already allocated and it still uses the\nfrom parameter to specify the base for the search. This means that in the\ncase where a base is specified but from is zero (which is reasonable as\nany IRQ number is in the range specified by a zero from) the function will\nget confused and try to allocate the first suitably sized block of free IRQs\nit finds.\n\nInstead use a specified IRQ as the base address for the search, and insist\nthat any from that is specified can support that IRQ.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nLink: http://lkml.kernel.org/r/1307037313-15733-1-git-send-email-broonie@opensource.wolfsonmicro.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e7fbad300a7a6432238f086e3c9a61538a905858",
      "tree": "76841c453717fd32be49d7d2b06e835e15b87c99",
      "parents": [
        "3a43e05f4d0600e906fa09f4a65d749288c44592"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Tue May 31 18:14:39 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Fix descriptor init on non-sparse IRQs\n\nThe genirq changes are initializing descriptors for sparse IRQs quite\ndifferently from how non-sparse (stacked?) IRQs are initialized, with\nthe effect that on my platform all IRQs are default-disabled on sparse\nIRQs and default-enabled if non-sparse IRQs are used, crashing some\nGPIO driver.\n\nFix this by refactoring the non-sparse IRQs to use the same descriptor\ninit function as the sparse IRQs.\n\nSigned-off: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306858479-16622-1-git-send-email-linus.walleij@stericsson.com\nCc: stable@kernel.org # 2.6.39\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3a43e05f4d0600e906fa09f4a65d749288c44592",
      "tree": "b99732c8f459e70078c7dd90f62a5174376e3c62",
      "parents": [
        "ef26f20cd117eb3c185038ed7cbf7b235575751d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:11 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "irq: Handle spurios irq detection for threaded irqs\n\nThe detection of spurios interrupts is currently limited to first level\nhandler. In force-threaded mode we never notice if the threaded irq does\nnot feel responsible.\nThis patch catches the return value of the threaded handler and forwards\nit to the spurious detector. If the primary handler returns only\nIRQ_WAKE_THREAD then the spourious detector ignores it because it gets\ncalled again from the threaded handler.\n\n[ tglx: Report the erroneous return value early and bail out ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-2-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ef26f20cd117eb3c185038ed7cbf7b235575751d",
      "tree": "630c5b348bb2dc7abbb3bd820a51a6fa8c6e5c5d",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:10 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "genirq: Print threaded handler in spurious debug output\n\nIn forced threaded mode (or with an explicit threaded handler) we only\nsee the primary handler, but not the threaded handler.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-1-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1b054b67d3bfc6dca9f634c104780f3f24ff3eec",
      "tree": "af50fb7333001692879c18474e84ac2736f984d1",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "message": "clockevents: Handle empty cpumask gracefully\n\nFor UP it\u0027s stupid to request an initialized cpumask for the clock\nevent devices. Though we need the mask set even on UP to avoid a\nhorrible ifdeffery especially in the broadcast code.\n\nFor SMP we can at least try to survive with a warning and set the\ncpumask of the cpu we\u0027re running on. That gives a decent chance to\nbring the machine up and retrieve the debug info.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\nCc: Lee Jones \u003clee.jones@linaro.org\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "74c355fbdfedd3820046dba4f537876cea54c207",
      "tree": "3a07851e63f5eb9a233286c6683f7e8c7d9d61a2",
      "parents": [
        "89e1be50c68eb5e58b873dce87bbac627ee18d1f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 30 16:48:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:20:25 2011 +0200"
      },
      "message": "perf, cgroups: Fix up for new API\n\nBen changed the cgroup API in commit f780bdb7c1c (cgroups: add\nper-thread subsystem callbacks) in an incompatible way, but\nforgot to convert the perf cgroup bits.\n\nAvoid compile warnings and runtime splats and convert perf too ;-)\n\nAcked-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306767651.1200.2990.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f339b9dc1f03591761d5d930800db24bc0eda1e1",
      "tree": "901c78b6e8ccaf9e74515d176084c75389bc2832",
      "parents": [
        "f01114cb59d670e9b4f2c335930dd57db96e9360"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 10:49:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:57 2011 +0200"
      },
      "message": "sched: Fix schedstat.nr_wakeups_migrate\n\nWhile looking over the code I found that with the ttwu rework the\nnr_wakeups_migrate test broke since we now switch cpus prior to\ncalling ttwu_stat(), hence the test is always true.\n\nCure this by passing the migration state in wake_flags. Also move the\nwhole test under CONFIG_SMP, its hard to migrate tasks on UP :-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-pwwxl7gdqs5676f1d4cx6pj7@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f01114cb59d670e9b4f2c335930dd57db96e9360",
      "tree": "98e2c76fd78e1e6762c92423a3e6f867a027ca3c",
      "parents": [
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 12:26:55 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:56 2011 +0200"
      },
      "message": "sched: Fix cross-cpu clock sync on remote wakeups\n\nMarkus reported that commit 317f394160e (\"sched: Move the second half\nof ttwu() to the remote cpu\") caused some accounting funnies on his AMD\nPhenom II X4, such as weird \u0027top\u0027 results.\n\nIt turns out that this is due to non-synced TSC and the queued remote\nwakeups stopped coupeling the two relevant cpu clocks, which leads to\nwakeups seeing time jumps, which in turn lead to skewed runtime stats.\n\nAdd an explicit call to sched_clock_cpu() to couple the per-cpu clocks\nto restore the normal flow of time.\n\nReported-and-tested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306835745.2353.3.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d72bce0e67e8afc6eb959f656013cbb577426f1e",
      "tree": "9c93d4df9aa895d6f2f555e0cf50e7ae5ebaded4",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon May 30 13:34:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 10:01:48 2011 +0200"
      },
      "message": "rcu: Cure load woes\n\nCommit cc3ce5176d83 (rcu: Start RCU kthreads in TASK_INTERRUPTIBLE\nstate) fudges a sleeping task\u0027 state, resulting in the scheduler seeing\na TASK_UNINTERRUPTIBLE task going to sleep, but a TASK_INTERRUPTIBLE\ntask waking up. The result is unbalanced load calculation.\n\nThe problem that patch tried to address is that the RCU threads could\nstay in UNINTERRUPTIBLE state for quite a while and triggering the hung\ntask detector due to on-demand wake-ups.\n\nCure the problem differently by always giving the tasks at least one\nwake-up once the CPU is fully up and running, this will kick them out of\nthe initial UNINTERRUPTIBLE state and into the regular INTERRUPTIBLE\nwait state.\n\n[ The alternative would be teaching kthread_create() to start threads as\n  INTERRUPTIBLE but that needs a tad more thought. ]\n\nReported-by: Damien Wyart \u003cdamien.wyart@free.fr\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306755291.1200.2872.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "333c5ae9948194428fe6c5ef5c088304fc98263b",
      "tree": "83d1cf3a781642e2c366086e0b9e244a7b60fae5",
      "parents": [
        "7467571f4480b273007517b26297c07154c73924"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Feb 11 12:49:04 2011 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun May 29 00:50:59 2011 -0400"
      },
      "message": "idle governor: Avoid lock acquisition to read pm_qos before entering idle\n\nThanks to the reviews and comments by Rafael, James, Mark and Andi.\nHere\u0027s version 2 of the patch incorporating your comments and also some\nupdate to my previous patch comments.\n\nI noticed that before entering idle state, the menu idle governor will\nlook up the current pm_qos target value according to the list of qos\nrequests received.  This look up currently needs the acquisition of a\nlock to access the list of qos requests to find the qos target value,\nslowing down the entrance into idle state due to contention by multiple\ncpus to access this list.  The contention is severe when there are a lot\nof cpus waking and going into idle.  For example, for a simple workload\nthat has 32 pair of processes ping ponging messages to each other, where\n64 cpu cores are active in test system, I see the following profile with\n37.82% of cpu cycles spent in contention of pm_qos_lock:\n\n-     37.82%          swapper  [kernel.kallsyms]          [k]\n_raw_spin_lock_irqsave\n   - _raw_spin_lock_irqsave\n      - 95.65% pm_qos_request\n           menu_select\n           cpuidle_idle_call\n         - cpu_idle\n              99.98% start_secondary\n\nA better approach will be to cache the updated pm_qos target value so\nreading it does not require lock acquisition as in the patch below.\nWith this patch the contention for pm_qos_lock is removed and I saw a\n2.2X increase in throughput for my message passing workload.\n\ncc: stable@kernel.org\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "08a8b79600101fd6e13dcf05409b330e7f5b0478",
      "tree": "461cf4061eb33d96966c5c348029bc3b5cb523bf",
      "parents": [
        "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n  sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n  sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: More sched_domain iterations fixes\n"
    },
    {
      "commit": "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
      "tree": "e42d1967025670401758d32964a5fa048f59f10a",
      "parents": [
        "c4a227d89f758e582fd167bb15245f2704de99ef",
        "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n  rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n  rcu: Avoid acquiring rcu_node locks in timer functions\n  atomic: Add atomic_or()\n  Documentation: Add statistics about nested locks\n  rcu: Decrease memory-barrier usage based on semi-formal proof\n  rcu: Make rcu_enter_nohz() pay attention to nesting\n  rcu: Don\u0027t do reschedule unless in irq\n  rcu: Remove old memory barriers from rcu_process_callbacks()\n  rcu: Add memory barriers\n  rcu: Fix unpaired rcu_irq_enter() from locking selftests\n"
    }
  ],
  "next": "c4a227d89f758e582fd167bb15245f2704de99ef"
}
