)]}'
{
  "log": [
    {
      "commit": "fb003b80daa0dead5b87f4e2e4fb8da68b110ff2",
      "tree": "aa9c3694cb21e61774471e88bd22918c5746c706",
      "parents": [
        "e14808b49f55e0e1135da5e4a154a540dd9f3662"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Nov 15 09:01:14 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:51 2012 +0000"
      },
      "message": "sched: numa: Slowly increase the scanning period as NUMA faults are handled\n\nCurrently the rate of scanning for an address space is controlled\nby the individual tasks. The next scan is simply determined by\n2*p-\u003enuma_scan_period.\n\nThe 2*p-\u003enuma_scan_period is arbitrary and never changes. At this point\nthere is still no proper policy that decides if a task or process is\nproperly placed. It just scans and assumes the next NUMA fault will\nplace it properly. As it is assumed that pages will get properly placed\nover time, increase the scan window each time a fault is incurred. This\nis a big assumption as noted in the comments.\n\nIt should be noted that changing to p-\u003enuma_scan_period will increase\nsystem CPU usage because now the scanning rate has effectively doubled.\nIf that is a problem then the min_rate should be made 200ms instead of\nrestoring the 2* logic.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "e14808b49f55e0e1135da5e4a154a540dd9f3662",
      "tree": "d66708455dcc1b6e2e15937d732ab12c121e623a",
      "parents": [
        "a8f6077213d285ca08dbf6d4a67470787388138b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Nov 19 10:59:15 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:51 2012 +0000"
      },
      "message": "mm: numa: Rate limit setting of pte_numa if node is saturated\n\nIf there are a large number of NUMA hinting faults and all of them\nare resulting in migrations it may indicate that memory is just\nbouncing uselessly around. NUMA balancing cost is likely exceeding\nany benefit from locality. Rate limit the PTE updates if the node\nis migration rate-limited. As noted in the comments, this distorts\nthe NUMA faulting statistics.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "4b96a29ba891dd59734cb7be80a900fe93aa2d9f",
      "tree": "5162223c4ceae37f6ccf0ef1b84993c2556e60cf",
      "parents": [
        "9f40604cdab935e80db57b309c48659de349d4e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:47 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:47 2012 +0000"
      },
      "message": "mm: sched: numa: Implement slow start for working set sampling\n\nAdd a 1 second delay before starting to scan the working set of\na task and starting to balance it amongst nodes.\n\n[ note that before the constant per task WSS sampling rate patch\n  the initial scan would happen much later still, in effect that\n  patch caused this regression. ]\n\nThe theory is that short-run tasks benefit very little from NUMA\nplacement: they come and go, and they better stick to the node\nthey were started on. As tasks mature and rebalance to other CPUs\nand nodes, so does their NUMA placement have to change and so\ndoes it start to matter more and more.\n\nIn practice this change fixes an observable kbuild regression:\n\n   # [ a perf stat --null --repeat 10 test of ten bzImage builds to /dev/shm ]\n\n   !NUMA:\n   45.291088843 seconds time elapsed                                          ( +-  0.40% )\n   45.154231752 seconds time elapsed                                          ( +-  0.36% )\n\n   +NUMA, no slow start:\n   46.172308123 seconds time elapsed                                          ( +-  0.30% )\n   46.343168745 seconds time elapsed                                          ( +-  0.25% )\n\n   +NUMA, 1 sec slow start:\n   45.224189155 seconds time elapsed                                          ( +-  0.25% )\n   45.160866532 seconds time elapsed                                          ( +-  0.17% )\n\nand it also fixes an observable perf bench (hackbench) regression:\n\n   # perf stat --null --repeat 10 perf bench sched messaging\n\n   -NUMA:\n\n   -NUMA:                  0.246225691 seconds time elapsed                   ( +-  1.31% )\n   +NUMA no slow start:    0.252620063 seconds time elapsed                   ( +-  1.13% )\n\n   +NUMA 1sec delay:       0.248076230 seconds time elapsed                   ( +-  1.35% )\n\nThe implementation is simple and straightforward, most of the patch\ndeals with adding the /proc/sys/kernel/numa_balancing_scan_delay_ms tunable\nknob.\n\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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\n[ Wrote the changelog, ran measurements, tuned the default. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "9f40604cdab935e80db57b309c48659de349d4e6",
      "tree": "72f77bdb7d8ab07e4db4323642db7c04eca8e9e9",
      "parents": [
        "6e5fb223e89dbe5cb5c563f8d4a4a0a7d62455a8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Wed Nov 14 18:34:32 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:46 2012 +0000"
      },
      "message": "sched, numa, mm: Count WS scanning against present PTEs, not virtual memory ranges\n\nBy accounting against the present PTEs, scanning speed reflects the\nactual present (mapped) memory.\n\nSuggested-by: Ingo Molnar \u003cmingo@kernel.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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "6e5fb223e89dbe5cb5c563f8d4a4a0a7d62455a8",
      "tree": "0d5c93240702a51b1d6f22fefd979235a19692fd",
      "parents": [
        "cbee9f88ec1b8dd6b58f25f54e4f52c82ed77690"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:45 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:46 2012 +0000"
      },
      "message": "mm: sched: numa: Implement constant, per task Working Set Sampling (WSS) rate\n\nPreviously, to probe the working set of a task, we\u0027d use\na very simple and crude method: mark all of its address\nspace PROT_NONE.\n\nThat method has various (obvious) disadvantages:\n\n - it samples the working set at dissimilar rates,\n   giving some tasks a sampling quality advantage\n   over others.\n\n - creates performance problems for tasks with very\n   large working sets\n\n - over-samples processes with large address spaces but\n   which only very rarely execute\n\nImprove that method by keeping a rotating offset into the\naddress space that marks the current position of the scan,\nand advance it by a constant rate (in a CPU cycles execution\nproportional manner). If the offset reaches the last mapped\naddress of the mm then it then it starts over at the first\naddress.\n\nThe per-task nature of the working set sampling functionality in this tree\nallows such constant rate, per task, execution-weight proportional sampling\nof the working set, with an adaptive sampling interval/frequency that\ngoes from once per 100ms up to just once per 8 seconds.  The current\nsampling volume is 256 MB per interval.\n\nAs tasks mature and converge their working set, so does the\nsampling rate slow down to just a trickle, 256 MB per 8\nseconds of CPU time executed.\n\nThis, beyond being adaptive, also rate-limits rarely\nexecuting systems and does not over-sample on overloaded\nsystems.\n\n[ In AutoNUMA speak, this patch deals with the effective sampling\n  rate of the \u0027hinting page fault\u0027. AutoNUMA\u0027s scanning is\n  currently rate-limited, but it is also fundamentally\n  single-threaded, executing in the knuma_scand kernel thread,\n  so the limit in AutoNUMA is global and does not scale up with\n  the number of CPUs, nor does it scan tasks in an execution\n  proportional manner.\n\n  So the idea of rate-limiting the scanning was first implemented\n  in the AutoNUMA tree via a global rate limit. This patch goes\n  beyond that by implementing an execution rate proportional\n  working set sampling rate that is not implemented via a single\n  global scanning daemon. ]\n\n[ Dan Carpenter pointed out a possible NULL pointer dereference in the\n  first version of this patch. ]\n\nBased-on-idea-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nBug-Found-By: Dan Carpenter \u003cdan.carpenter@oracle.com\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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\n[ Wrote changelog and fixed bug. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "cbee9f88ec1b8dd6b58f25f54e4f52c82ed77690",
      "tree": "d4cfbcfa3e89742216cd792d4aa914356406b532",
      "parents": [
        "a720094ded8cbb303111035be91858011d2eac71"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:43 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:45 2012 +0000"
      },
      "message": "mm: numa: Add fault driven placement and migration\n\nNOTE: This patch is based on \"sched, numa, mm: Add fault driven\n\tplacement and migration policy\" but as it throws away all the policy\n\tto just leave a basic foundation I had to drop the signed-offs-by.\n\nThis patch creates a bare-bones method for setting PTEs pte_numa in the\ncontext of the scheduler that when faulted later will be faulted onto the\nnode the CPU is running on.  In itself this does nothing useful but any\nplacement policy will fundamentally depend on receiving hints on placement\nfrom fault context and doing something intelligent about it.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "b0db954c0491ce846bc49c0746ca6e1f868a1881",
      "tree": "1d239bdf2f0fe62f278faf895f662f2f5b43c3e6",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7",
        "59fa6245192159ab5e1e17b8e31f15afa9cff4bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 12 17:02:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 12 17:02:21 2012 -0800"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull futex fix from Thomas Gleixner:\n \"Single fix for a long standing futex race when taking over a futex\n  whose owner died.  You can end up with two owners, which violates\n  quite some rules.\"\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  futex: Handle futex_pi OWNER_DIED take over correctly\n"
    },
    {
      "commit": "59fa6245192159ab5e1e17b8e31f15afa9cff4bf",
      "tree": "ead58f102889a65adc7f9f10eb4bb666321f5581",
      "parents": [
        "1e207eb1c3f0e8b690401f02fe08e7b53903f010"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 23 22:29:38 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Nov 01 12:06:54 2012 +0100"
      },
      "message": "futex: Handle futex_pi OWNER_DIED take over correctly\n\nSiddhesh analyzed a failure in the take over of pi futexes in case the\nowner died and provided a workaround.\nSee: http://sourceware.org/bugzilla/show_bug.cgi?id\u003d14076\n\nThe detailed problem analysis shows:\n\nFutex F is initialized with PTHREAD_PRIO_INHERIT and\nPTHREAD_MUTEX_ROBUST_NP attributes.\n\nT1 lock_futex_pi(F);\n\nT2 lock_futex_pi(F);\n   --\u003e T2 blocks on the futex and creates pi_state which is associated\n       to T1.\n\nT1 exits\n   --\u003e exit_robust_list() runs\n       --\u003e Futex F userspace value TID field is set to 0 and\n           FUTEX_OWNER_DIED bit is set.\n\nT3 lock_futex_pi(F);\n   --\u003e Succeeds due to the check for F\u0027s userspace TID field \u003d\u003d 0\n   --\u003e Claims ownership of the futex and sets its own TID into the\n       userspace TID field of futex F\n   --\u003e returns to user space\n\nT1 --\u003e exit_pi_state_list()\n       --\u003e Transfers pi_state to waiter T2 and wakes T2 via\n       \t   rt_mutex_unlock(\u0026pi_state-\u003emutex)\n\nT2 --\u003e acquires pi_state-\u003emutex and gains real ownership of the\n       pi_state\n   --\u003e Claims ownership of the futex and sets its own TID into the\n       userspace TID field of futex F\n   --\u003e returns to user space\n\nT3 --\u003e observes inconsistent state\n\nThis problem is independent of UP/SMP, preemptible/non preemptible\nkernels, or process shared vs. private. The only difference is that\ncertain configurations are more likely to expose it.\n\nSo as Siddhesh correctly analyzed the following check in\nfutex_lock_pi_atomic() is the culprit:\n\n\tif (unlikely(ownerdied || !(curval \u0026 FUTEX_TID_MASK))) {\n\nWe check the userspace value for a TID value of 0 and take over the\nfutex unconditionally if that\u0027s true.\n\nAFAICT this check is there as it is correct for a different corner\ncase of futexes: the WAITERS bit became stale.\n\nNow the proposed change\n\n-\tif (unlikely(ownerdied || !(curval \u0026 FUTEX_TID_MASK))) {\n+       if (unlikely(ownerdied ||\n+                       !(curval \u0026 (FUTEX_TID_MASK | FUTEX_WAITERS)))) {\n\nsolves the problem, but it\u0027s not obvious why and it wreckages the\n\"stale WAITERS bit\" case.\n\nWhat happens is, that due to the WAITERS bit being set (T2 is blocked\non that futex) it enforces T3 to go through lookup_pi_state(), which\nin the above case returns an existing pi_state and therefor forces T3\nto legitimately fight with T2 over the ownership of the pi_state (via\npi_state-\u003emutex). Probelm solved!\n\nThough that does not work for the \"WAITERS bit is stale\" problem\nbecause if lookup_pi_state() does not find existing pi_state it\nreturns -ERSCH (due to TID \u003d\u003d 0) which causes futex_lock_pi() to\nreturn -ESRCH to user space because the OWNER_DIED bit is not set.\n\nNow there is a different solution to that problem. Do not look at the\nuser space value at all and enforce a lookup of possibly available\npi_state. If pi_state can be found, then the new incoming locker T3\nblocks on that pi_state and legitimately races with T2 to acquire the\nrt_mutex and the pi_state and therefor the proper ownership of the\nuser space futex.\n\nlookup_pi_state() has the correct order of checks. It first tries to\nfind a pi_state associated with the user space futex and only if that\nfails it checks for futex TID value \u003d 0. If no pi_state is available\nnothing can create new state at that point because this happens with\nthe hash bucket lock held.\n\nSo the above scenario changes to:\n\nT1 lock_futex_pi(F);\n\nT2 lock_futex_pi(F);\n   --\u003e T2 blocks on the futex and creates pi_state which is associated\n       to T1.\n\nT1 exits\n   --\u003e exit_robust_list() runs\n       --\u003e Futex F userspace value TID field is set to 0 and\n           FUTEX_OWNER_DIED bit is set.\n\nT3 lock_futex_pi(F);\n   --\u003e Finds pi_state and blocks on pi_state-\u003ert_mutex\n\nT1 --\u003e exit_pi_state_list()\n       --\u003e Transfers pi_state to waiter T2 and wakes it via\n       \t   rt_mutex_unlock(\u0026pi_state-\u003emutex)\n\nT2 --\u003e acquires pi_state-\u003emutex and gains ownership of the pi_state\n   --\u003e Claims ownership of the futex and sets its own TID into the\n       userspace TID field of futex F\n   --\u003e returns to user space\n\nThis covers all gazillion points on which T3 might come in between\nT1\u0027s exit_robust_list() clearing the TID field and T2 fixing it up. It\nalso solves the \"WAITERS bit stale\" problem by forcing the take over.\n\nAnother benefit of changing the code this way is that it makes it less\ndependent on untrusted user space values and therefor minimizes the\npossible wreckage which might be inflicted.\n\nAs usual after staring for too long at the futex code my brain hurts\nso much that I really want to ditch that whole optimization of\navoiding the syscall for the non contended case for PI futexes and rip\nout the maze of corner case handling code. Unfortunately we can\u0027t as\nuser space relies on that existing behaviour, but at least thinking\nabout it helps me to preserve my mental sanity. Maybe we should\nnevertheless :)\n\nReported-and-tested-by: Siddhesh Poyarekar \u003csiddhesh.poyarekar@gmail.com\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1210232138540.2756@ionos\nAcked-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "59ef28b1f14899b10d6b2682c7057ca00a9a3f47",
      "tree": "68ad548001fb24c0e63e1758d368a746998feb05",
      "parents": [
        "bc909421a9c7083fcde795846d22b36a51a7be54"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Oct 25 10:49:25 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 31 13:56:37 2012 +1030"
      },
      "message": "module: fix out-by-one error in kallsyms\n\nMasaki found and patched a kallsyms issue: the last symbol in a\nmodule\u0027s symtab wasn\u0027t transferred.  This is because we manually copy\nthe zero\u0027th entry (which is always empty) then copy the rest in a loop\nstarting at 1, though from src[0].  His fix was minimal, I prefer to\nrewrite the loops in more standard form.\n\nThere are two loops: one to get the size, and one to copy.  Make these\nidentical: always count entry 0 and any defined symbol in an allocated\nnon-init section.\n\nThis bug exists since the following commit was introduced.\n   module: reduce symbol table for loaded modules (v2)\n   commit: 4a4962263f07d14660849ec134ee42b63e95ea9a\n\nLKML: http://lkml.org/lkml/2012/10/24/27\nReported-by: Masaki Kimura \u003cmasaki.kimura.kz@hitachi.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2ab3f29dddfb444c9fcc0a2f3a56ed4bdba41969",
      "tree": "b1999129c781fbd524c921c4ebfde029a48cca17",
      "parents": [
        "b1e4279e4ef5549bf6ebf8f6f17dd26f0af8e8a2",
        "12176503366885edd542389eed3aaf94be163fdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s fixes)\n\nMerge misc fixes from Andrew Morton:\n \"18 total.  15 fixes and some updates to a device_cgroup patchset which\n  bring it up to date with the version which I should have merged in the\n  first place.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (18 patches)\n  fs/compat_ioctl.c: VIDEO_SET_SPU_PALETTE missing error check\n  gen_init_cpio: avoid stack overflow when expanding\n  drivers/rtc/rtc-imxdi.c: add missing spin lock initialization\n  mm, numa: avoid setting zone_reclaim_mode unless a node is sufficiently distant\n  pidns: limit the nesting depth of pid namespaces\n  drivers/dma/dw_dmac: make driver\u0027s endianness configurable\n  mm/mmu_notifier: allocate mmu_notifier in advance\n  tools/testing/selftests/epoll/test_epoll.c: fix build\n  UAPI: fix tools/vm/page-types.c\n  mm/page_alloc.c:alloc_contig_range(): return early for err path\n  rbtree: include linux/compiler.h for definition of __always_inline\n  genalloc: stop crashing the system when destroying a pool\n  backlight: ili9320: add missing SPI dependency\n  device_cgroup: add proper checking when changing default behavior\n  device_cgroup: stop using simple_strtoul()\n  device_cgroup: rename deny_all to behavior\n  cgroup: fix invalid rcu dereference\n  mm: fix XFS oops due to dirty pages without buffers on s390\n"
    },
    {
      "commit": "2008713c7174e5c0f207bac684c6df0939047009",
      "tree": "0442715e0de7522c33e9f4bc413e32b9fc6202a5",
      "parents": [
        "6bb1e3819c08d640bc7e64fc522d7d8b1bc4d0b9"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Oct 24 14:11:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 16:00:53 2012 -0700"
      },
      "message": "Makefile: Documentation for external tool should be correct\n\nIf one includes documentation for an external tool, it should be\ncorrect.  This is not:\n\n1. Overriding the input to rngd should typically be neither\n   necessary nor desired.  This is especially so since newer\n   versions of rngd support a number of different *types* of sources.\n2. The default kernel-exported device is called /dev/hwrng not\n   /dev/hwrandom nor /dev/hw_random (both of which were used in the\n   past; however, kernel and udev seem to have converged on\n   /dev/hwrng.)\n\nOverall it is better if the documentation for rngd is kept with rngd\nrather than in a kernel Makefile.\n\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2302505775fd13ba93f034206f1e2a587017929",
      "tree": "0397e3cbf7556e93618ed7ad7316578049707ca1",
      "parents": [
        "d5ea7b5ec1ee4dac868143806c0bd94855754677"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Thu Oct 25 13:38:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 25 14:37:53 2012 -0700"
      },
      "message": "pidns: limit the nesting depth of pid namespaces\n\n\u0027struct pid\u0027 is a \"variable sized struct\" - a header with an array of\nupids at the end.\n\nThe size of the array depends on a level (depth) of pid namespaces.  Now a\nlevel of pidns is not limited, so \u0027struct pid\u0027 can be more than one page.\n\nLooks reasonable, that it should be less than a page.  MAX_PIS_NS_LEVEL is\nnot calculated from PAGE_SIZE, because in this case it depends on\narchitectures, config options and it will be reduced, if someone adds a\nnew fields in struct pid or struct upid.\n\nI suggest to set MAX_PIS_NS_LEVEL \u003d 32, because it saves ability to expand\n\"struct pid\" and it\u0027s more than enough for all known for me use-cases.\nWhen someone finds a reasonable use case, we can add a config option or a\nsysctl parameter.\n\nIn addition it will reduce the effect of another problem, when we have\nmany nested namespaces and the oldest one starts dying.\nzap_pid_ns_processe will be called for each namespace and find_vpid will\nbe called for each process in a namespace.  find_vpid will be called\nminimum max_level^2 / 2 times.  The reason of that is that when we found a\nbit in pidmap, we can\u0027t determine this pidns is top for this process or it\nisn\u0027t.\n\nvpid is a heavy operation, so a fork bomb, which create many nested\nnamespace, can make a system inaccessible for a long time.  For example my\nsystem becomes inaccessible for a few minutes with 4000 processes.\n\n[akpm@linux-foundation.org: return -EINVAL in response to excessive nesting, not -ENOMEM]\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbb525b447996f5d5702f7f2d7073f395fadcfe1",
      "tree": "a4a8db1a3223b7410a25c52535ceaa4c52d443c1",
      "parents": [
        "d579a35d0e488770ec6fbe0ce5efe8a797cada2f",
        "d87838321124061f6c935069d97f37010fa417e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 16:35:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 16:35:13 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup fixes from Tejun Heo:\n \"This pull request contains three fixes.\n\n  Two are reverts of task_lock() removal in cgroup fork path.  The\n  optimizations incorrectly assumed that threadgroup_lock can protect\n  process forks (as opposed to thread creations) too.  Further cleanup\n  of cgroup fork path is scheduled.\n\n  The third fixes cgroup emptiness notification loss.\"\n\n* \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  Revert \"cgroup: Remove task_lock() from cgroup_post_fork()\"\n  Revert \"cgroup: Drop task_lock(parent) on cgroup_fork()\"\n  cgroup: notify_on_release may not be triggered in some cases\n"
    },
    {
      "commit": "d579a35d0e488770ec6fbe0ce5efe8a797cada2f",
      "tree": "f556217c23857ed111240f03e599ff9c7d6e74f0",
      "parents": [
        "0e9e3e306c7e472bdcffa34c4c4584301eda03b3",
        "c0158ca64da5732dfb86a3f28944e9626776692f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 16:33:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 16:33:22 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue fix from Tejun Heo:\n \"This pull request contains one patch from Dan Magenheimer to fix\n  cancel_delayed_work() regression introduced by its reimplementation\n  using try_to_grab_pending().  The reimplementation made it incorrectly\n  return %true when the work item is idle.\n\n  There aren\u0027t too many consumers of the return value but it broke at\n  least ramster.\"\n\n* \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: cancel_delayed_work() should return %false if work item is idle\n"
    },
    {
      "commit": "c0158ca64da5732dfb86a3f28944e9626776692f",
      "tree": "2ce9ff8057b9273905424b2932b35a080cfdbf38",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu Oct 18 16:31:37 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Oct 24 12:38:16 2012 -0700"
      },
      "message": "workqueue: cancel_delayed_work() should return %false if work item is idle\n\n57b30ae77b (\"workqueue: reimplement cancel_delayed_work() using\ntry_to_grab_pending()\") made cancel_delayed_work() always return %true\nunless someone else is also trying to cancel the work item, which is\nbroken - if the target work item is idle, the return value should be\n%false.\n\ntry_to_grab_pending() indicates that the target work item was idle by\nzero return value.  Use it for return.  Note that this brings\ncancel_delayed_work() in line with __cancel_work_timer() in return\nvalue handling.\n\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c444a6439-b1a4-4740-9e7e-bc37267cfe73@default\u003e\n"
    },
    {
      "commit": "e17b1315832b97700502200f0a3dde3ac0fbc839",
      "tree": "e5a9bf48b596f327f303539b264584c7fd5ebca4",
      "parents": [
        "684baeb1d78ac478a8e5f00aa9ab0ce0837f2a91",
        "ef8ff74ed8dd9d4b3ba8cb9f2fc927a27c697a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 04:07:51 2012 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 24 04:07:51 2012 +0300"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Most of these are uprobes race fixes from Oleg, and their preparatory\n  cleanups.  (It\u0027s larger than what I\u0027d normally send for an -rc kernel,\n  but they looked significant enough to not delay them.)\n\n  There\u0027s also an oprofile fix and an uncore PMU fix.\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)\n  perf/x86: Disable uncore on virtualized CPUs\n  oprofile, x86: Fix wrapping bug in op_x86_get_ctrl()\n  ring-buffer: Check for uninitialized cpu buffer before resizing\n  uprobes: Fix the racy uprobe-\u003eflags manipulation\n  uprobes: Fix prepare_uprobe() race with itself\n  uprobes: Introduce prepare_uprobe()\n  uprobes: Fix handle_swbp() vs unregister() + register() race\n  uprobes: Do not delete uprobe if uprobe_unregister() fails\n  uprobes: Don\u0027t return success if alloc_uprobe() fails\n  uprobes/x86: Only rep+nop can be emulated correctly\n  uprobes: Simplify is_swbp_at_addr(), remove stale comments\n  uprobes: Kill set_orig_insn()-\u003eis_swbp_at_addr()\n  uprobes: Introduce copy_opcode(), kill read_opcode()\n  uprobes: Kill set_swbp()-\u003eis_swbp_at_addr()\n  uprobes: Restrict valid_vma(false) to skip VM_SHARED vmas\n  uprobes: Change valid_vma() to demand VM_MAYEXEC rather than VM_EXEC\n  uprobes: Change write_opcode() to use FOLL_FORCE\n  uprobes: Move clear_thread_flag(TIF_UPROBE) to uprobe_notify_resume()\n  uprobes: Kill UTASK_BP_HIT state\n  uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()\n  ...\n"
    },
    {
      "commit": "0390c8835690506802fd5d54ea5444f0b9b1708b",
      "tree": "189107b966d635ff78a652a860bacde25a3f8503",
      "parents": [
        "4fe7e866a7d43479ac8d8a610023a9c9275f488f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Oct 20 18:59:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 22 08:56:34 2012 +0300"
      },
      "message": "module_signing: fix printk format warning\n\nFix the warning:\n\n  kernel/module_signing.c:195:2: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027size_t\u0027\n\nby using the proper \u0027z\u0027 modifier for printing a size_t.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef8ff74ed8dd9d4b3ba8cb9f2fc927a27c697a8b",
      "tree": "0c000fb23d1c40545093a8042b7a98ea11b0e0e0",
      "parents": [
        "f38787f4f921222d080d976ef59210ce3c6c6cb4",
        "8e49f418c9632790bf456634742d34d97120a784"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 19:53:34 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 19:53:34 2012 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent\n\nPull ftrace ring-buffer resizing fix from Steve Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f38787f4f921222d080d976ef59210ce3c6c6cb4",
      "tree": "55e643bc1e5b066f04323a4054fdc814726221be",
      "parents": [
        "957b9095ed296311b36d26e4316d7f637351ac57",
        "71434f2fcba5c22d6e0d51878ba8e241a5dea5fb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 18:18:17 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 18:18:17 2012 +0200"
      },
      "message": "Merge branch \u0027uprobes/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/urgent\n\nPull various uprobes bugfixes from Oleg Nesterov - mostly race and\nfailure path fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "31fd84b95eb211d5db460a1dda85e004800a7b52",
      "tree": "ff1a3c181f16696c4b2d1059bd9f70b6d5cbda13",
      "parents": [
        "8c1bee685e6e9e18ed28cba32f0cec0d2e4effee"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Oct 19 18:45:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 18:51:17 2012 -0700"
      },
      "message": "use clamp_t in UNAME26 fix\n\nThe min/max call needed to have explicit types on some architectures\n(e.g. mn10300). Use clamp_t instead to avoid the warning:\n\n  kernel/sys.c: In function \u0027override_release\u0027:\n  kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caabe240574aec05b2f5667414ce80f9075c2ba1",
      "tree": "d92bf96b009bd0b0caec44c21348812b06805909",
      "parents": [
        "b6bb324dbddd704b4b9a85971e1f7ae79abb2e1d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Oct 20 01:19:29 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 17:30:40 2012 -0700"
      },
      "message": "MODSIGN: Move the magic string to the end of a module and eliminate the search\n\nEmit the magic string that indicates a module has a signature after the\nsignature data instead of before it.  This allows module_sig_check() to\nbe made simpler and faster by the elimination of the search for the\nmagic string.  Instead we just need to do a single memcmp().\n\nThis works because at the end of the signature data there is the\nfixed-length signature information block.  This block then falls\nimmediately prior to the magic number.\n\nFrom the contents of the information block, it is trivial to calculate\nthe size of the signature data and thus the size of the actual module\ndata.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d87838321124061f6c935069d97f37010fa417e6",
      "tree": "825e291d0ad7bdc7e7eb68e4bb829121de2586bc",
      "parents": [
        "9bb71308b8133d643648776243e4d5599b1c193d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 18 17:40:30 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 19 14:09:35 2012 -0700"
      },
      "message": "Revert \"cgroup: Remove task_lock() from cgroup_post_fork()\"\n\nThis reverts commit 7e3aa30ac8c904a706518b725c451bb486daaae9.\n\nThe commit incorrectly assumed that fork path always performed\nthreadgroup_change_begin/end() and depended on that for\nsynchronization against task exit and cgroup migration paths instead\nof explicitly grabbing task_lock().\n\nthreadgroup_change is not locked when forking a new process (as\nopposed to a new thread in the same process) and even if it were it\nwouldn\u0027t be effective as different processes use different threadgroup\nlocks.\n\nRevert the incorrect optimization.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c20121008020000.GB2575@localhost\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "9bb71308b8133d643648776243e4d5599b1c193d",
      "tree": "f975fb2ffcd3d9b2ae222705836a9a142b97d350",
      "parents": [
        "1f5320d5972aa50d3e8d2b227b636b370e608359"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 18 17:52:07 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 19 14:08:49 2012 -0700"
      },
      "message": "Revert \"cgroup: Drop task_lock(parent) on cgroup_fork()\"\n\nThis reverts commit 7e381b0eb1e1a9805c37335562e8dc02e7d7848c.\n\nThe commit incorrectly assumed that fork path always performed\nthreadgroup_change_begin/end() and depended on that for\nsynchronization against task exit and cgroup migration paths instead\nof explicitly grabbing task_lock().\n\nthreadgroup_change is not locked when forking a new process (as\nopposed to a new thread in the same process) and even if it were it\nwouldn\u0027t be effective as different processes use different threadgroup\nlocks.\n\nRevert the incorrect optimization.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c20121008020000.GB2575@localhost\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nBitterly-Acked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "bbc2e3ef87851bc5430b2b4cf4ca3a2f29baeda6",
      "tree": "d9cef396c8370184f23e99480725aa8fde4bea08",
      "parents": [
        "dc36d7e7cd422d69b15e7ec7cc1f021f581a6b6d"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Fri Oct 19 13:56:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 14:07:47 2012 -0700"
      },
      "message": "pidns: remove recursion from free_pid_ns()\n\nfree_pid_ns() operates in a recursive fashion:\n\nfree_pid_ns(parent)\n  put_pid_ns(parent)\n    kref_put(\u0026ns-\u003ekref, free_pid_ns);\n      free_pid_ns\n\nthus if there was a huge nesting of namespaces the userspace may trigger\navalanche calling of free_pid_ns leading to kernel stack exhausting and a\npanic eventually.\n\nThis patch turns the recursion into an iterative loop.\n\nBased on a patch by Andrew Vagin.\n\n[akpm@linux-foundation.org: export put_pid_ns() to modules]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2702b1526c7278c4d65d78de209a465d4de2885e",
      "tree": "a41af3d56a6e37af19bc7ed392f2580750ba86cb",
      "parents": [
        "1d46e232f8637f31f8df2e50b27fd20d8135bd93"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Oct 19 13:56:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 19 14:07:47 2012 -0700"
      },
      "message": "kernel/sys.c: fix stack memory content leak via UNAME26\n\nCalling uname() with the UNAME26 personality set allows a leak of kernel\nstack contents.  This fixes it by defensively calculating the length of\ncopy_to_user() call, making the len argument unsigned, and initializing\nthe stack buffer to zero (now technically unneeded, but hey, overkill).\n\nCVE-2012-0957\n\nReported-by: PaX Team \u003cpageexec@freemail.hu\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: PaX Team \u003cpageexec@freemail.hu\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85eae82a0855d49852b87deac8653e4ebc8b291f",
      "tree": "c7b6a9334bf9f56c361537c8273a12f4b0549e0b",
      "parents": [
        "75fa29c7000924060677e0591368045576daad93"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Oct 15 21:35:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 16 18:17:44 2012 -0700"
      },
      "message": "printk: Fix scheduling-while-atomic problem in console_cpu_notify()\n\nThe console_cpu_notify() function runs with interrupts disabled in the\nCPU_DYING case.  It therefore cannot block, for example, as will happen\nwhen it calls console_lock().  Therefore, remove the CPU_DYING leg of\nthe switch statement to avoid this problem.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f5320d5972aa50d3e8d2b227b636b370e608359",
      "tree": "a36f1ef6a2f2f72d81e5aef43c0089bb62056bf5",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Oct 04 16:37:16 2012 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 16 17:09:36 2012 -0700"
      },
      "message": "cgroup: notify_on_release may not be triggered in some cases\n\nnotify_on_release must be triggered when the last process in a cgroup is\nmove to another. But if the first(and only) process in a cgroup is moved to\nanother, notify_on_release is not triggered.\n\n\t# mkdir /cgroup/cpu/SRC\n\t# mkdir /cgroup/cpu/DST\n\t#\n\t# echo 1 \u003e/cgroup/cpu/SRC/notify_on_release\n\t# echo 1 \u003e/cgroup/cpu/DST/notify_on_release\n\t#\n\t# sleep 300 \u0026\n\t[1] 8629\n\t#\n\t# echo 8629 \u003e/cgroup/cpu/SRC/tasks\n\t# echo 8629 \u003e/cgroup/cpu/DST/tasks\n\t-\u003e notify_on_release for /SRC must be triggered at this point,\n\t   but it isn\u0027t.\n\nThis is because put_css_set() is called before setting CGRP_RELEASABLE\nin cgroup_task_migrate(), and is a regression introduce by the\ncommit:74a1166d(cgroups: make procs file writable), which was merged\ninto v3.0.\n\nCc: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \u003cstable@vger.kernel.org\u003e # v3.0.x and later\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "d25282d1c9b9bc4cda7f9d3c0205108e99aa7a9d",
      "tree": "f414482d768b015a609924293b779b4ad0b8f764",
      "parents": [
        "b6eea87fc6850d3531a64a27d2323a4498cd4e43",
        "dbadc17683e6c673a69b236c0f041b931cc55c42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 14 13:39:34 2012 -0700"
      },
      "message": "Merge branch \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module signing support from Rusty Russell:\n \"module signing is the highlight, but it\u0027s an all-over David Howells frenzy...\"\n\nHmm \"Magrathea: Glacier signing key\". Somebody has been reading too much HHGTTG.\n\n* \u0027modules-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (37 commits)\n  X.509: Fix indefinite length element skip error handling\n  X.509: Convert some printk calls to pr_devel\n  asymmetric keys: fix printk format warning\n  MODSIGN: Fix 32-bit overflow in X.509 certificate validity date checking\n  MODSIGN: Make mrproper should remove generated files.\n  MODSIGN: Use utf8 strings in signer\u0027s name in autogenerated X.509 certs\n  MODSIGN: Use the same digest for the autogen key sig as for the module sig\n  MODSIGN: Sign modules during the build process\n  MODSIGN: Provide a script for generating a key ID from an X.509 cert\n  MODSIGN: Implement module signature checking\n  MODSIGN: Provide module signing public keys to the kernel\n  MODSIGN: Automatically generate module signing keys if missing\n  MODSIGN: Provide Kconfig options\n  MODSIGN: Provide gitignore and make clean rules for extra files\n  MODSIGN: Add FIPS policy\n  module: signature checking hook\n  X.509: Add a crypto key parser for binary (DER) X.509 certificates\n  MPILIB: Provide a function to read raw data into an MPI\n  X.509: Add an ASN.1 decoder\n  X.509: Add simple ASN.1 grammar compiler\n  ...\n"
    },
    {
      "commit": "6c536a17fa049d0fb690c1a947b97dbfd304a916",
      "tree": "ed86fed39ac0952b2f21afee04d9d1494e9b904b",
      "parents": [
        "ba8a3d6c7c1956c6ff54a96e23007beccaa95640",
        "f2f0945e356daef87cdb01c0302801fb11cf382a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 11:16:58 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 11:16:58 2012 +0900"
      },
      "message": "Merge tag \u0027for_linus-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb\n\nPull KGDB/KDB fixes and cleanups from Jason Wessel:\n \"Cleanups\n   - Clean up compile warnings in kgdboc.c and x86/kernel/kgdb.c\n   - Add module event hooks for simplified debugging with gdb\n Fixes\n   - Fix kdb to stop paging with \u0027q\u0027 on bta and dmesg\n   - Fix for data that scrolls off the vga console due to line wrapping\n     when using the kdb pager\n New\n   - The debug core registers for kernel module events which allows a\n     kernel aware gdb to automatically load symbols and break on entry\n     to a kernel module\n   - Allow kgdboc\u003dkdb to setup kdb on the vga console\"\n\n* tag \u0027for_linus-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:\n  tty/console: fix warnings in drivers/tty/serial/kgdboc.c\n  kdb,vt_console: Fix missed data due to pager overruns\n  kdb: Fix dmesg/bta scroll to quit with \u0027q\u0027\n  kgdboc: Accept either kbd or kdb to activate the vga + keyboard kdb shell\n  kgdb,x86: fix warning about unused variable\n  mips,kgdb: fix recursive page fault with CONFIG_KPROBES\n  kgdb: Add module event hooks\n"
    },
    {
      "commit": "ade0899b298ba2c43bfd6abd8cbc2545944cde0c",
      "tree": "a448dfb440b3b958b6306bb43620cd5d76f504bf",
      "parents": [
        "871a0596cb2f51b57dc583d1a7c4be0186582fe7",
        "95cf59ea72331d0093010543b8951bb43f262cac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:20:11 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:20:11 2012 +0900"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf updates from Ingo Molnar:\n \"This tree includes some late late perf items that missed the first\n  round:\n\n  tools:\n\n   - Bash auto completion improvements, now we can auto complete the\n     tools long options, tracepoint event names, etc, from Namhyung Kim.\n\n   - Look up thread using tid instead of pid in \u0027perf sched\u0027.\n\n   - Move global variables into a perf_kvm struct, from David Ahern.\n\n   - Hists refactorings, preparatory for improved \u0027diff\u0027 command, from\n     Jiri Olsa.\n\n   - Hists refactorings, preparatory for event group viewieng work, from\n     Namhyung Kim.\n\n   - Remove double negation on optional feature macro definitions, from\n     Namhyung Kim.\n\n   - Remove several cases of needless global variables, on most\n     builtins.\n\n   - misc fixes\n\n  kernel:\n\n   - sysfs support for IBS on AMD CPUs, from Robert Richter.\n\n   - Support for an upcoming Intel CPU, the Xeon-Phi / Knights Corner\n     HPC blade PMU, from Vince Weaver.\n\n   - misc fixes\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)\n  perf: Fix perf_cgroup_switch for sw-events\n  perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu\n  perf/AMD/IBS: Add sysfs support\n  perf hists: Add more helpers for hist entry stat\n  perf hists: Move he-\u003estat.nr_events initialization to a template\n  perf hists: Introduce struct he_stat\n  perf diff: Removing the total_period argument from output code\n  perf tool: Add hpp interface to enable/disable hpp column\n  perf tools: Removing hists pair argument from output path\n  perf hists: Separate overhead and baseline columns\n  perf diff: Refactor diff displacement possition info\n  perf hists: Add struct hists pointer to struct hist_entry\n  perf tools: Complete tracepoint event names\n  perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU\n  perf evlist: Remove some unused methods\n  perf evlist: Introduce add_newtp method\n  perf kvm: Move global variables into a perf_kvm struct\n  perf tools: Convert to BACKTRACE_SUPPORT\n  perf tools: Long option completion support for each subcommands\n  perf tools: Complete long option names of perf command\n  ...\n"
    },
    {
      "commit": "4e21fc138bfd7fe625ff5dc81541399aaf9d429b",
      "tree": "43bedf14d2eee7711b8241dcfd6bd7b8737d9bd5",
      "parents": [
        "8418263e3547ed3816475e4c55a77004f0426ee6",
        "5522be6a4624a5f505555569e4d9cee946630686"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:05:52 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:05:52 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull third pile of kernel_execve() patches from Al Viro:\n \"The last bits of infrastructure for kernel_thread() et.al., with\n  alpha/arm/x86 use of those.  Plus sanitizing the asm glue and\n  do_notify_resume() on alpha, fixing the \"disabled irq while running\n  task_work stuff\" breakage there.\n\n  At that point the rest of kernel_thread/kernel_execve/sys_execve work\n  can be done independently for different architectures.  The only\n  pending bits that do depend on having all architectures converted are\n  restrictred to fs/* and kernel/* - that\u0027ll obviously have to wait for\n  the next cycle.\n\n  I thought we\u0027d have to wait for all of them done before we start\n  eliminating the longjump-style insanity in kernel_execve(), but it\n  turned out there\u0027s a very simple way to do that without flagday-style\n  changes.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  alpha: switch to saner kernel_execve() semantics\n  arm: switch to saner kernel_execve() semantics\n  x86, um: convert to saner kernel_execve() semantics\n  infrastructure for saner ret_from_kernel_thread semantics\n  make sure that kernel_thread() callbacks call do_exit() themselves\n  make sure that we always have a return path from kernel_execve()\n  ppc: eeh_event should just use kthread_run()\n  don\u0027t bother with kernel_thread/kernel_execve for launching linuxrc\n  alpha: get rid of switch_stack argument of do_work_pending()\n  alpha: don\u0027t bother passing switch_stack separately from regs\n  alpha: take SIGPENDING/NOTIFY_RESUME loop into signal.c\n  alpha: simplify TIF_NEED_RESCHED handling\n"
    },
    {
      "commit": "8418263e3547ed3816475e4c55a77004f0426ee6",
      "tree": "97c548b16e6753e1911870d824a07b7e726b6229",
      "parents": [
        "ccff9b1db693062b0a9c9070f4304deb47ef215c",
        "f81700bd831efcd12eb7f0e66b24b16c2ad00a32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:04:42 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:04:42 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull third pile of VFS updates from Al Viro:\n \"Stuff from Jeff Layton, mostly.  Sanitizing interplay between audit\n  and namei, removing a lot of insanity from audit_inode() mess and\n  getting things ready for his ESTALE patchset.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  procfs: don\u0027t need a PATH_MAX allocation to hold a string representation of an int\n  vfs: embed struct filename inside of names_cache allocation if possible\n  audit: make audit_inode take struct filename\n  vfs: make path_openat take a struct filename pointer\n  vfs: turn do_path_lookup into wrapper around struct filename variant\n  audit: allow audit code to satisfy getname requests from its names_list\n  vfs: define struct filename and have getname() return it\n  vfs: unexport getname and putname symbols\n  acct: constify the name arg to acct_on\n  vfs: allocate page instead of names_cache buffer in mount_block_root\n  audit: overhaul __audit_inode_child to accomodate retrying\n  audit: optimize audit_compare_dname_path\n  audit: make audit_compare_dname_path use parent_len helper\n  audit: remove dirlen argument to audit_compare_dname_path\n  audit: set the name_len in audit_inode for parent lookups\n  audit: add a new \"type\" field to audit_names struct\n  audit: reverse arguments to audit_inode_child\n  audit: no need to walk list in audit_inode if name is NULL\n  audit: pass in dentry to audit_copy_inode wherever possible\n  audit: remove unnecessary NULL ptr checks from do_path_lookup\n"
    },
    {
      "commit": "adb5c2473d3f91526c79db972aafb20a56d3fbb3",
      "tree": "f0427a11a91af2f5a5d0037ce52c32633019120b",
      "parents": [
        "669abf4e5539c8aa48bf28c965be05c0a7b58a27"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 16:43:13 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:15:09 2012 -0400"
      },
      "message": "audit: make audit_inode take struct filename\n\nKeep a pointer to the audit_names \"slot\" in struct filename.\n\nHave all of the audit_inode callers pass a struct filename ponter to\naudit_inode instead of a string pointer. If the aname field is already\npopulated, then we can skip walking the list altogether and just use it\ndirectly.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "669abf4e5539c8aa48bf28c965be05c0a7b58a27",
      "tree": "5b8e9e17c4f03ddd719c9c2089d829e2a040854a",
      "parents": [
        "873f1eedc1b983d772283279192c4ca2f60e8482"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 16:43:10 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:15:09 2012 -0400"
      },
      "message": "vfs: make path_openat take a struct filename pointer\n\n...and fix up the callers. For do_file_open_root, just declare a\nstruct filename on the stack and fill out the .name field. For\ndo_filp_open, make it also take a struct filename pointer, and fix up its\ncallers to call it appropriately.\n\nFor filp_open, add a variant that takes a struct filename pointer and turn\nfilp_open into a wrapper around it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ac86265dc8f665cc49d6e60a125e608cd2fca14",
      "tree": "9e7941e2d8dfb2106c5fb28504531dafc72e14e6",
      "parents": [
        "91a27b2a756784714e924e5e854b919273082d26"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:28 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:15:08 2012 -0400"
      },
      "message": "audit: allow audit code to satisfy getname requests from its names_list\n\nCurrently, if we call getname() on a userland string more than once,\nwe\u0027ll get multiple copies of the string and multiple audit_names\nrecords.\n\nAdd a function that will allow the audit_names code to satisfy getname\nrequests using info from the audit_names list, avoiding a new allocation\nand audit_names records.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91a27b2a756784714e924e5e854b919273082d26",
      "tree": "3913246b7d6e62703ec915f481e3a7159393f0f0",
      "parents": [
        "8e377d15078a501c4da98471f56396343c407d92"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:28 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 20:14:55 2012 -0400"
      },
      "message": "vfs: define struct filename and have getname() return it\n\ngetname() is intended to copy pathname strings from userspace into a\nkernel buffer. The result is just a string in kernel space. It would\nhowever be quite helpful to be able to attach some ancillary info to\nthe string.\n\nFor instance, we could attach some audit-related info to reduce the\namount of audit-related processing needed. When auditing is enabled,\nwe could also call getname() on the string more than once and not\nneed to recopy it from userspace.\n\nThis patchset converts the getname()/putname() interfaces to return\na struct instead of a string. For now, the struct just tracks the\nstring in kernel space and the original userland pointer for it.\n\nLater, we\u0027ll add other information to the struct as it becomes\nconvenient.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a74fb73c12398b250fdc5e333a11e15a9e3a84fc",
      "tree": "2bec2f6e20320f5a4bc01d1e19d7190842ef1c37",
      "parents": [
        "fb45550d76bb584857cf0ea3be79fa78207a3cff"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 21:28:25 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 13:35:07 2012 -0400"
      },
      "message": "infrastructure for saner ret_from_kernel_thread semantics\n\n* allow kernel_execve() leave the actual return to userland to\ncaller (selected by CONFIG_GENERIC_KERNEL_EXECVE).  Callers\nupdated accordingly.\n* architecture that does select GENERIC_KERNEL_EXECVE in its\nKconfig should have its ret_from_kernel_thread() do this:\n\tcall schedule_tail\n\tcall the callback left for it by copy_thread(); if it ever\nreturns, that\u0027s because it has just done successful kernel_execve()\n\tjump to return from syscall\nIOW, its only difference from ret_from_fork() is that it does call the\ncallback.\n* such an architecture should also get rid of ret_from_kernel_execve()\nand __ARCH_WANT_KERNEL_EXECVE\n\nThis is the last part of infrastructure patches in that area - from\nthat point on work on different architectures can live independently.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "03d3602a833715f83ea53b9feb078b9c4c5f6c1a",
      "tree": "7b63ec6753dd65e61392017e1aba2ee1e6b4bcd1",
      "parents": [
        "0588f1f934791b79d0a1e9b327be9b6eb361d2b8",
        "5b3900cd409466c0070b234d941650685ad0c791"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:17:48 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:17:48 2012 +0900"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer core update from Thomas Gleixner:\n - Bug fixes (one for a longstanding dead loop issue)\n - Rework of time related vsyscalls\n - Alarm timer updates\n - Jiffies updates to remove compile time dependencies\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Cast raw_interval to u64 to avoid shift overflow\n  timers: Fix endless looping between cascade() and internal_add_timer()\n  time/jiffies: bring back unconditional LATCH definition\n  time: Convert x86_64 to using new update_vsyscall\n  time: Only do nanosecond rounding on GENERIC_TIME_VSYSCALL_OLD systems\n  time: Introduce new GENERIC_TIME_VSYSCALL\n  time: Convert CONFIG_GENERIC_TIME_VSYSCALL to CONFIG_GENERIC_TIME_VSYSCALL_OLD\n  time: Move update_vsyscall definitions to timekeeper_internal.h\n  time: Move timekeeper structure to timekeeper_internal.h for vsyscall changes\n  jiffies: Remove compile time assumptions about CLOCK_TICK_RATE\n  jiffies: Kill unused TICK_USEC_TO_NSEC\n  alarmtimer: Rename alarmtimer_remove to alarmtimer_dequeue\n  alarmtimer: Remove unused helpers \u0026 defines\n  alarmtimer: Use hrtimer per-alarm instead of per-base\n  alarmtimer: Implement minimum alarm interval for allowing suspend\n"
    },
    {
      "commit": "0588f1f934791b79d0a1e9b327be9b6eb361d2b8",
      "tree": "c0b305c494ed32df711c576d9dbd78c8cb394654",
      "parents": [
        "9d55ab71b735621a63c8923ba934d87879847cef",
        "301a5cba2887d1f640e6d5184b05a6d7132017d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:13:05 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:13:05 2012 +0900"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar:\n \"A CPU hotplug related crash fix and a nohz accounting fixlet.\"\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Update sched_domains_numa_masks[][] when new cpus are onlined\n  sched: Ensure \u0027sched_domains_numa_levels\u0027 is safe to use in other functions\n  nohz: Fix one jiffy count too far in idle cputime\n"
    },
    {
      "commit": "9d55ab71b735621a63c8923ba934d87879847cef",
      "tree": "53bc24c37b4366e2b372a59a501be934e404b143",
      "parents": [
        "4f1cd91497774488ed16119ec3f54b3daf1561de",
        "c1f8d901d828da1df6d384780829952e7912aeba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:12:07 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 22:12:07 2012 +0900"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU fixes from Ingo Molnar:\n \"This tree includes a shutdown/cpu-hotplug deadlock fix and a\n  documentation fix.\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  rcu: Advise most users not to enable RCU user mode\n  rcu: Grace-period initialization excludes only RCU notifier\n"
    },
    {
      "commit": "17b572e82032bc246324ce136696656b66d4e3f1",
      "tree": "ff54f0141d8d9d60c9d8ea1f49842474aa882912",
      "parents": [
        "d1871b38fccdc4b6575b0cabdea9e06bc70167eb"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Sun Aug 26 22:37:03 2012 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 12 06:37:35 2012 -0500"
      },
      "message": "kdb,vt_console: Fix missed data due to pager overruns\n\nIt is possible to miss data when using the kdb pager.  The kdb pager\ndoes not pay attention to the maximum column constraint of the screen\nor serial terminal.  This result is not incrementing the shown lines\ncorrectly and the pager will print more lines that fit on the screen.\nObviously that is less than useful when using a VGA console where you\ncannot scroll back.\n\nThe pager will now look at the kdb_buffer string to see how many\ncharacters are printed.  It might not be perfect considering you can\noutput ASCII that might move the cursor position, but it is a\nsubstantially better approximation for viewing dmesg and trace logs.\n\nThis also means that the vt screen needs to set the kdb COLUMNS\nvariable.\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "d1871b38fccdc4b6575b0cabdea9e06bc70167eb",
      "tree": "b750732307696a074df2d71be6b034ba96557d8b",
      "parents": [
        "24b8592ec021c433e73e6d8000e71f5c341fdde0"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Sun Aug 26 21:43:12 2012 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 12 06:37:35 2012 -0500"
      },
      "message": "kdb: Fix dmesg/bta scroll to quit with \u0027q\u0027\n\nIf you press \u0027q\u0027 the pager should exit instead of printing everything\nfrom dmesg which can really bog down a 9600 baud serial link.\n\nThe same is true for the bta command.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f30fed10c440a25937e509860fa207399b26efe5",
      "tree": "7697f5e044f1a870d0ddd1e5953d494cb3d9643e",
      "parents": [
        "a0d271cbfed1dd50278c6b06bead3d00ba0a88f9"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 12 06:37:33 2012 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 12 06:37:33 2012 -0500"
      },
      "message": "kgdb: Add module event hooks\n\nAllow gdb to auto load kernel modules when it is attached,\nwhich makes it trivially easy to debug module init functions\nor pre-set breakpoints in a kernel module that has not loaded yet.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "cfd4da175599938f21a81cdd80df02fa4151dcba",
      "tree": "fa4cf90f56ff4113689348c70e72426c98515d2c",
      "parents": [
        "a608ca21f58ee44df5a71ba140e98498f3ebc2cd"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:27 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:03 2012 -0400"
      },
      "message": "acct: constify the name arg to acct_on\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4fa6b5ecbf092c6ee752ece8a55d71f663d23254",
      "tree": "6143912dc73b457a3be72faf31d46d855d3f87c3",
      "parents": [
        "e3d6b07b8ba161f638b026feba0c3c97875d7f1c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:25 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:03 2012 -0400"
      },
      "message": "audit: overhaul __audit_inode_child to accomodate retrying\n\nIn order to accomodate retrying path-based syscalls, we need to add a\nnew \"type\" argument to audit_inode_child. This will tell us whether\nwe\u0027re looking for a child entry that represents a create or a delete.\n\nIf we find a parent, don\u0027t automatically assume that we need to create a\nnew entry. Instead, use the information we have to try to find an\nexisting entry first. Update it if one is found and create a new one if\nnot.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e3d6b07b8ba161f638b026feba0c3c97875d7f1c",
      "tree": "d40cea06665f9092820d76948d38e329c178011b",
      "parents": [
        "29e9a3467c1367549568d7d411d5f30209ae181b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:25 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:02 2012 -0400"
      },
      "message": "audit: optimize audit_compare_dname_path\n\nIn the cases where we already know the length of the parent, pass it as\na parm so we don\u0027t need to recompute it. In the cases where we don\u0027t\nknow the length, pass in AUDIT_NAME_FULL (-1) to indicate that it should\nbe determined.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "29e9a3467c1367549568d7d411d5f30209ae181b",
      "tree": "9da23e302f9dcff070f9187f2882ee76262be601",
      "parents": [
        "563a0d1236c2c58d584ef122a5cdc9930e5860b3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Oct 10 15:25:24 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:02 2012 -0400"
      },
      "message": "audit: make audit_compare_dname_path use parent_len helper\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "563a0d1236c2c58d584ef122a5cdc9930e5860b3",
      "tree": "4432b3b2f6ef6c19e9bded14ae31942e2b58bd84",
      "parents": [
        "bfcec7087458812f575d9022b2d151641f34ee84"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:24 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:01 2012 -0400"
      },
      "message": "audit: remove dirlen argument to audit_compare_dname_path\n\nAll the callers set this to NULL now.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfcec7087458812f575d9022b2d151641f34ee84",
      "tree": "6c0f7dd3b016992da8d113ceeaae404c6abc03a1",
      "parents": [
        "78e2e802a8519031e5858595070b39713e26340d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:23 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:01 2012 -0400"
      },
      "message": "audit: set the name_len in audit_inode for parent lookups\n\nCurrently, this gets set mostly by happenstance when we call into\naudit_inode_child. While that might be a little more efficient, it seems\nwrong. If the syscall ends up failing before audit_inode_child ever gets\ncalled, then you\u0027ll have an audit_names record that shows the full path\nbut has the parent inode info attached.\n\nFix this by passing in a parent flag when we call audit_inode that gets\nset to the value of LOOKUP_PARENT. We can then fix up the pathname for\nthe audit entry correctly from the get-go.\n\nWhile we\u0027re at it, clean up the no-op macro for audit_inode in the\n!CONFIG_AUDITSYSCALL case.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "78e2e802a8519031e5858595070b39713e26340d",
      "tree": "92f79d2039f4119a127ab59e31a2d1c9dfb892fe",
      "parents": [
        "c43a25abba97c7d87131e71db6be24b24d7791a5"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:22 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:00 2012 -0400"
      },
      "message": "audit: add a new \"type\" field to audit_names struct\n\nFor now, we just have two possibilities:\n\nUNKNOWN: for a new audit_names record that we don\u0027t know anything about yet\nNORMAL: for everything else\n\nIn later patches, we\u0027ll add other types so we can distinguish and update\nrecords created under different circumstances.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c43a25abba97c7d87131e71db6be24b24d7791a5",
      "tree": "0fe959853254064e17805ca111838e7869720e43",
      "parents": [
        "9cec9d68ae53aae60b4a1fca4505c75a1d026392"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:00 2012 -0400"
      },
      "message": "audit: reverse arguments to audit_inode_child\n\nMost of the callers get called with an inode and dentry in the reverse\norder. The compiler then has to reshuffle the arg registers and/or\nstack in order to pass them on to audit_inode_child.\n\nReverse those arguments for a micro-optimization.\n\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9cec9d68ae53aae60b4a1fca4505c75a1d026392",
      "tree": "da913dbacdb569b382182beb70c660ac93a39e5a",
      "parents": [
        "1c2e51e8c162417d2831007ec256ede06c3a0201"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:31:59 2012 -0400"
      },
      "message": "audit: no need to walk list in audit_inode if name is NULL\n\nIf name is NULL then the condition in the loop will never be true. Also,\nwith this change, we can eliminate the check for n-\u003ename \u003d\u003d NULL since\nthe equivalence check will never be true if it is.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1c2e51e8c162417d2831007ec256ede06c3a0201",
      "tree": "c21a641405f7de220f16be4d2e74fec387ec92a9",
      "parents": [
        "f78570dd6ad9563fffd24cc5e1808e1a1242f16e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:20 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:31:59 2012 -0400"
      },
      "message": "audit: pass in dentry to audit_copy_inode wherever possible\n\nIn some cases, we were passing in NULL even when we have a dentry.\n\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "759e00b8a8883be28357426206d2f1752827e38a",
      "tree": "96e09daf0bcb7fc49e4c384e8b20b92c223568bd",
      "parents": [
        "5cea24c5899a81abf59706d69580dd5c734effa8",
        "6054b9cae24f7ff09e502cea408dad140210681a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 12:35:05 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 12:35:05 2012 +0900"
      },
      "message": "Merge tag \u0027pinctrl-for-3.7-late\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl\n\nPull second set of pinctrl patches from Linus Walleij:\n \"Here is a late pinctrl pull request with stuff that wasn\u0027t quite\n  tested at the first pull request.\n\n  The main reason to not hold off is that the modifications to\n  irq_domain_add_simple() as reviewed by Rob Herring introduce new\n  infrastructure for irqdomains that will be useful for the next cycle:\n  instead of sprinkling irq descriptor allocation all over the kernel\n  wherever a \"legacy\" domain is registered, which is necessary for any\n  platform using sparse IRQs, and many irq chips are say GPIO\n  controllers which may be used with several systems, some with sparse\n  IRQs some not, we push this into the irq_domain_add_simple() so we can\n  atleast do mistakes in one place.\n\n  The irq_domain_add_simple() is currently unused in the kernel, so I\n  need to provide a user.  The Nomadik stuff that goes with are changes\n  to the driver I use day-to-day to make use of this facility (and a\n  dependency), so see it as a way to eat my own dogfood: if this blows\n  up the egg hits my face.\n\n  A second round of pinctrl patches for v3.7:\n   - Complement the Nomadik pinctrl driver with alternate Cx functions\n     so it handles all oddities.\n   - A patch to the IRQdomain to reform the simple irqdomain to handle\n     IRQ descriptor allocation dynamically.\n   - Use the above feature in the Nomadik pin controller.\"\n\n* tag \u0027pinctrl-for-3.7-late\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:\n  pinctrl/nomadik: use simple or linear IRQ domain\n  irqdomain: augment add_simple() to allocate descs\n  pinctrl/nomadik: support other alternate-C functions\n"
    },
    {
      "commit": "79360ddd73dfe9a26f49ef4e27b8c26612929b0e",
      "tree": "a8b0d226e0d83ea4e3a8c27b091a7121dbb9638b",
      "parents": [
        "8213a2f3eeafdecf06dd718cb4130372263f6067",
        "98f6ef64b15a48f15062aff5d143b5d9a6ae7711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:52:03 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:52:03 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull pile 2 of vfs updates from Al Viro:\n \"Stuff in this one - assorted fixes, lglock tidy-up, death to\n  lock_super().\n\n  There\u0027ll be a VFS pile tomorrow (with patches from Jeff Layton,\n  sanitizing getname() and related parts of audit and preparing for\n  ESTALE fixes), but I\u0027d rather push the stuff in this one ASAP - some\n  of the bugs closed here are quite unpleasant.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  vfs: bogus warnings in fs/namei.c\n  consitify do_mount() arguments\n  lglock: add DEFINE_STATIC_LGLOCK()\n  lglock: make the per_cpu locks static\n  lglock: remove unused DEFINE_LGLOCK_LOCKDEP()\n  MAX_LFS_FILESIZE definition for 64bit needs LL...\n  tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking\n  vfs: drop lock/unlock super\n  ufs: drop lock/unlock super\n  sysv: drop lock/unlock super\n  hpfs: drop lock/unlock super\n  fat: drop lock/unlock super\n  ext3: drop lock/unlock super\n  exofs: drop lock/unlock super\n  dup3: Return an error when oldfd \u003d\u003d newfd.\n  fs: handle failed audit_log_start properly\n  fs: prevent use after free in auditing when symlink following was denied\n"
    },
    {
      "commit": "8213a2f3eeafdecf06dd718cb4130372263f6067",
      "tree": "0d02e3201dac64d1429f8552ee1163d4a1ef1646",
      "parents": [
        "40924754f2cabd5d9af4bcd4dcecc362b5e0baa1",
        "12f79be93d94698778ff2b3f921073fc5f6780d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:49:08 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:49:08 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull pile 2 of execve and kernel_thread unification work from Al Viro:\n \"Stuff in there: kernel_thread/kernel_execve/sys_execve conversions for\n  several more architectures plus assorted signal fixes and cleanups.\n\n  There\u0027ll be more (in particular, real fixes for the alpha\n  do_notify_resume() irq mess)...\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (43 commits)\n  alpha: don\u0027t open-code trace_report_syscall_{enter,exit}\n  Uninclude linux/freezer.h\n  m32r: trim masks\n  avr32: trim masks\n  tile: don\u0027t bother with SIGTRAP in setup_frame\n  microblaze: don\u0027t bother with SIGTRAP in setup_rt_frame()\n  mn10300: don\u0027t bother with SIGTRAP in setup_frame()\n  frv: no need to raise SIGTRAP in setup_frame()\n  x86: get rid of duplicate code in case of CONFIG_VM86\n  unicore32: remove pointless test\n  h8300: trim _TIF_WORK_MASK\n  parisc: decide whether to go to slow path (tracesys) based on thread flags\n  parisc: don\u0027t bother looping in do_signal()\n  parisc: fix double restarts\n  bury the rest of TIF_IRET\n  sanitize tsk_is_polling()\n  bury _TIF_RESTORE_SIGMASK\n  unicore32: unobfuscate _TIF_WORK_MASK\n  mips: NOTIFY_RESUME is not needed in TIF masks\n  mips: merge the identical \"return from syscall\" per-ABI code\n  ...\n\nConflicts:\n\tarch/arm/include/asm/thread_info.h\n"
    },
    {
      "commit": "fb45550d76bb584857cf0ea3be79fa78207a3cff",
      "tree": "c141122f0aa7f1b5cea4ad52d36228a40b79b2fc",
      "parents": [
        "d6b2123802d2b7eee8c62cd0ebd73e8636cbb068"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 20:09:44 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 11 21:42:36 2012 -0400"
      },
      "message": "make sure that kernel_thread() callbacks call do_exit() themselves\n\nMost of them never returned anyway - only two functions had to be\nchanged.  That allows to simplify their callers a whole lot.\n\nNote that this does *not* apply to kthread_run() callbacks - all of\nthose had been called from the same kernel_thread() callback, which\ndid do_exit() already.  This is strictly about very few low-level\nkernel_thread() callbacks (there are only 6 of those, mostly as part\nof kthread.h and kmod.h exported mechanisms, plus kernel_init()\nitself).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8e49f418c9632790bf456634742d34d97120a784",
      "tree": "dfe1caca880206a3cfb38c923e49a5af74071d87",
      "parents": [
        "95cf59ea72331d0093010543b8951bb43f262cac"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Wed Oct 10 16:40:27 2012 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 11 12:21:48 2012 -0400"
      },
      "message": "ring-buffer: Check for uninitialized cpu buffer before resizing\n\nWith a system where, num_present_cpus \u003c num_possible_cpus, even if all\nCPUs are online, non-present CPUs don\u0027t have per_cpu buffers allocated.\nIf per_cpu/\u003ccpu\u003e/buffer_size_kb is modified for such a CPU, it can cause\na panic due to NULL dereference in ring_buffer_resize().\n\nTo fix this, resize operation is allowed only if the per-cpu buffer has\nbeen initialized.\n\nLink: http://lkml.kernel.org/r/1349912427-6486-1-git-send-email-vnagarnaik@google.com\n\nCc: stable@vger.kernel.org # 3.5+\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d5b719365ec13ef825f2548ba54903b9d029238c",
      "tree": "c22d21c4351cb065f2f049a04223dd27fcbf5b6e",
      "parents": [
        "e7d113bcf243a838ba1c32025172ab214349dfad"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 02 14:35:24 2012 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:06:36 2012 +1030"
      },
      "message": "MODSIGN: Make mrproper should remove generated files.\n\nIt doesn\u0027t, because the clean targets don\u0027t include kernel/Makefile, and\nbecause two files were missing from the list.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e7d113bcf243a838ba1c32025172ab214349dfad",
      "tree": "1a8830155cc2273388546ba85dba1f0a7f5e6d40",
      "parents": [
        "5e8cb1e441dd74723898cd28fe64af5651023af0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 28 11:16:57 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:06:35 2012 +1030"
      },
      "message": "MODSIGN: Use utf8 strings in signer\u0027s name in autogenerated X.509 certs\n\nPlace an indication that the certificate should use utf8 strings into the\nx509.genkey template generated by kernel/Makefile.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5e8cb1e441dd74723898cd28fe64af5651023af0",
      "tree": "75d771910d536f9a10cf1eab682d1655ec4adcd3",
      "parents": [
        "80d65e58e93ffdabf58202653a0435bd3cf2d82e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Sep 28 11:16:57 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:06:34 2012 +1030"
      },
      "message": "MODSIGN: Use the same digest for the autogen key sig as for the module sig\n\nUse the same digest type for the autogenerated key signature as for the module\nsignature so that the hash algorithm is guaranteed to be present in the kernel.\n\nWithout this, the X.509 certificate loader may reject the X.509 certificate so\ngenerated because it was self-signed and the signature will be checked against\nitself - but this won\u0027t work if the digest algorithm must be loaded as a\nmodule.\n\nThe symptom is that the key fails to load with the following message emitted\ninto the kernel log:\n\n\tMODSIGN: Problem loading in-kernel X.509 certificate (-65)\n\nthe error in brackets being -ENOPKG.  What you should see is something like:\n\n\tMODSIGN: Loaded cert \u0027Magarathea: Glacier signing key: 9588321144239a119d3406d4c4cf1fbae1836fa0\u0027\n\nNote that this doesn\u0027t apply to certificates that are not self-signed as we\ndon\u0027t check those currently as they require the parent CA certificate to be\navailable.\n\nReported-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "48ba2462ace6072741fd8d0058207d630ce93bf1",
      "tree": "3cea7661a3bd5d03631e01171c19f2123346cf01",
      "parents": [
        "631cc66eb9eaa7296e303197ff1eb0f55e32b61d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 26 10:11:03 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:06:10 2012 +1030"
      },
      "message": "MODSIGN: Implement module signature checking\n\nCheck the signature on the module against the keys compiled into the kernel or\navailable in a hardware key store.\n\nCurrently, only RSA keys are supported - though that\u0027s easy enough to change,\nand the signature is expected to contain raw components (so not a PGP or\nPKCS#7 formatted blob).\n\nThe signature blob is expected to consist of the following pieces in order:\n\n (1) The binary identifier for the key.  This is expected to match the\n     SubjectKeyIdentifier from an X.509 certificate.  Only X.509 type\n     identifiers are currently supported.\n\n (2) The signature data, consisting of a series of MPIs in which each is in\n     the format of a 2-byte BE word sizes followed by the content data.\n\n (3) A 12 byte information block of the form:\n\n\tstruct module_signature {\n\t\tenum pkey_algo\t\talgo : 8;\n\t\tenum pkey_hash_algo\thash : 8;\n\t\tenum pkey_id_type\tid_type : 8;\n\t\tu8\t\t\t__pad;\n\t\t__be32\t\t\tid_length;\n\t\t__be32\t\t\tsig_length;\n\t};\n\n     The three enums are defined in crypto/public_key.h.\n\n     \u0027algo\u0027 contains the public-key algorithm identifier (0-\u003eDSA, 1-\u003eRSA).\n\n     \u0027hash\u0027 contains the digest algorithm identifier (0-\u003eMD4, 1-\u003eMD5, 2-\u003eSHA1,\n      etc.).\n\n     \u0027id_type\u0027 contains the public-key identifier type (0-\u003ePGP, 1-\u003eX.509).\n\n     \u0027__pad\u0027 should be 0.\n\n     \u0027id_length\u0027 should contain in the binary identifier length in BE form.\n\n     \u0027sig_length\u0027 should contain in the signature data length in BE form.\n\n     The lengths are in BE order rather than CPU order to make dealing with\n     cross-compilation easier.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (minor Kconfig fix)\n"
    },
    {
      "commit": "631cc66eb9eaa7296e303197ff1eb0f55e32b61d",
      "tree": "631c962060a776a16ec35c477e99d4ef87c8db24",
      "parents": [
        "d441108c6f77541bb66fcd5b3389415b4c232008"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 26 10:09:51 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:01:22 2012 +1030"
      },
      "message": "MODSIGN: Provide module signing public keys to the kernel\n\nInclude a PGP keyring containing the public keys required to perform module\nverification in the kernel image during build and create a special keyring\nduring boot which is then populated with keys of crypto type holding the public\nkeys found in the PGP keyring.\n\nThese can be seen by root:\n\n[root@andromeda ~]# cat /proc/keys\n07ad4ee0 I-----     1 perm 3f010000     0     0 crypto    modsign.0: RSA 87b9b3bd []\n15c7f8c3 I-----     1 perm 1f030000     0     0 keyring   .module_sign: 1/4\n...\n\nIt is probably worth permitting root to invalidate these keys, resulting in\ntheir removal and preventing further modules from being loaded with that key.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d441108c6f77541bb66fcd5b3389415b4c232008",
      "tree": "eda7f0ed11d134b992bcb085a4543d63f38def4b",
      "parents": [
        "ea0b6dcf71d216dc11733ac19b26df0f5d0fd6c2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 26 10:09:51 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:01:21 2012 +1030"
      },
      "message": "MODSIGN: Automatically generate module signing keys if missing\n\nAutomatically generate keys for module signing if they\u0027re absent so that\nallyesconfig doesn\u0027t break.  The builder should consider generating their own\nkey and certificate, however, so that the keys are appropriately named.\n\nThe private key for the module signer should be placed in signing_key.priv\n(unencrypted!) and the public key in an X.509 certificate as signing_key.x509.\n\nIf a transient key is desired for signing the modules, a config file for\n\u0027openssl req\u0027 can be placed in x509.genkey, looking something like the\nfollowing:\n\n\t[ req ]\n\tdefault_bits \u003d 4096\n\tdistinguished_name \u003d req_distinguished_name\n\tprompt \u003d no\n\tx509_extensions \u003d myexts\n\n\t[ req_distinguished_name ]\n\tO \u003d Magarathea\n\tCN \u003d Glacier signing key\n\temailAddress \u003d slartibartfast@magrathea.h2g2\n\n\t[ myexts ]\n\tbasicConstraints\u003dcritical,CA:FALSE\n\tkeyUsage\u003ddigitalSignature\n\tsubjectKeyIdentifier\u003dhash\n\tauthorityKeyIdentifier\u003dhash\n\nThe build process will use this to configure:\n\n\topenssl req -new -nodes -utf8 -sha1 -days 36500 -batch \\\n\t\t-x509 -config x509.genkey \\\n\t\t-outform DER -out signing_key.x509 \\\n\t\t-keyout signing_key.priv\n\nto generate the key.\n\nNote that it is required that the X.509 certificate have a subjectKeyIdentifier\nand an authorityKeyIdentifier.  Without those, the certificate will be\nrejected.  These can be used to check the validity of a certificate.\n\nNote that \u0027make distclean\u0027 will remove signing_key.{priv,x509} and x509.genkey,\nwhether or not they were generated automatically.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1d0059f3a468825b5fc5405c636a2f6e02707ffa",
      "tree": "0eef1243a093410f39564051d8904c8041e1e717",
      "parents": [
        "106a4ee258d14818467829bf0e12aeae14c16cd7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 26 10:09:50 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:01:19 2012 +1030"
      },
      "message": "MODSIGN: Add FIPS policy\n\nIf we\u0027re in FIPS mode, we should panic if we fail to verify the signature on a\nmodule or we\u0027re asked to load an unsigned module in signature enforcing mode.\nPossibly FIPS mode should automatically enable enforcing mode.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "106a4ee258d14818467829bf0e12aeae14c16cd7",
      "tree": "4a5d002eceff4a028ebc8d88223b1ed735bee224",
      "parents": [
        "c26fd69fa00916a31a47f5f096fd7be924106df8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 26 10:09:40 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 10 20:00:55 2012 +1030"
      },
      "message": "module: signature checking hook\n\nWe do a very simple search for a particular string appended to the module\n(which is cache-hot and about to be SHA\u0027d anyway).  There\u0027s both a config\noption and a boot parameter which control whether we accept or fail with\nunsigned modules and modules that are signed with an unknown key.\n\nIf module signing is enabled, the kernel will be tainted if a module is\nloaded that is unsigned or has a signature for which we don\u0027t have the\nkey.\n\n(Useful feedback and tweaks by David Howells \u003cdhowells@redhat.com\u003e)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "2854d167cc545d0642277bf8b77f972a91146fc6",
      "tree": "a8b8a2083bdd6569093af1613adea259064a1bcb",
      "parents": [
        "c22df08c7ffbfb281b0e5dff3fff4e192d1a7863"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@linaro.org",
        "time": "Thu Sep 27 14:59:39 2012 +0200"
      },
      "committer": {
        "name": "Linus Walleij",
        "email": "linus.walleij@linaro.org",
        "time": "Wed Oct 10 08:57:26 2012 +0200"
      },
      "message": "irqdomain: augment add_simple() to allocate descs\n\nCurrently we rely on all IRQ chip instances to dynamically\nallocate their IRQ descriptors unless they use the linear\nIRQ domain. So for irqdomain_add_legacy() and\nirqdomain_add_simple() the caller need to make sure that\ndescriptors are allocated.\n\nLet\u0027s slightly augment the yet unused irqdomain_add_simple()\nto also allocate descriptors as a means to simplify usage\nand avoid code duplication throughout the kernel.\n\nWe warn if descriptors cannot be allocated, e.g. if a\nplatform has the bad habit of hogging descriptors at boot\ntime.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Lee Jones \u003clee.jones@linaro.org\u003e\nReviewed-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\n"
    },
    {
      "commit": "d1c7d97ad58836affde6e39980b96527510b572e",
      "tree": "4020ac7f88154d5dd919fdf371472ea9153a656e",
      "parents": [
        "ffd8d101a3a7d3f2e79deee1e342801703b6dc70"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Thu Oct 04 19:57:31 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 09 23:33:37 2012 -0400"
      },
      "message": "fs: handle failed audit_log_start properly\n\naudit_log_start() may return NULL, this is unchecked by the caller in\naudit_log_link_denied() and could cause a NULL ptr deref.\n\nIntroduced by commit a51d9eaa (\"fs: add link restriction audit reporting\").\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "42859eea96ba6beabfb0369a1eeffa3c7d2bd9cb",
      "tree": "fa38aeda0d6e7a4c48a882b166b8643594a1ad50",
      "parents": [
        "f59b51fe3d3092c08d7d554ecb40db24011b2ebc",
        "f322220d6159455da2b5a8a596d802c8695fed30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull generic execve() changes from Al Viro:\n \"This introduces the generic kernel_thread() and kernel_execve()\n  functions, and switches x86, arm, alpha, um and s390 over to them.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (26 commits)\n  s390: convert to generic kernel_execve()\n  s390: switch to generic kernel_thread()\n  s390: fold kernel_thread_helper() into ret_from_fork()\n  s390: fold execve_tail() into start_thread(), convert to generic sys_execve()\n  um: switch to generic kernel_thread()\n  x86, um/x86: switch to generic sys_execve and kernel_execve\n  x86: split ret_from_fork\n  alpha: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  alpha: switch to generic kernel_thread()\n  alpha: switch to generic sys_execve()\n  arm: get rid of execve wrapper, switch to generic execve() implementation\n  arm: optimized current_pt_regs()\n  arm: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  arm: split ret_from_fork, simplify kernel_thread() [based on patch by rmk]\n  generic sys_execve()\n  generic kernel_execve()\n  new helper: current_pt_regs()\n  preparation for generic kernel_thread()\n  um: kill thread-\u003eforking\n  um: let signal_delivered() do SIGTRAP on singlestepping into handler\n  ...\n"
    },
    {
      "commit": "5b3900cd409466c0070b234d941650685ad0c791",
      "tree": "1a381a23d3d06cfc8941ee2e5dd400ba6cea6f21",
      "parents": [
        "26cff4e2aa4d666dc6a120ea34336b5057e3e187"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Oct 09 10:18:23 2012 +0300"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 09 21:27:14 2012 +0200"
      },
      "message": "timekeeping: Cast raw_interval to u64 to avoid shift overflow\n\nWe fixed a bunch of integer overflows in timekeeping code during the 3.6\ncycle.  I did an audit based on that and found this potential overflow.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20121009071823.GA19159@elgon.mountain\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "26cff4e2aa4d666dc6a120ea34336b5057e3e187",
      "tree": "be3f9c189519e4e42bb825d15adefb4d238a7214",
      "parents": [
        "db8c246937713e60b7628661ccc187eeb81f2bae"
      ],
      "author": {
        "name": "Hildner, Christian",
        "email": "christian.hildner@siemens.com",
        "time": "Mon Oct 08 15:49:03 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 09 21:27:14 2012 +0200"
      },
      "message": "timers: Fix endless looping between cascade() and internal_add_timer()\n\nAdding two (or more) timers with large values for \"expires\" (they have\nto reside within tv5 in the same list) leads to endless looping\nbetween cascade() and internal_add_timer() in case CONFIG_BASE_SMALL\nis one and jiffies are crossing the value 1 \u003c\u003c 18. The bug was\nintroduced between 2.6.11 and 2.6.12 (and survived for quite some\ntime).\n\nThis patch ensures that when cascade() is called timers within tv5 are\nnot added endlessly to their own list again, instead they are added to\nthe next lower tv level tv4 (as expected).\n\nSigned-off-by: Christian Hildner \u003cchristian.hildner@siemens.com\u003e\nReviewed-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nLink: http://lkml.kernel.org/r/98673C87CB31274881CFFE0B65ECC87B0F5FC1963E@DEFTHW99EA4MSX.ww902.siemens.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "db8c246937713e60b7628661ccc187eeb81f2bae",
      "tree": "6351e8bca23eef40fce85396d1c6f6cfffbd4b66",
      "parents": [
        "c5f66e99b7cb091e3d51ae8e8156892e8feb7fa3",
        "28f2b02bc581ffc835bc1691b18d03f62fcf0395"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 09 21:20:05 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 09 21:20:05 2012 +0200"
      },
      "message": "Merge branch \u0027fortglx/3.7/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n"
    },
    {
      "commit": "6bdb913f0a70a4dfb7f066fb15e2d6f960701d00",
      "tree": "9a61960b27bf801794104b8bb8fccee1813f1b4b",
      "parents": [
        "2ec74c3ef2d8c58d71e0e00336fb6b891192155a"
      ],
      "author": {
        "name": "Haggai Eran",
        "email": "haggaie@mellanox.com",
        "time": "Mon Oct 08 16:33:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:58 2012 +0900"
      },
      "message": "mm: wrap calls to set_pte_at_notify with invalidate_range_start and invalidate_range_end\n\nIn order to allow sleeping during invalidate_page mmu notifier calls, we\nneed to avoid calling when holding the PT lock.  In addition to its direct\ncalls, invalidate_page can also be called as a substitute for a change_pte\ncall, in case the notifier client hasn\u0027t implemented change_pte.\n\nThis patch drops the invalidate_page call from change_pte, and instead\nwraps all calls to change_pte with invalidate_range_start and\ninvalidate_range_end calls.\n\nNote that change_pte still cannot sleep after this patch, and that clients\nimplementing change_pte should not take action on it in case the number of\noutstanding invalidate_range_start calls is larger than one, otherwise\nthey might miss a later invalidation.\n\nSigned-off-by: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nCc: Sagi Grimberg \u003csagig@mellanox.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Shachar Raindel \u003craindel@mellanox.com\u003e\nCc: Liran Liss \u003cliranl@mellanox.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9826a516ff77c5820e591211e4f3e58ff36f46be",
      "tree": "bdec1e2fe5ff95569795069bac73977faba17d57",
      "parents": [
        "9c079add0d0f45220f4bb37febf0621137ec2d38"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "mm: interval tree updates\n\nUpdate the generic interval tree code that was introduced in \"mm: replace\nvma prio_tree with an interval tree\".\n\nChanges:\n\n- fixed \u0027endpoing\u0027 typo noticed by Andrew Morton\n\n- replaced include/linux/interval_tree_tmpl.h, which was used as a\n  template (including it automatically defined the interval tree\n  functions) with include/linux/interval_tree_generic.h, which only\n  defines a preprocessor macro INTERVAL_TREE_DEFINE(), which itself\n  defines the interval tree functions when invoked. Now that is a very\n  long macro which is unfortunate, but it does make the usage sites\n  (lib/interval_tree.c and mm/interval_tree.c) a bit nicer than previously.\n\n- make use of RB_DECLARE_CALLBACKS() in the INTERVAL_TREE_DEFINE() macro,\n  instead of duplicating that code in the interval tree template.\n\n- replaced vma_interval_tree_add(), which was actually handling the\n  nonlinear and interval tree cases, with vma_interval_tree_insert_after()\n  which handles only the interval tree case and has an API that is more\n  consistent with the other interval tree handling functions.\n  The nonlinear case is now handled explicitly in kernel/fork.c dup_mmap().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01dc52ebdf472f77cca623ca693ca24cfc0f1bbe",
      "tree": "2d0f35f2aff418d52a84fb50974ad3bacf68d4bd",
      "parents": [
        "d5dc0ad928fb9e972001e552597fd0b794863f34"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Mon Oct 08 16:29:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:24 2012 +0900"
      },
      "message": "oom: remove deprecated oom_adj\n\nThe deprecated /proc/\u003cpid\u003e/oom_adj is scheduled for removal this month.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "314e51b9851b4f4e8ab302243ff5a6fc6147f379",
      "tree": "f757b89206355fd129830782566768693eed23ce",
      "parents": [
        "0103bd16fb90bc741c7a03fd1ea4e8a505abad23"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:29:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:19 2012 +0900"
      },
      "message": "mm: kill vma flag VM_RESERVED and mm-\u003ereserved_vm counter\n\nA long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,\ncurrently it lost original meaning but still has some effects:\n\n | effect                 | alternative flags\n-+------------------------+---------------------------------------------\n1| account as reserved_vm | VM_IO\n2| skip in core dump      | VM_IO, VM_DONTDUMP\n3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n\nThis patch removes reserved_vm counter from mm_struct.  Seems like nobody\ncares about it, it does not exported into userspace directly, it only\nreduces total_vm showed in proc.\n\nThus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.\n\nremap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.\nremap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.\n\n[akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9714acf8c439688884234dcac2bfc38bb607d38",
      "tree": "2e21c88f855a9f5168a143fa9948141140ff02a2",
      "parents": [
        "2dd8ad81e31d0d36a5d448329c646ab43eb17788"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: kill vma flag VM_EXECUTABLE and mm-\u003enum_exe_file_vmas\n\nCurrently the kernel sets mm-\u003eexe_file during sys_execve() and then tracks\nnumber of vmas with VM_EXECUTABLE flag in mm-\u003enum_exe_file_vmas, as soon\nas this counter drops to zero kernel resets mm-\u003eexe_file to NULL.  Plus it\nresets mm-\u003eexe_file at last mmput() when mm-\u003emm_users drops to zero.\n\nVMA with VM_EXECUTABLE flag appears after mapping file with flag\nMAP_EXECUTABLE, such vmas can appears only at sys_execve() or after vma\nsplitting, because sys_mmap ignores this flag.  Usually binfmt module sets\nmm-\u003eexe_file and mmaps executable vmas with this file, they hold\nmm-\u003eexe_file while task is running.\n\ncomment from v2.6.25-6245-g925d1c4 (\"procfs task exe symlink\"),\nwhere all this stuff was introduced:\n\n\u003e The kernel implements readlink of /proc/pid/exe by getting the file from\n\u003e the first executable VMA.  Then the path to the file is reconstructed and\n\u003e reported as the result.\n\u003e\n\u003e Because of the VMA walk the code is slightly different on nommu systems.\n\u003e This patch avoids separate /proc/pid/exe code on nommu systems.  Instead of\n\u003e walking the VMAs to find the first executable file-backed VMA we store a\n\u003e reference to the exec\u0027d file in the mm_struct.\n\u003e\n\u003e That reference would prevent the filesystem holding the executable file\n\u003e from being unmounted even after unmapping the VMAs.  So we track the number\n\u003e of VM_EXECUTABLE VMAs and drop the new reference when the last one is\n\u003e unmapped.  This avoids pinning the mounted filesystem.\n\nexe_file\u0027s vma accounting is hooked into every file mmap/unmmap and vma\nsplit/merge just to fix some hypothetical pinning fs from umounting by mm,\nwhich already unmapped all its executable files, but still alive.\n\nSeems like currently nobody depends on this behaviour.  We can try to\nremove this logic and keep mm-\u003eexe_file until final mmput().\n\nmm-\u003eexe_file is still protected with mm-\u003emmap_sem, because we want to\nchange it via new sys_prctl(PR_SET_MM_EXE_FILE).  Also via this syscall\ntask can change its mm-\u003eexe_file and unpin mountpoint explicitly.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dd8ad81e31d0d36a5d448329c646ab43eb17788",
      "tree": "cd358be45ed8067673edac7f1db6b6a42a96d9db",
      "parents": [
        "0b173bc4daa8f8ec03a85abf5e47b23502ff80af"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: use mm-\u003eexe_file instead of first VM_EXECUTABLE vma-\u003evm_file\n\nSome security modules and oprofile still uses VM_EXECUTABLE for retrieving\na task\u0027s executable file.  After this patch they will use mm-\u003eexe_file\ndirectly.  mm-\u003eexe_file is protected with mm-\u003emmap_sem, so locking stays\nthe same.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\t\t\t[arch/tile]\nAcked-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\t[tomoyo]\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "075663d19885eb3738fd2d7dbdb8947e12563b68",
      "tree": "99454962711f19b24b5b4642b6a95a6551731228",
      "parents": [
        "7ac57a89de958fbb5271dc504d0c25e34dbeec32"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Mon Oct 08 16:28:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:15 2012 +0900"
      },
      "message": "CPU hotplug, debug: detect imbalance between get_online_cpus() and put_online_cpus()\n\nThe synchronization between CPU hotplug readers and writers is achieved\nby means of refcounting, safeguarded by the cpu_hotplug.lock.\n\nget_online_cpus() increments the refcount, whereas put_online_cpus()\ndecrements it.  If we ever hit an imbalance between the two, we end up\ncompromising the guarantees of the hotplug synchronization i.e, for\nexample, an extra call to put_online_cpus() can end up allowing a\nhotplug reader to execute concurrently with a hotplug writer.\n\nSo, add a WARN_ON() in put_online_cpus() to detect such cases where the\nrefcount can go negative, and also attempt to fix it up, so that we can\ncontinue to run.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ac57a89de958fbb5271dc504d0c25e34dbeec32",
      "tree": "4243b7e9f702e9b48820b62d8572f9aeb6f1cf1c",
      "parents": [
        "9b2a60c484715e2d2f07d8192fd9f18435cbc77c"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Oct 08 16:28:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:14 2012 +0900"
      },
      "message": "Kconfig: clean up the \"#if defined(arch)\" list for exception-trace sysctl entry\n\nIntroduce SYSCTL_EXCEPTION_TRACE config option and selec it in the\narchitectures requiring support for the \"exception-trace\" debug_table\nentry in kernel/sysctl.c.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4fbe35a124526e6759be07bd9c7ea796ba1e00d",
      "tree": "cb5c5a1608fcff588ed9a204ea67d5891adb18fb",
      "parents": [
        "cb349ca95407cbc11424d5e9fc7c8e700709041b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Oct 07 08:36:12 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Oct 08 09:06:38 2012 -0700"
      },
      "message": "rcu: Grace-period initialization excludes only RCU notifier\n\nKirill noted the following deadlock cycle on shutdown involving padata:\n\n\u003e With commit 755609a9087fa983f567dc5452b2fa7b089b591f I\u0027ve got deadlock on\n\u003e poweroff.\n\u003e\n\u003e It guess it happens because of race for cpu_hotplug.lock:\n\u003e\n\u003e       CPU A                                   CPU B\n\u003e disable_nonboot_cpus()\n\u003e _cpu_down()\n\u003e cpu_hotplug_begin()\n\u003e  mutex_lock(\u0026cpu_hotplug.lock);\n\u003e __cpu_notify()\n\u003e padata_cpu_callback()\n\u003e __padata_remove_cpu()\n\u003e padata_replace()\n\u003e synchronize_rcu()\n\u003e                                       rcu_gp_kthread()\n\u003e                                       get_online_cpus();\n\u003e                                       mutex_lock(\u0026cpu_hotplug.lock);\n\nIt would of course be good to eliminate grace-period delays from\nCPU-hotplug notifiers, but that is a separate issue.  Deadlock is\nnot an appropriate diagnostic for excessive CPU-hotplug latency.\n\nFortunately, grace-period initialization does not actually need to\nexclude all of the CPU-hotplug operation, but rather only RCU\u0027s own\nCPU_UP_PREPARE and CPU_DEAD CPU-hotplug notifiers.  This commit therefore\nintroduces a new per-rcu_state onoff_mutex that provides the required\nconcurrency control in place of the get_online_cpus() that was previously\nin rcu_gp_init().\n\nReported-by: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\n"
    },
    {
      "commit": "71434f2fcba5c22d6e0d51878ba8e241a5dea5fb",
      "tree": "0a61c5a75390a4eb39f018cc39cf8f40b0103058",
      "parents": [
        "4710f05fd146d4739e57a8832a3abc5bd3bf0997"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 21:12:44 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:43 2012 +0200"
      },
      "message": "uprobes: Fix the racy uprobe-\u003eflags manipulation\n\nMultiple threads can manipulate uprobe-\u003eflags, this is obviously\nunsafe. For example mmap can set UPROBE_COPY_INSN while register\ntries to set UPROBE_RUN_HANDLER, the latter can also race with\ncan_skip_sstep() which clears UPROBE_SKIP_SSTEP.\n\nChange this code to use bitops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4710f05fd146d4739e57a8832a3abc5bd3bf0997",
      "tree": "459f64b5243d621c85b34abf90e3892cca69e502",
      "parents": [
        "cb9a19fe4aa51afa34786bd383e6614fa0083d58"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 20:31:41 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:43 2012 +0200"
      },
      "message": "uprobes: Fix prepare_uprobe() race with itself\n\ninstall_breakpoint() is called under mm-\u003emmap_sem, this protects\nset_swbp() but not prepare_uprobe(). Two or more different tasks\ncan call install_breakpoint()-\u003eprepare_uprobe() at the same time,\nthis leads to numerous problems if UPROBE_COPY_INSN is not set.\n\nJust for example, the second copy_insn() can corrupt the already\nanalyzed/fixuped uprobe-\u003earch.insn and race with handle_swbp().\n\nThis patch simply adds uprobe-\u003ecopy_mutex to serialize this code.\nWe could probably reuse -\u003econsumer_rwsem, but this would mean that\nconsumer-\u003ehandler() can not use mm-\u003emmap_sem, not good.\n\nNote: this is another temporary ugly hack until we move this logic\ninto uprobe_register().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cb9a19fe4aa51afa34786bd383e6614fa0083d58",
      "tree": "e85fac9d3a69707cd9c3a98361f5cba845d5d260",
      "parents": [
        "142b18ddc81439acda4bc4231b291e99fe67d507"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 20:11:45 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:42 2012 +0200"
      },
      "message": "uprobes: Introduce prepare_uprobe()\n\nPreparation. Extract the copy_insn/arch_uprobe_analyze_insn code\nfrom install_breakpoint() into the new helper, prepare_uprobe().\n\nAnd move uprobe-\u003eflags defines from uprobes.h to uprobes.c, nobody\nelse can use them anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "142b18ddc81439acda4bc4231b291e99fe67d507",
      "tree": "2189191c456f93551d58b0f3afc4b53bb3b8949a",
      "parents": [
        "076a365b3da99b68c5d58e394714d0611f1fa002"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:56:57 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Fix handle_swbp() vs unregister() + register() race\n\nStrictly speaking this race was added by me in 56bb4cf6. However\nI think that this bug is just another indication that we should\nmove copy_insn/uprobe_analyze_insn code from install_breakpoint()\nto uprobe_register(), there are a lot of other reasons for that.\nUntil then, add a hack to close the race.\n\nA task can hit uprobe U1, but before it calls find_uprobe() this\nuprobe can be unregistered *AND* another uprobe U2 can be added to\nuprobes_tree at the same inode/offset. In this case handle_swbp()\nwill use the not-fully-initialized U2, in particular its arch.insn\nfor xol.\n\nAdd the additional !UPROBE_COPY_INSN check into handle_swbp(),\nif this flag is not set we simply restart as if the new uprobe was\nnot inserted yet. This is not very nice, we need barriers, but we\nwill remove this hack when we change uprobe_register().\n\nNote: with or without this patch install_breakpoint() can race with\nitself, yet another reson to kill UPROBE_COPY_INSN altogether. And\neven the usage of uprobe-\u003eflags is not safe. See the next patches.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "076a365b3da99b68c5d58e394714d0611f1fa002",
      "tree": "b58ae7da7bfa80200bb9982f344b93cf3f22a7fd",
      "parents": [
        "a5f658b71bc622b731961ea3addcf146ed3c599f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 18:54:53 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Do not delete uprobe if uprobe_unregister() fails\n\ndelete_uprobe() must not be called if register_for_each_vma(false)\nfails to remove all breakpoints, __uprobe_unregister() is correct.\nThe problem is that register_for_each_vma(false) always returns 0\nand thus this logic does not work.\n\n1. Change verify_opcode() to return 0 rather than -EINVAL when\n   unregister detects the !is_swbp insn, we can treat this case\n   as success and currently unregister paths ignore the error\n   code anyway.\n\n2. Change remove_breakpoint() to propagate the error code from\n   write_opcode().\n\n3. Change register_for_each_vma(is_register \u003d\u003e false) to remove\n   as much breakpoints as possible but return non-zero if\n   remove_breakpoint() fails at least once.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a5f658b71bc622b731961ea3addcf146ed3c599f",
      "tree": "52ebe6fb29ef955cee71ded01154d89d77577410",
      "parents": [
        "b64b9c937a533f0bfbfc9f6ac93d3c3e2f97ab02"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 18:21:09 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Don\u0027t return success if alloc_uprobe() fails\n\nIf alloc_uprobe() fails uprobe_register() should return ENOMEM, not 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "dc92b1f9ab1e1665dbbc56911782358e7f9a49f9",
      "tree": "965ccb4a0f2c24a8b24adce415f6506246d07a90",
      "parents": [
        "5e090ed7af10729a396a25df43d69a236e789736",
        "ca16f580a5db7e60bfafe59a50bb133bd3347491"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 21:04:56 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 21:04:56 2012 +0900"
      },
      "message": "Merge branch \u0027virtio-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull virtio changes from Rusty Russell:\n \"New workflow: same git trees pulled by linux-next get sent straight to\n  Linus.  Git is awkward at shuffling patches compared with quilt or mq,\n  but that doesn\u0027t happen often once things get into my -next branch.\"\n\n* \u0027virtio-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (24 commits)\n  lguest: fix occasional crash in example launcher.\n  virtio-blk: Disable callback in virtblk_done()\n  virtio_mmio: Don\u0027t attempt to create empty virtqueues\n  virtio_mmio: fix off by one error allocating queue\n  drivers/virtio/virtio_pci.c: fix error return code\n  virtio: don\u0027t crash when device is buggy\n  virtio: remove CONFIG_VIRTIO_RING\n  virtio: add help to CONFIG_VIRTIO option.\n  virtio: support reserved vqs\n  virtio: introduce an API to set affinity for a virtqueue\n  virtio-ring: move queue_index to vring_virtqueue\n  virtio_balloon: not EXPERIMENTAL any more.\n  virtio-balloon: dependency fix\n  virtio-blk: fix NULL checking in virtblk_alloc_req()\n  virtio-blk: Add REQ_FLUSH and REQ_FUA support to bio path\n  virtio-blk: Add bio-based IO path for virtio-blk\n  virtio: console: fix error handling in init() function\n  tools: Fix pthread flag for Makefile of trace-agent used by virtio-trace\n  tools: Add guest trace agent as a user tool\n  virtio/console: Allocate scatterlist according to the current pipe size\n  ...\n"
    },
    {
      "commit": "7f60ba388f5b9dd8b0da463b394412dace3ab814",
      "tree": "b97b4fb5c8ad07a435e5b1b559988364764d5e8d",
      "parents": [
        "e665faa424a4a782aa986274920c1fc5b76f5560",
        "80c9d03c22f13a17df67b4b99a83ed5e9acf6093"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 17:30:50 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 07 17:30:50 2012 +0900"
      },
      "message": "Merge tag \u0027for-v3.7\u0027 of git://git.infradead.org/users/cbou/linux-pstore\n\nPull pstore changes from Anton Vorontsov:\n\n 1) We no longer ad-hoc to the function tracer \"high level\"\n    infrastructure and no longer use its debugfs knobs.  The change\n    slightly touches kernel/trace directory, but it got the needed ack\n    from Steven Rostedt:\n\n      http://lkml.org/lkml/2012/8/21/688\n\n 2) Added maintainers entry;\n\n 3) A bunch of fixes, nothing special.\n\n* tag \u0027for-v3.7\u0027 of git://git.infradead.org/users/cbou/linux-pstore:\n  pstore: Avoid recursive spinlocks in the oops_in_progress case\n  pstore/ftrace: Convert to its own enable/disable debugfs knob\n  pstore/ram: Add missing platform_device_unregister\n  MAINTAINERS: Add pstore maintainers\n  pstore/ram: Mark ramoops_pstore_write_buf() as notrace\n  pstore/ram: Fix printk format warning\n  pstore/ram: Fix possible NULL dereference\n"
    },
    {
      "commit": "4965f5667f36a95b41cda6638875bc992bd7d18b",
      "tree": "554062719fbe5754197e1042024cceab1db4ddae",
      "parents": [
        "c99b6841d74a5c7d3698cc2a3ec44241fe64b769"
      ],
      "author": {
        "name": "T Makphaibulchoke",
        "email": "tmac@hp.com",
        "time": "Thu Oct 04 17:16:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:31 2012 +0900"
      },
      "message": "kernel/resource.c: fix stack overflow in __reserve_region_with_split()\n\nUsing a recursive call add a non-conflicting region in\n__reserve_region_with_split() could result in a stack overflow in the case\nthat the recursive calls are too deep.  Convert the recursive calls to an\niterative loop to avoid the problem.\n\nTested on a machine containing 135 regions.  The kernel no longer panicked\nwith stack overflow.\n\nAlso tested with code arbitrarily adding regions with no conflict,\nembedding two consecutive conflicts and embedding two non-consecutive\nconflicts.\n\nSigned-off-by: T Makphaibulchoke \u003ctmac@hp.com\u003e\nReviewed-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@gmail.com\u003e\nCc: Wei Yang \u003cweiyang@linux.vnet.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": "0324b5a450f8a58304e93c5d886add24ca3527bc",
      "tree": "f3e77339d9964f550485e9d9b40897ba1b95b33f",
      "parents": [
        "322c9ec009fdc2bc9ccb8f55afab3f7ab8ac71ab"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Oct 04 17:16:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:31 2012 +0900"
      },
      "message": "taskstats: cgroupstats_user_cmd() may leak on error\n\nIf prepare_reply() succeeds we have allocated memory for \u0027rep_skb\u0027.  If\nnla_reserve() then subsequently fails and returns NULL we fail to release\nthe memory we allocated, thus causing a leak.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de4ec99c32cca755a11f91abb86ed94ce11f2e60",
      "tree": "ae52a68ef9cd843dfaa6772b0d5117be26c1650d",
      "parents": [
        "9fb88442105f5fce96ea343927500d6307c8c550"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Thu Oct 04 17:15:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:19 2012 +0900"
      },
      "message": "kdump: remove unneeded include\n\nThe inclusion of \u003cgenerated/utsrelease.h\u003e is unnecessary.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nReviewed-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ab1c309b344880d81494e9eab7fb27682bc6d9d",
      "tree": "9509df6703c921d268db3b4b52c29992bcc24e35",
      "parents": [
        "0f4cfb2e4e7a7e4e97a3e90e2ba1062f07fb2cb1"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Oct 04 17:15:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:16 2012 +0900"
      },
      "message": "coredump: pass siginfo_t* to do_coredump() and below, not merely signr\n\nThis is a preparatory patch for the introduction of NT_SIGINFO elf note.\n\nWith this patch we pass \"siginfo_t *siginfo\" instead of \"int signr\" to\ndo_coredump() and put it into coredump_params.  It will be used by the\nnext patch.  Most changes are simple s/signr/siginfo-\u003esi_signo/.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: \"Jonathan M. Foote\" \u003cjmfoote@cert.org\u003e\nCc: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Pedro Alves \u003cpalves@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "179899fd5dc780fe3bcd44d0eb7823e3d855c855",
      "tree": "a2e7bf0098162e1fa940cad56bb1e99ec10440ca",
      "parents": [
        "046d662f481830e652ac34cd112249adde16452a"
      ],
      "author": {
        "name": "Alex Kelly",
        "email": "alex.page.kelly@gmail.com",
        "time": "Thu Oct 04 17:15:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:15 2012 +0900"
      },
      "message": "coredump: update coredump-related headers\n\nCreate a new header file, fs/coredump.h, which contains functions only\nused by the new coredump.c.  It also moves do_coredump to the\ninclude/linux/coredump.h header file, for consistency.\n\nSigned-off-by: Alex Kelly \u003calex.page.kelly@gmail.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "046d662f481830e652ac34cd112249adde16452a",
      "tree": "ad13e968b4b02f9e2c35ce45f358477474df80d7",
      "parents": [
        "db9aeca97a58563e1ab927d157c9b5048f233e73"
      ],
      "author": {
        "name": "Alex Kelly",
        "email": "alex.page.kelly@gmail.com",
        "time": "Thu Oct 04 17:15:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:15 2012 +0900"
      },
      "message": "coredump: make core dump functionality optional\n\nAdds an expert Kconfig option, CONFIG_COREDUMP, which allows disabling of\ncore dump.  This saves approximately 2.6k in the compiled kernel, and\ncomplements CONFIG_ELF_CORE, which now depends on it.\n\nCONFIG_COREDUMP also disables coredump-related sysctls, except for\nsuid_dumpable and related functions, which are necessary for ptrace.\n\n[akpm@linux-foundation.org: fix binfmt_aout.c build]\nSigned-off-by: Alex Kelly \u003calex.page.kelly@gmail.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c0c0d4d1080840eabb3d055d2fd81911111c5fd",
      "tree": "16d86fae708a4ef2a5ed3180391ba0f45b081cda",
      "parents": [
        "f96972f2dc6365421cf2366ebd61ee4cf060c8d5"
      ],
      "author": {
        "name": "hongfeng",
        "email": "hongfeng@marvell.com",
        "time": "Thu Oct 04 17:12:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:48 2012 +0900"
      },
      "message": "poweroff: fix bug in orderly_poweroff()\n\norderly_poweroff is trying to poweroff platform in two steps:\n\nstep 1: Call user space application to poweroff\nstep 2: If user space poweroff fail, then do a force power off if force param\n        is set.\n\nThe bug here is, step 1 is always successful with param UMH_NO_WAIT, which obey\nthe design goal of orderly_poweroff.\n\nWe have two choices here:\nUMH_WAIT_EXEC which means wait for the exec, but not the process;\nUMH_WAIT_PROC which means wait for the process to complete.\nwe need to trade off the two choices:\n\nIf using UMH_WAIT_EXEC, there is potential issue comments by Serge E.\nHallyn: The exec will have started, but may for whatever (very unlikely)\nreason fail.\n\nIf using UMH_WAIT_PROC, there is potential issue comments by Eric W.\nBiederman: If the caller is not running in a kernel thread then we can\neasily get into a case where the user space caller will block waiting for\nus when we are waiting for the user space caller.\n\nThanks for their excellent ideas, based on the above discussion, we\nfinally choose UMH_WAIT_EXEC, which is much more safe, if the user\napplication really fails, we just complain the application itself, it\nseems a better choice here.\n\nSigned-off-by: Feng Hong \u003chongfeng@marvell.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f96972f2dc6365421cf2366ebd61ee4cf060c8d5",
      "tree": "8a8aa56a74371a8b39f55184631ea34030a147a4",
      "parents": [
        "9f6547a3209b78689ab8183630df87ca5e13fec0"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Thu Oct 04 17:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:47 2012 +0900"
      },
      "message": "kernel/sys.c: call disable_nonboot_cpus() in kernel_restart()\n\nAs kernel_power_off() calls disable_nonboot_cpus(), we may also want to\nhave kernel_restart() call disable_nonboot_cpus().  Doing so can help\nmachines that require boot cpu be the last alive cpu during reboot to\nsurvive with kernel restart.\n\nThis fixes one reboot issue seen on imx6q (Cortex-A9 Quad).  The machine\nrequires that the restart routine be run on the primary cpu rather than\nsecondary ones.  Otherwise, the secondary core running the restart\nroutine will fail to come to online after reboot.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95cf59ea72331d0093010543b8951bb43f262cac",
      "tree": "7d0bc786d071b50217040691c4e1ab5a6ff73296",
      "parents": [
        "3f1f33206c16c7b3839d71372bc2ac3f305aa802"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 02 15:41:23 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Oct 05 13:59:07 2012 +0200"
      },
      "message": "perf: Fix perf_cgroup_switch for sw-events\n\nJiri reported that he could trigger the WARN_ON_ONCE() in\nperf_cgroup_switch() using sw-events. This is because sw-events share\na cpuctx with multiple PMUs.\n\nUse the -\u003eunique_pmu pointer to limit the pmu iteration to unique\ncpuctx instances.\n\nReported-and-Tested-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-so7wi2zf3jjzrwcutm2mkz0j@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "3f1f33206c16c7b3839d71372bc2ac3f305aa802",
      "tree": "683e2af07cb49e9a333f982e72088929027881c1",
      "parents": [
        "2e132b12f78d88672711ae1d87624951de1089ca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 02 15:38:52 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Oct 05 13:59:06 2012 +0200"
      },
      "message": "perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu\n\nStephane thought the perf_cpu_context::active_pmu name confusing and\nsuggested using \u0027unique_pmu\u0027 instead.\n\nThis pointer is a pointer to a \u0027random\u0027 pmu sharing the cpuctx\ninstance, therefore limiting a for_each_pmu loop to those where\ncpuctx-\u003eunique_pmu matches the pmu we get a loop over unique cpuctx\ninstances.\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-kxyjqpfj2fn9gt7kwu5ag9ks@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    }
  ],
  "next": "301a5cba2887d1f640e6d5184b05a6d7132017d5"
}
