)]}'
{
  "log": [
    {
      "commit": "54d1ae492f724f103a07f69c8e429a35d43b5c52",
      "tree": "c4cdcbc2d5223f7efea732cbf041da0ec2220912",
      "parents": [
        "cfd1f032f98e5ab3a04f23a0adbd53ff8744827d",
        "f3537f91f9be2ce5fcbaa1aa6d787ad0436daec6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 06 08:29:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 06 08:29:08 2012 -0800"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module signing fixes from Rusty Russell:\n \"David gave me these a month ago, during my git workflow churn :(\"\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  ASN.1: Fix an indefinite length skip error\n  MODSIGN: Don\u0027t use enum-type bitfields in module signature info block\n"
    },
    {
      "commit": "cfd1f032f98e5ab3a04f23a0adbd53ff8744827d",
      "tree": "eec5ef1622e29e99bc450d12ac4ccad94fc08e4a",
      "parents": [
        "27d7c2a006a81c04fab00b8cd81b99af3b32738d",
        "8d4516904b39507458bee8115793528e12b1d8dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 06 08:27:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 06 08:27:11 2012 -0800"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull watchdog fix from Thomas Gleixner:\n \"Trivial CPU hotplug regression fix for the watchdog code\"\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  watchdog: Fix CPU hotplug regression\n"
    },
    {
      "commit": "12e130b04580532aa099893158aa2776b321ae7f",
      "tree": "b7a6ed562d7293aa1e5b584e109a9669db253f49",
      "parents": [
        "df2fc246c8ee8b6067af1fa55d3bc23107457f61"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 22 15:05:48 2012 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 05 11:27:24 2012 +1030"
      },
      "message": "MODSIGN: Don\u0027t use enum-type bitfields in module signature info block\n\nDon\u0027t use enum-type bitfields in the module signature info block as we can\u0027t be\ncertain how the compiler will handle them.  As I understand it, it is arch\ndependent, and it is possible for the compiler to rearrange them based on\nendianness and to insert a byte of padding to pad the three enums out to four\nbytes.\n\nInstead use u8 fields for these, which the compiler should emit in the right\norder without padding.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8d4516904b39507458bee8115793528e12b1d8dd",
      "tree": "4afc56d198921b85f61918c2478cfc93fb2dc96e",
      "parents": [
        "b69f0859dc8e633c5d8c06845811588fe17e68b3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 04 18:59:34 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 04 19:56:59 2012 +0100"
      },
      "message": "watchdog: Fix CPU hotplug regression\n\nNorbert reported:\n\"3.7-rc6 booted with nmi_watchdog\u003d0 fails to suspend to RAM or\n offline CPUs. It\u0027s reproducable with a KVM guest and physical\n system.\"\n\nThe reason is that commit bcd951cf(watchdog: Use hotplug thread\ninfrastructure) missed to take this into account. So the cpu offline\ncode gets stuck in the teardown function because it accesses non\ninitialized data structures.\n\nAdd a check for watchdog_enabled into that path to cure the issue.\n\nReported-and-tested-by: Norbert Warmuth \u003cnwarmuth@t-online.de\u003e\nTested-by: Joseph Salisbury \u003cjoseph.salisbury@canonical.com\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1211231033230.2701@ionos\nLink: http://bugs.launchpad.net/bugs/1079534\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "df2fc246c8ee8b6067af1fa55d3bc23107457f61",
      "tree": "4f23eb533768183e55c91130ae58e5cbd5878e9b",
      "parents": [
        "70dcc535bdf30ffaef58b867fbde45c0287f34c6",
        "84ecfd15f5547c992c901df6ec14b4d507eb2c6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 04 09:32:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 04 09:32:12 2012 -0800"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module fixes from Rusty Russell:\n \"Module signing build fixes for blackfin and metag\"\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  modsign: add symbol prefix to certificate list\n  linux/kernel.h: define SYMBOL_PREFIX\n"
    },
    {
      "commit": "ca50496eb487b639de1f502e77a48dde84152fb9",
      "tree": "73a2a57cb6dc9717daff0e8d7880928747e05b2d",
      "parents": [
        "609e3ff3ff797c0ddba1c61c8eb83923586ed079",
        "fc4b514f2727f74a4587c31db87e0e93465518c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 04 09:02:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 04 09:02:45 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue fixes from Tejun Heo:\n \"So, safe fixes my ass.\n\n  Commit 8852aac25e79 (\"workqueue: mod_delayed_work_on() shouldn\u0027t queue\n  timer on 0 delay\") had the side-effect of performing delayed_work\n  sanity checks even when @delay is 0, which should be fine for any sane\n  use cases.\n\n  Unfortunately, megaraid was being overly ingenious.  It seemingly\n  wanted to use cancel_delayed_work_sync() before cancel_work_sync() was\n  introduced, but didn\u0027t want to waste the space for full delayed_work\n  as it was only going to use 0 @delay.  So, it only allocated space for\n  struct work_struct and then cast it to struct delayed_work and passed\n  it into delayed_work functions - truly awesome engineering tradeoff to\n  save some bytes.\n\n  Xiaotian fixed it by making megraid allocate full delayed_work for\n  now.  It should be converted to use work_struct and cancel_work_sync()\n  but I think we better do that after 3.7.\n\n  I added another commit to change BUG_ON()s in __queue_delayed_work()\n  to WARN_ON_ONCE()s so that the kernel doesn\u0027t crash even if there are\n  more such abuses.\"\n\n* \u0027for-3.7-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s\n  megaraid: fix BUG_ON() from incorrect use of delayed work\n"
    },
    {
      "commit": "fc4b514f2727f74a4587c31db87e0e93465518c3",
      "tree": "83c8758213d3492b4c48541c8a3782bdd47adf99",
      "parents": [
        "c1d390d8e6128b050f0f66b1c33d390760deb3f4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 04 07:40:39 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 04 07:58:47 2012 -0800"
      },
      "message": "workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s\n\n8852aac25e (\"workqueue: mod_delayed_work_on() shouldn\u0027t queue timer on\n0 delay\") unexpectedly uncovered a very nasty abuse of delayed_work in\nmegaraid - it allocated work_struct, casted it to delayed_work and\nthen pass that into queue_delayed_work().\n\nPreviously, this was okay because 0 @delay short-circuited to\nqueue_work() before doing anything with delayed_work.  8852aac25e\nmoved 0 @delay test into __queue_delayed_work() after sanity check on\ndelayed_work making megaraid trigger BUG_ON().\n\nAlthough megaraid is already fixed by c1d390d8e6 (\"megaraid: fix\nBUG_ON() from incorrect use of delayed work\"), this patch converts\nBUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s so that such\nabusers, if there are more, trigger warning but don\u0027t crash the\nmachine.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Xiaotian Feng \u003cxtfeng@gmail.com\u003e\n"
    },
    {
      "commit": "fd8ef11730f1d03d5d6555aa53126e9e34f52f12",
      "tree": "b5121d6016bf20b46ae0fdc760b9e2f4e836bf21",
      "parents": [
        "d3594ea2b343fbbabaaebeb4ce4e1f29e88ab6b3"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Dec 03 06:25:25 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 03 11:10:24 2012 -0800"
      },
      "message": "Revert \"sched, autogroup: Stop going ahead if autogroup is disabled\"\n\nThis reverts commit 800d4d30c8f20bd728e5741a3b77c4859a613f7c.\n\nBetween commits 8323f26ce342 (\"sched: Fix race in task_group()\") and\n800d4d30c8f2 (\"sched, autogroup: Stop going ahead if autogroup is\ndisabled\"), autogroup is a wreck.\n\nWith both applied, all you have to do to crash a box is disable\nautogroup during boot up, then reboot..  boom, NULL pointer dereference\ndue to commit 800d4d30c8f2 not allowing autogroup to move things, and\ncommit 8323f26ce342 making that the only way to switch runqueues:\n\n  BUG: unable to handle kernel NULL pointer dereference at           (null)\n  IP: [\u003cffffffff81063ac0\u003e] effective_load.isra.43+0x50/0x90\n  Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502\n  RIP: effective_load.isra.43+0x50/0x90\n  Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)\n  Call Trace:\n    select_task_rq_fair+0x255/0x780\n    try_to_wake_up+0x156/0x2c0\n    wake_up_state+0xb/0x10\n    signal_wake_up+0x28/0x40\n    complete_signal+0x1d6/0x250\n    __send_signal+0x170/0x310\n    send_signal+0x40/0x80\n    do_send_sig_info+0x47/0x90\n    group_send_sig_info+0x4a/0x70\n    kill_pid_info+0x3a/0x60\n    sys_kill+0x97/0x1a0\n    ? vfs_read+0x120/0x160\n    ? sys_read+0x45/0x90\n    system_call_fastpath+0x16/0x1b\n  Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 \u003c48\u003e 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c\n  RIP  [\u003cffffffff81063ac0\u003e] effective_load.isra.43+0x50/0x90\n   RSP \u003cffff880221ddfbd8\u003e\n  CR2: 0000000000000000\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@vger.kernel.org # 2.6.39+\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84ecfd15f5547c992c901df6ec14b4d507eb2c6e",
      "tree": "72b05a443db34bdceb22a383602a2dd0c1e211c9",
      "parents": [
        "cbdbf2abb7844548a7d7a6a2ae7af6b6fbcea401"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Nov 23 12:08:16 2012 +0000"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Dec 03 13:06:25 2012 +1030"
      },
      "message": "modsign: add symbol prefix to certificate list\n\nAdd the arch symbol prefix (if applicable) to the asm definition of\nmodsign_certificate_list and modsign_certificate_list_end. This uses the\nrecently defined SYMBOL_PREFIX which is derived from\nCONFIG_SYMBOL_PREFIX.\n\nThis fixes the build of module signing on the blackfin and metag\narchitectures.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8852aac25e79e38cc6529f20298eed154f60b574",
      "tree": "dba9304157032b33339db9c8165b3d4a5a2d05b0",
      "parents": [
        "412d32e6c98527078779e5b515823b2810e40324"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Dec 01 16:23:42 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Dec 01 16:43:18 2012 -0800"
      },
      "message": "workqueue: mod_delayed_work_on() shouldn\u0027t queue timer on 0 delay\n\n8376fe22c7 (\"workqueue: implement mod_delayed_work[_on]()\")\nimplemented mod_delayed_work[_on]() using the improved\ntry_to_grab_pending().  The function is later used, among others, to\nreplace [__]candel_delayed_work() + queue_delayed_work() combinations.\n\nUnfortunately, a delayed_work item w/ zero @delay is handled slightly\ndifferently by mod_delayed_work_on() compared to\nqueue_delayed_work_on().  The latter skips timer altogether and\ndirectly queues it using queue_work_on() while the former schedules\ntimer which will expire on the closest tick.  This means, when @delay\nis zero, that [__]cancel_delayed_work() + queue_delayed_work_on()\nmakes the target item immediately executable while\nmod_delayed_work_on() may induce delay of upto a full tick.\n\nThis somewhat subtle difference breaks some of the converted users.\ne.g. block queue plugging uses delayed_work for deferred processing\nand uses mod_delayed_work_on() when the queue needs to be immediately\nunplugged.  The above problem manifested as noticeably higher number\nof context switches under certain circumstances.\n\nThe difference in behavior was caused by missing special case handling\nfor 0 delay in mod_delayed_work_on() compared to\nqueue_delayed_work_on().  Joonsoo Kim posted a patch to add it -\n(\"workqueue: optimize mod_delayed_work_on() when @delay \u003d\u003d 0\")[1].\nThe patch was queued for 3.8 but it was described as optimization and\nI missed that it was a correctness issue.\n\nAs both queue_delayed_work_on() and mod_delayed_work_on() use\n__queue_delayed_work() for queueing, it seems that the better approach\nis to move the 0 delay special handling to the function instead of\nduplicating it in mod_delayed_work_on().\n\nFix the problem by moving 0 delay special case handling from\nqueue_delayed_work_on() to __queue_delayed_work().  This replaces\nJoonsoo\u0027s patch.\n\n[1] http://thread.gmane.org/gmane.linux.kernel/1379011/focus\u003d1379012\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-tested-by: Anders Kaseorg \u003candersk@MIT.EDU\u003e\nReported-and-tested-by: Zlatko Calusic \u003czlatko.calusic@iskon.hr\u003e\nLKML-Reference: \u003calpine.DEB.2.00.1211280953350.26602@dr-wily.mit.edu\u003e\nLKML-Reference: \u003c50A78AA9.5040904@iskon.hr\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\n"
    },
    {
      "commit": "412d32e6c98527078779e5b515823b2810e40324",
      "tree": "0221e047afeb05d753d29821a457eef9dbe917d7",
      "parents": [
        "b3c3a9cf2a28ee4a8d0b62e2e58c61e9ca9bb47b"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Wed Nov 28 07:17:18 2012 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Dec 01 15:56:42 2012 -0800"
      },
      "message": "workqueue: exit rescuer_thread() as TASK_RUNNING\n\nA rescue thread exiting TASK_INTERRUPTIBLE can lead to a task scheduling\noff, never to be seen again.  In the case where this occurred, an exiting\nthread hit reiserfs homebrew conditional resched while holding a mutex,\nbringing the box to its knees.\n\nPID: 18105  TASK: ffff8807fd412180  CPU: 5   COMMAND: \"kdmflush\"\n #0 [ffff8808157e7670] schedule at ffffffff8143f489\n #1 [ffff8808157e77b8] reiserfs_get_block at ffffffffa038ab2d [reiserfs]\n #2 [ffff8808157e79a8] __block_write_begin at ffffffff8117fb14\n #3 [ffff8808157e7a98] reiserfs_write_begin at ffffffffa0388695 [reiserfs]\n #4 [ffff8808157e7ad8] generic_perform_write at ffffffff810ee9e2\n #5 [ffff8808157e7b58] generic_file_buffered_write at ffffffff810eeb41\n #6 [ffff8808157e7ba8] __generic_file_aio_write at ffffffff810f1a3a\n #7 [ffff8808157e7c58] generic_file_aio_write at ffffffff810f1c88\n #8 [ffff8808157e7cc8] do_sync_write at ffffffff8114f850\n #9 [ffff8808157e7dd8] do_acct_process at ffffffff810a268f\n    [exception RIP: kernel_thread_helper]\n    RIP: ffffffff8144a5c0  RSP: ffff8808157e7f58  RFLAGS: 00000202\n    RAX: 0000000000000000  RBX: 0000000000000000  RCX: 0000000000000000\n    RDX: 0000000000000000  RSI: ffffffff8107af60  RDI: ffff8803ee491d18\n    RBP: 0000000000000000   R8: 0000000000000000   R9: 0000000000000000\n    R10: 0000000000000000  R11: 0000000000000000  R12: 0000000000000000\n    R13: 0000000000000000  R14: 0000000000000000  R15: 0000000000000000\n    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018\n\nSigned-off-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "455e987c0c2eb2c9045dc854559474cf41509965",
      "tree": "ed1923005053eca6f9bd06625e4d278feb6e950c",
      "parents": [
        "7c17e486e865d616f0e37c7f7f0e4dcfab704cd8",
        "fd6da696f38b00ffeae1185d6f0ec5d4ab3b472d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 01 13:07:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 01 13:07:48 2012 -0800"
      },
      "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 \"This is mostly about unbreaking architectures that took the UAPI\n  changes in the v3.7 cycle, plus misc fixes.\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf kvm: Fix building perf kvm on non x86 arches\n  perf kvm: Rename perf_kvm to perf_kvm_stat\n  perf: Make perf build for x86 with UAPI disintegration applied\n  perf powerpc: Use uapi/unistd.h to fix build error\n  tools: Pass the target in descend\n  tools: Honour the O\u003d flag when tool build called from a higher Makefile\n  tools: Define a Makefile function to do subdir processing\n  x86: Export asm/{svm.h,vmx.h,perf_regs.h}\n  perf tools: Fix strbuf_addf() when the buffer needs to grow\n  perf header: Fix numa topology printing\n  perf, powerpc: Fix hw breakpoints returning -ENOSPC\n"
    },
    {
      "commit": "aa10990e028cac3d5e255711fb9fb47e00700e35",
      "tree": "dc39cb7cf8f193fb266bf3da618b77ea76a89c2d",
      "parents": [
        "8ffeb9b0e6369135bf03a073514f571ef10606b9"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhart@linux.intel.com",
        "time": "Mon Nov 26 16:29:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 26 17:41:24 2012 -0800"
      },
      "message": "futex: avoid wake_futex() for a PI futex_q\n\nDave Jones reported a bug with futex_lock_pi() that his trinity test\nexposed.  Sometime between queue_me() and taking the q.lock_ptr, the\nlock_ptr became NULL, resulting in a crash.\n\nWhile futex_wake() is careful to not call wake_futex() on futex_q\u0027s with\na pi_state or an rt_waiter (which are either waiting for a\nfutex_unlock_pi() or a PI futex_requeue()), futex_wake_op() and\nfutex_requeue() do not perform the same test.\n\nUpdate futex_wake_op() and futex_requeue() to test for q.pi_state and\nq.rt_waiter and abort with -EINVAL if detected.  To ensure any future\nbreakage is caught, add a WARN() to wake_futex() if the same condition\nis true.\n\nThis fix has seen 3 hours of testing with \"trinity -c futex\" on an\nx86_64 VM with 4 CPUS.\n\n[akpm@linux-foundation.org: tidy up the WARN()]\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nReported-by: Dave Jones \u003cdavej@redat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: John Kacur \u003cjkacur@redhat.com\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": "8ffeb9b0e6369135bf03a073514f571ef10606b9",
      "tree": "53376636381d6a01afae72ed8541266f60a7afae",
      "parents": [
        "4eff96dd5283a102e0c1cac95247090be74a38ed"
      ],
      "author": {
        "name": "Chuansheng Liu",
        "email": "chuansheng.liu@intel.com",
        "time": "Mon Nov 26 16:29:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 26 17:41:24 2012 -0800"
      },
      "message": "watchdog: using u64 in get_sample_period()\n\nIn get_sample_period(), unsigned long is not enough:\n\n  watchdog_thresh * 2 * (NSEC_PER_SEC / 5)\n\ncase1:\n  watchdog_thresh is 10 by default, the sample value will be: 0xEE6B2800\n\ncase2:\n set watchdog_thresh is 20, the sample value will be: 0x1 DCD6 5000\n\nIn case2, we need use u64 to express the sample period.  Otherwise,\nchanging the threshold thru proc often can not be successful.\n\nSigned-off-by: liu chuansheng \u003cchuansheng.liu@intel.com\u003e\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "0d855354ea351bec6b222e9fea86a876cfafdcb6",
      "tree": "a17fa24e9d5a30fec1c8d17896acd10b5d161d45",
      "parents": [
        "35fd3dc58da675d659513384221349ef90749a01"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Fri Oct 26 18:28:56 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Oct 30 10:07:58 2012 +0100"
      },
      "message": "perf, powerpc: Fix hw breakpoints returning -ENOSPC\n\nI\u0027ve been trying to get hardware breakpoints with perf to work\non POWER7 but I\u0027m getting the following:\n\n  % perf record -e mem:0x10000000 true\n\n    Error: sys_perf_event_open() syscall returned with 28 (No space left on device).  /bin/dmesg may provide additional information.\n\n    Fatal: No CONFIG_PERF_EVENTS\u003dy kernel support configured?\n\n  true: Terminated\n\n(FWIW adding -a and it works fine)\n\nDebugging it seems that __reserve_bp_slot() is returning ENOSPC\nbecause it thinks there are no free breakpoint slots on this\nCPU.\n\nI have a 2 CPUs, so perf userspace is doing two perf_event_open\nsyscalls to add a counter to each CPU [1].  The first syscall\nsucceeds but the second is failing.\n\nOn this second syscall, fetch_bp_busy_slots() sets slots.pinned\nto be 1, despite there being no breakpoint on this CPU.  This is\nbecause the call the task_bp_pinned, checks all CPUs, rather\nthan just the current CPU. POWER7 only has one hardware\nbreakpoint per CPU (ie. HBP_NUM\u003d1), so we return ENOSPC.\n\nThe following patch fixes this by checking the associated CPU\nfor each breakpoint in task_bp_pinned.  I\u0027m not familiar with\nthis code, so it\u0027s provided as a reference to the above issue.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nCc: K Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1351268936-2956-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\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"
    }
  ],
  "next": "0324b5a450f8a58304e93c5d886add24ca3527bc"
}
