)]}'
{
  "log": [
    {
      "commit": "715f1300802e6eaefa85f6cfc70ae99af3d5d497",
      "tree": "1348231ae08bcb722e860aebe2e46a0565a86fd7",
      "parents": [
        "57469821fd5c61f25f783827d7334063cff67d65"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:46 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:46 2012 -0700"
      },
      "message": "workqueue: fix zero @delay handling of queue_delayed_work_on()\n\nIf @delay is zero and the dealyed_work is idle, queue_delayed_work()\nqueues it for immediate execution; however, queue_delayed_work_on()\nlacks this logic and always goes through timer regardless of @delay.\n\nThis patch moves 0 @delay handling logic from queue_delayed_work() to\nqueue_delayed_work_on() so that both functions behave the same.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "57469821fd5c61f25f783827d7334063cff67d65",
      "tree": "e77ead09d823125bc4dc9a9cd49864f9340ad363",
      "parents": [
        "d8e794dfd51c368ed3f686b7f4172830b60ae47b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "message": "workqueue: unify local CPU queueing handling\n\nQueueing functions have been using different methods to determine the\nlocal CPU.\n\n* queue_work() superflously uses get/put_cpu() to acquire and hold the\n  local CPU across queue_work_on().\n\n* delayed_work_timer_fn() uses smp_processor_id().\n\n* queue_delayed_work() calls queue_delayed_work_on() with -1 @cpu\n  which is interpreted as the local CPU.\n\n* flush_delayed_work[_sync]() were using raw_smp_processor_id().\n\n* __queue_work() interprets %WORK_CPU_UNBOUND as local CPU if the\n  target workqueue is bound one but nobody uses this.\n\nThis patch converts all functions to uniformly use %WORK_CPU_UNBOUND\nto indicate local CPU and use the local binding feature of\n__queue_work().  unlikely() is dropped from %WORK_CPU_UNBOUND handling\nin __queue_work().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "d8e794dfd51c368ed3f686b7f4172830b60ae47b",
      "tree": "72e930ab0a14bf50fa1dc6802722483247b72806",
      "parents": [
        "8930caba3dbdd8b86dd6934a5920bf61b53a931e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "message": "workqueue: set delayed_work-\u003etimer function on initialization\n\ndelayed_work-\u003etimer.function is currently initialized during\nqueue_delayed_work_on().  Export delayed_work_timer_fn() and set\ndelayed_work timer function during delayed_work initialization\ntogether with other fields.\n\nThis ensures the timer function is always valid on an initialized\ndelayed_work.  This is to help mod_delayed_work() implementation.\n\nTo detect delayed_work users which diddle with the internal timer,\ntrigger WARN if timer function doesn\u0027t match on queue.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "8930caba3dbdd8b86dd6934a5920bf61b53a931e",
      "tree": "1ef91c823238ffe3e26af1d1d48678f299185058",
      "parents": [
        "959d1af8cffc8fd38ed53e8be1cf4ab8782f9c00"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "message": "workqueue: disable irq while manipulating PENDING\n\nQueueing operations use WORK_STRUCT_PENDING_BIT to synchronize access\nto the target work item.  They first try to claim the bit and proceed\nwith queueing only after that succeeds and there\u0027s a window between\nPENDING being set and the actual queueing where the task can be\ninterrupted or preempted.\n\nThere\u0027s also a similar window in process_one_work() when clearing\nPENDING.  A work item is dequeued, gcwq-\u003elock is released and then\nPENDING is cleared and the worker might get interrupted or preempted\nbetween releasing gcwq-\u003elock and clearing PENDING.\n\ncancel[_delayed]_work_sync() tries to claim or steal PENDING.  The\nfunction assumes that a work item with PENDING is either queued or in\nthe process of being [de]queued.  In the latter case, it busy-loops\nuntil either the work item loses PENDING or is queued.  If canceling\ncoincides with the above described interrupts or preemptions, the\ncanceling task will busy-loop while the queueing or executing task is\npreempted.\n\nThis patch keeps irq disabled across claiming PENDING and actual\nqueueing and moves PENDING clearing in process_one_work() inside\ngcwq-\u003elock so that busy looping from PENDING \u0026\u0026 !queued doesn\u0027t wait\nfor interrupted/preempted tasks.  Note that, in process_one_work(),\nsetting last CPU and clearing PENDING got merged into single\noperation.\n\nThis removes possible long busy-loops and will allow using\ntry_to_grab_pending() from bh and irq contexts.\n\nv2: __queue_work() was testing preempt_count() to ensure that the\n    caller has disabled preemption.  This triggers spuriously if\n    !CONFIG_PREEMPT_COUNT.  Use preemptible() instead.  Reported by\n    Fengguang Wu.\n\nv3: Disable irq instead of preemption.  IRQ will be disabled while\n    grabbing gcwq-\u003elock later anyway and this allows using\n    try_to_grab_pending() from bh and irq contexts.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "959d1af8cffc8fd38ed53e8be1cf4ab8782f9c00",
      "tree": "04ca9a7c88fe42f21fa4a6a209a2c16236615f45",
      "parents": [
        "d4283e9378619c14dc3826a6b0527eb5d967ffde"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:45 2012 -0700"
      },
      "message": "workqueue: add missing smp_wmb() in process_one_work()\n\nWORK_STRUCT_PENDING is used to claim ownership of a work item and\nprocess_one_work() releases it before starting execution.  When\nsomeone else grabs PENDING, all pre-release updates to the work item\nshould be visible and all updates made by the new owner should happen\nafterwards.\n\nGrabbing PENDING uses test_and_set_bit() and thus has a full barrier;\nhowever, clearing doesn\u0027t have a matching wmb.  Given the preceding\nspin_unlock and use of clear_bit, I don\u0027t believe this can be a\nproblem on an actual machine and there hasn\u0027t been any related report\nbut it still is theretically possible for clear_pending to permeate\nupwards and happen before work-\u003eentry update.\n\nAdd an explicit smp_wmb() before work_clear_pending().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "d4283e9378619c14dc3826a6b0527eb5d967ffde",
      "tree": "1b1e401e51021c90407fae58e000c183a0e6c0e2",
      "parents": [
        "0a13c00e9d4502b8e3fd9260ce781758ff2c3970"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:44 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:44 2012 -0700"
      },
      "message": "workqueue: make queueing functions return bool\n\nAll queueing functions return 1 on success, 0 if the work item was\nalready pending.  Update them to return bool instead.  This signifies\nbetter that they don\u0027t return 0 / -errno.\n\nThis is cleanup and doesn\u0027t cause any functional difference.\n\nWhile at it, fix comment opening for schedule_work_on().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0a13c00e9d4502b8e3fd9260ce781758ff2c3970",
      "tree": "4233ef42fad89b4c42e00d8fed76112ce28390ba",
      "parents": [
        "0d7614f09c1ebdbaa1599a5aba7593f147bf96ee"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:44 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 03 10:30:44 2012 -0700"
      },
      "message": "workqueue: reorder queueing functions so that _on() variants are on top\n\nCurrently, queue/schedule[_delayed]_work_on() are located below the\ncounterpart without the _on postifx even though the latter is usually\nimplemented using the former.  Swap them.\n\nThis is cleanup and doesn\u0027t cause any functional difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a0e881b7c189fa2bd76c024dbff91e79511c971d",
      "tree": "0c801918565b08921d21aceee5b326f64d998f5f",
      "parents": [
        "eff0d13f3823f35d70228cd151d2a2c89288ff32",
        "dbc6e0222d79e78925fe20733844a796a4b72cf9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second vfs pile from Al Viro:\n \"The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the\n  deadlock reproduced by xfstests 068), symlink and hardlink restriction\n  patches, plus assorted cleanups and fixes.\n\n  Note that another fsfreeze deadlock (emergency thaw one) is *not*\n  dealt with - the series by Fernando conflicts a lot with Jan\u0027s, breaks\n  userland ABI (FIFREEZE semantics gets changed) and trades the deadlock\n  for massive vfsmount leak; this is going to be handled next cycle.\n  There probably will be another pull request, but that stuff won\u0027t be\n  in it.\"\n\nFix up trivial conflicts due to unrelated changes next to each other in\ndrivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)\n  delousing target_core_file a bit\n  Documentation: Correct s_umount state for freeze_fs/unfreeze_fs\n  fs: Remove old freezing mechanism\n  ext2: Implement freezing\n  btrfs: Convert to new freezing mechanism\n  nilfs2: Convert to new freezing mechanism\n  ntfs: Convert to new freezing mechanism\n  fuse: Convert to new freezing mechanism\n  gfs2: Convert to new freezing mechanism\n  ocfs2: Convert to new freezing mechanism\n  xfs: Convert to new freezing code\n  ext4: Convert to new freezing mechanism\n  fs: Protect write paths by sb_start_write - sb_end_write\n  fs: Skip atime update on frozen filesystem\n  fs: Add freezing handling to mnt_want_write() / mnt_drop_write()\n  fs: Improve filesystem freezing handling\n  switch the protection of percpu_counter list to spinlock\n  nfsd: Push mnt_want_write() outside of i_mutex\n  btrfs: Push mnt_want_write() outside of i_mutex\n  fat: Push mnt_want_write() outside of i_mutex\n  ...\n"
    },
    {
      "commit": "2d534926205db9ffce4bbbde67cb9b2cee4b835c",
      "tree": "b906e41009b54d9a286df3454a841fd2b3f170cc",
      "parents": [
        "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
        "f5a1ad057e6da5d0fc9c5677ff44797d193d3e62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 20:44:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 20:44:03 2012 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull irqdomain changes from Grant Likely:\n \"Round of refactoring and enhancements to irq_domain infrastructure.\n  This series starts the process of simplifying irqdomain.  The ultimate\n  goal is to merge LEGACY, LINEAR and TREE mappings into a single\n  system, but had to back off from that after some last minute bugs.\n  Instead it mainly reorganizes the code and ensures that the reverse\n  map gets populated when the irq is mapped instead of the first time it\n  is looked up.\n\n  Merging of the irq_domain types is deferred to v3.7\n\n  In other news, this series adds helpers for creating static mappings\n  on a linear or tree mapping.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  irqdomain: Improve diagnostics when a domain mapping fails\n  irqdomain: eliminate slow-path revmap lookups\n  irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.\n  irqdomain: Eliminate dedicated radix lookup functions\n  irqdomain: Support for static IRQ mapping and association.\n  irqdomain: Always update revmap when setting up a virq\n  irqdomain: Split disassociating code into separate function\n  irq_domain: correct a minor wrong comment for linear revmap\n  irq_domain: Standardise legacy/linear domain selection\n  irqdomain: Make ops-\u003emap hook optional\n  irqdomain: Remove unnecessary test for IRQ_DOMAIN_MAP_LEGACY\n  irqdomain: Simple NUMA awareness.\n  devicetree: add helper inline for retrieving a node\u0027s full name\n"
    },
    {
      "commit": "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
      "tree": "e37328cfbeaf43716dd5914cad9179e57e84df76",
      "parents": [
        "a40a1d3d0a2fd613fdec6d89d3c053268ced76ed",
        "437ea90cc3afdca5229b41c6b1d38c4842756cb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s second set of patches:\n - MM\n - a few random fixes\n - a couple of RTC leftovers\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (120 commits)\n  rtc/rtc-88pm80x: remove unneed devm_kfree\n  rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails\n  mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables\n  tmpfs: distribute interleave better across nodes\n  mm: remove redundant initialization\n  mm: warn if pg_data_t isn\u0027t initialized with zero\n  mips: zero out pg_data_t when it\u0027s allocated\n  memcg: gix memory accounting scalability in shrink_page_list\n  mm/sparse: remove index_init_lock\n  mm/sparse: more checks on mem_section number\n  mm/sparse: optimize sparse_index_alloc\n  memcg: add mem_cgroup_from_css() helper\n  memcg: further prevent OOM with too many dirty pages\n  memcg: prevent OOM with too many dirty pages\n  mm: mmu_notifier: fix freed page still mapped in secondary MMU\n  mm: memcg: only check anon swapin page charges for swap cache\n  mm: memcg: only check swap cache pages for repeated charging\n  mm: memcg: split swapin charge function into private and public part\n  mm: memcg: remove needless !mm fixup to init_mm when charging\n  mm: memcg: remove unneeded shmem charge type\n  ...\n"
    },
    {
      "commit": "3e9a97082fa639394e905e1fc4a0a7f719ca7644",
      "tree": "9985cfa26e0597128eae03a2ee7e4614efea571f",
      "parents": [
        "941c8726e4e737e74d418ccec3d8e7b946a65541",
        "d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "message": "Merge tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random\n\nPull random subsystem patches from Ted Ts\u0027o:\n \"This patch series contains a major revamp of how we collect entropy\n  from interrupts for /dev/random and /dev/urandom.\n\n  The goal is to addresses weaknesses discussed in the paper \"Mining\n  your Ps and Qs: Detection of Widespread Weak Keys in Network Devices\",\n  by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J.  Alex Halderman,\n  which will be published in the Proceedings of the 21st Usenix Security\n  Symposium, August 2012.  (See https://factorable.net for more\n  information and an extended version of the paper.)\"\n\nFix up trivial conflicts due to nearby changes in\ndrivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}\n\n* tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)\n  random: mix in architectural randomness in extract_buf()\n  dmi: Feed DMI table to /dev/random driver\n  random: Add comment to random_initialize()\n  random: final removal of IRQF_SAMPLE_RANDOM\n  um: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out\n  uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  ...\n"
    },
    {
      "commit": "907aed48f65efeecf91575397e3d79335d93a466",
      "tree": "8e06d29e71888f65a7217880c55472125d1b88d4",
      "parents": [
        "b37f1dd0f543d9714f96c2f9b9f74f7bdfdfdf31"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:45 2012 -0700"
      },
      "message": "mm: allow PF_MEMALLOC from softirq context\n\nThis is needed to allow network softirq packet processing to make use of\nPF_MEMALLOC.\n\nCurrently softirq context cannot use PF_MEMALLOC due to it not being\nassociated with a task, and therefore not having task flags to fiddle with\n- thus the gfp to alloc flag mapping ignores the task flags when in\ninterrupts (hard or soft) context.\n\nAllowing softirqs to make use of PF_MEMALLOC therefore requires some\ntrickery.  This patch borrows the task flags from whatever process happens\nto be preempted by the softirq.  It then modifies the gfp to alloc flags\nmapping to not exclude task flags in softirq context, and modify the\nsoftirq code to save, clear and restore the PF_MEMALLOC flag.\n\nThe save and clear, ensures the preempted task\u0027s PF_MEMALLOC flag doesn\u0027t\nleak into the softirq.  The restore ensures a softirq\u0027s PF_MEMALLOC flag\ncannot leak back into the preempted process.  This should be safe due to\nthe following reasons\n\nSoftirqs can run on multiple CPUs sure but the same task should not be\n\texecuting the same softirq code. Neither should the softirq\n\thandler be preempted by any other softirq handler so the flags\n\tshould not leak to an unrelated softirq.\n\nSoftirqs re-enable hardware interrupts in __do_softirq() so can be\n\tpreempted by hardware interrupts so PF_MEMALLOC is inherited\n\tby the hard IRQ. However, this is similar to a process in\n\treclaim being preempted by a hardirq. While PF_MEMALLOC is\n\tset, gfp_to_alloc_flags() distinguishes between hard and\n\tsoft irqs and avoids giving a hardirq the ALLOC_NO_WATERMARKS\n\tflag.\n\nIf the softirq is deferred to ksoftirq then its flags may be used\n        instead of a normal tasks but as the softirq cannot be preempted,\n        the PF_MEMALLOC flag does not leak to other code by accident.\n\n[davem@davemloft.net: Document why PF_MEMALLOC is safe]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9adb62a5df9c0fbef7b4665919329f73a34651ed",
      "tree": "8372c9c1202adac889714ea99319346279107f33",
      "parents": [
        "da92c47d069890106484cb6605df701a54d24499"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "jiang.liu@huawei.com",
        "time": "Tue Jul 31 16:43:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm/hotplug: correctly setup fallback zonelists when creating new pgdat\n\nWhen hotadd_new_pgdat() is called to create new pgdat for a new node, a\nfallback zonelist should be created for the new node.  There\u0027s code to try\nto achieve that in hotadd_new_pgdat() as below:\n\n\t/*\n\t * The node we allocated has no zone fallback lists. For avoiding\n\t * to access not-initialized zonelist, build here.\n\t */\n\tmutex_lock(\u0026zonelists_mutex);\n\tbuild_all_zonelists(pgdat, NULL);\n\tmutex_unlock(\u0026zonelists_mutex);\n\nBut it doesn\u0027t work as expected.  When hotadd_new_pgdat() is called, the\nnew node is still in offline state because node_set_online(nid) hasn\u0027t\nbeen called yet.  And build_all_zonelists() only builds zonelists for\nonline nodes as:\n\n        for_each_online_node(nid) {\n                pg_data_t *pgdat \u003d NODE_DATA(nid);\n\n                build_zonelists(pgdat);\n                build_zonelist_cache(pgdat);\n        }\n\nThough we hope to create zonelist for the new pgdat, but it doesn\u0027t.  So\nadd a new parameter \"pgdat\" the build_all_zonelists() to build pgdat for\nthe new pgdat too.\n\nSigned-off-by: Jiang Liu \u003cliuj97@gmail.com\u003e\nSigned-off-by: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Keping Chen \u003cchenkeping@huawei.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8",
      "tree": "b143b1914eeb6f27f53e30f9f0275d0f1ca5480b",
      "parents": [
        "80934513b230bfcf70265f2ef0fdae89fb391633"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 31 16:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "memcg: rename config variables\n\nSanity:\n\nCONFIG_CGROUP_MEM_RES_CTLR -\u003e CONFIG_MEMCG\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP -\u003e CONFIG_MEMCG_SWAP\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -\u003e CONFIG_MEMCG_SWAP_ENABLED\nCONFIG_CGROUP_MEM_RES_CTLR_KMEM -\u003e CONFIG_MEMCG_KMEM\n\n[mhocko@suse.cz: fix missed bits]\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: 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": "3965c9ae47d64aadf6f13b6fcd37767b83c0689a",
      "tree": "9896fbd841edbaa8e374b593ad0f7b96191cda5d",
      "parents": [
        "deaf386ee58d5336bbef8959bf304573afb67c20"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwp@linux.vnet.ibm.com",
        "time": "Tue Jul 31 16:41:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:40 2012 -0700"
      },
      "message": "mm: prepare for removal of obsolete /proc/sys/vm/nr_pdflush_threads\n\nSince per-BDI flusher threads were introduced in 2.6, the pdflush\nmechanism is not used any more.  But the old interface exported through\n/proc/sys/vm/nr_pdflush_threads still exists and is obviously useless.\n\nFor back-compatibility, printk warning information and return 2 to notify\nthe users that the interface is removed.\n\nSigned-off-by: Wanpeng Li \u003cliwp@linux.vnet.ibm.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44de9d0cad41f2c51ef26916842be046b582dcc9",
      "tree": "a9ce576f28e5038e9e3ae2e360cadf176dc74898",
      "parents": [
        "df858fa8276f85106f2f5c3cd49c1fa524058070"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Tue Jul 31 16:41:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:39 2012 -0700"
      },
      "message": "mm: account the total_vm in the vm_stat_account()\n\nvm_stat_account() accounts the shared_vm, stack_vm and reserved_vm now.\nBut we can also account for total_vm in the vm_stat_account() which makes\nthe code tidy.\n\nEven for mprotect_fixup(), we can get the right result in the end.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bca1a5c0eabe0f17081760c61e8d08e73dd6b6a6",
      "tree": "f939c6f42bf459786eb0050578044fdde56fec90",
      "parents": [
        "ec7a19bfec544aa73e347369232f9bd654954aa3",
        "194f8dcbe9629d8e9346cf96345a9c0bbf0e67ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 15:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 15:34:13 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf updates from Ingo Molnar:\n \"The biggest changes are Intel Nehalem-EX PMU uncore support, uprobes\n  updates/cleanups/fixes from Oleg and diverse tooling updates (mostly\n  fixes) now that Arnaldo is back from vacation.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  uprobes: __replace_page() needs munlock_vma_page()\n  uprobes: Rename vma_address() and make it return \"unsigned long\"\n  uprobes: Fix register_for_each_vma()-\u003evma_address() check\n  uprobes: Introduce vaddr_to_offset(vma, vaddr)\n  uprobes: Teach build_probe_list() to consider the range\n  uprobes: Remove insert_vm_struct()-\u003euprobe_mmap()\n  uprobes: Remove copy_vma()-\u003euprobe_mmap()\n  uprobes: Fix overflow in vma_address()/find_active_uprobe()\n  uprobes: Suppress uprobe_munmap() from mmput()\n  uprobes: Uprobe_mmap/munmap needs list_for_each_entry_safe()\n  uprobes: Clean up and document write_opcode()-\u003elock_page(old_page)\n  uprobes: Kill write_opcode()-\u003elock_page(new_page)\n  uprobes: __replace_page() should not use page_address_in_vma()\n  uprobes: Don\u0027t recheck vma/f_mapping in write_opcode()\n  perf/x86: Fix missing struct before structure name\n  perf/x86: Fix format definition of SNB-EP uncore QPI box\n  perf/x86: Make bitfield unsigned\n  perf/x86: Fix LLC-* and node-* events on Intel SandyBridge\n  perf/x86: Add Intel Nehalem-EX uncore support\n  perf/x86: Fix typo in format definition of uncore PCU filter\n  ...\n"
    },
    {
      "commit": "65fed8f6f23070b56d0ed3841173ddd410130a89",
      "tree": "d9549d5cc05f74789bd34a400ce3275c9c224c01",
      "parents": [
        "f7e1becb078c2b996420a61f2a411ef19335e2da"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "octavian.purdila@intel.com",
        "time": "Mon Jul 30 14:42:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "resource: make sure requested range is included in the root range\n\nWhen the requested range is outside of the root range the logic in\n__reserve_region_with_split will cause an infinite recursion which will\noverflow the stack as seen in the warning bellow.\n\nThis particular stack overflow was caused by requesting the\n(100000000-107ffffff) range while the root range was (0-ffffffff).  In\nthis case __request_resource would return the whole root range as\nconflict range (i.e.  0-ffffffff).  Then, the logic in\n__reserve_region_with_split would continue the recursion requesting the\nnew range as (conflict-\u003eend+1, end) which incidentally in this case\nequals the originally requested range.\n\nThis patch aborts looking for an usable range when the request does not\nintersect with the root range.  When the request partially overlaps with\nthe root range, it ajust the request to fall in the root range and then\ncontinues with the new request.\n\nWhen the request is modified or aborted errors and a stack trace are\nlogged to allow catching the errors in the upper layers.\n\n[    5.968374] WARNING: at kernel/sched.c:4129 sub_preempt_count+0x63/0x89()\n[    5.975150] Modules linked in:\n[    5.978184] Pid: 1, comm: swapper Not tainted 3.0.22-mid27-00004-gb72c817 #46\n[    5.985324] Call Trace:\n[    5.987759]  [\u003cc1039dfc\u003e] ? console_unlock+0x17b/0x18d\n[    5.992891]  [\u003cc1039620\u003e] warn_slowpath_common+0x48/0x5d\n[    5.998194]  [\u003cc1031758\u003e] ? sub_preempt_count+0x63/0x89\n[    6.003412]  [\u003cc1039644\u003e] warn_slowpath_null+0xf/0x13\n[    6.008453]  [\u003cc1031758\u003e] sub_preempt_count+0x63/0x89\n[    6.013499]  [\u003cc14d60c4\u003e] _raw_spin_unlock+0x27/0x3f\n[    6.018453]  [\u003cc10c6349\u003e] add_partial+0x36/0x3b\n[    6.022973]  [\u003cc10c7c0a\u003e] deactivate_slab+0x96/0xb4\n[    6.027842]  [\u003cc14cf9d9\u003e] __slab_alloc.isra.54.constprop.63+0x204/0x241\n[    6.034456]  [\u003cc103f78f\u003e] ? kzalloc.constprop.5+0x29/0x38\n[    6.039842]  [\u003cc103f78f\u003e] ? kzalloc.constprop.5+0x29/0x38\n[    6.045232]  [\u003cc10c7dc9\u003e] kmem_cache_alloc_trace+0x51/0xb0\n[    6.050710]  [\u003cc103f78f\u003e] ? kzalloc.constprop.5+0x29/0x38\n[    6.056100]  [\u003cc103f78f\u003e] kzalloc.constprop.5+0x29/0x38\n[    6.061320]  [\u003cc17b45e9\u003e] __reserve_region_with_split+0x1c/0xd1\n[    6.067230]  [\u003cc17b4693\u003e] __reserve_region_with_split+0xc6/0xd1\n...\n[    7.179057]  [\u003cc17b4693\u003e] __reserve_region_with_split+0xc6/0xd1\n[    7.184970]  [\u003cc17b4779\u003e] reserve_region_with_split+0x30/0x42\n[    7.190709]  [\u003cc17a8ebf\u003e] e820_reserve_resources_late+0xd1/0xe9\n[    7.196623]  [\u003cc17c9526\u003e] pcibios_resource_survey+0x23/0x2a\n[    7.202184]  [\u003cc17cad8a\u003e] pcibios_init+0x23/0x35\n[    7.206789]  [\u003cc17ca574\u003e] pci_subsys_init+0x3f/0x44\n[    7.211659]  [\u003cc1002088\u003e] do_one_initcall+0x72/0x122\n[    7.216615]  [\u003cc17ca535\u003e] ? pci_legacy_init+0x3d/0x3d\n[    7.221659]  [\u003cc17a27ff\u003e] kernel_init+0xa6/0x118\n[    7.226265]  [\u003cc17a2759\u003e] ? start_kernel+0x334/0x334\n[    7.231223]  [\u003cc14d7482\u003e] kernel_thread_helper+0x6/0x10\n\nSigned-off-by: Octavian Purdila \u003coctavian.purdila@intel.com\u003e\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25353b3377d5a75d4b830477bb90a3691155de72",
      "tree": "fc1227929cb2cf7c5356e19c5adbb238bcfb14bb",
      "parents": [
        "fd4b616b0fbb77e3f349e7d60914f2b7c7e39f9c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Mon Jul 30 14:42:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "taskstats: check nla_reserve() return\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d44621\n\nReported-by: \u003crucsoftsec@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd4b616b0fbb77e3f349e7d60914f2b7c7e39f9c",
      "tree": "a0cc595c7680bd08467fb803738d534cfa8f150e",
      "parents": [
        "c1d7e01d7877a397655277a920aeaa3830ed9461"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jul 30 14:42:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "sysctl: suppress kmemleak messages\n\nregister_sysctl_table() is a strange function, as it makes internal\nallocations (a header) to register a sysctl_table.  This header is a\nhandle to the table that is created, and can be used to unregister the\ntable.  But if the table is permanent and never unregistered, the header\nacts the same as a static variable.\n\nUnfortunately, this allocation of memory that is never expected to be\nfreed fools kmemleak in thinking that we have leaked memory.  For those\nsysctl tables that are never unregistered, and have no pointer referencing\nthem, kmemleak will think that these are memory leaks:\n\nunreferenced object 0xffff880079fb9d40 (size 192):\n  comm \"swapper/0\", pid 0, jiffies 4294667316 (age 12614.152s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff8146b590\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff8110a935\u003e] kmemleak_alloc_recursive.constprop.42+0x16/0x18\n    [\u003cffffffff8110b852\u003e] __kmalloc+0x107/0x153\n    [\u003cffffffff8116fa72\u003e] kzalloc.constprop.8+0xe/0x10\n    [\u003cffffffff811703c9\u003e] __register_sysctl_paths+0xe1/0x160\n    [\u003cffffffff81170463\u003e] register_sysctl_paths+0x1b/0x1d\n    [\u003cffffffff8117047d\u003e] register_sysctl_table+0x18/0x1a\n    [\u003cffffffff81afb0a1\u003e] sysctl_init+0x10/0x14\n    [\u003cffffffff81b05a6f\u003e] proc_sys_init+0x2f/0x31\n    [\u003cffffffff81b0584c\u003e] proc_root_init+0xa5/0xa7\n    [\u003cffffffff81ae5b7e\u003e] start_kernel+0x3d0/0x40a\n    [\u003cffffffff81ae52a7\u003e] x86_64_start_reservations+0xae/0xb2\n    [\u003cffffffff81ae53ad\u003e] x86_64_start_kernel+0x102/0x111\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nThe sysctl_base_table used by sysctl itself is one such instance that\nregisters the table to never be unregistered.\n\nUse kmemleak_not_leak() to suppress the kmemleak false positive.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63dca8d5b5ef7effb58b8d6892a024125c0fab0b",
      "tree": "057bc9465bada7c101114c3aaee24f3b50dfd4db",
      "parents": [
        "f19b9f74b7ea3b21ddcee55d852a6488239608a4"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Mon Jul 30 14:42:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "kdump: append newline to the last lien of vmcoreinfo note\n\nThe last line of vmcoreinfo note does not end with \\n.  Parsing all the\nlines in note becomes easier if all lines end with \\n instead of trying to\nspecial case the last line.\n\nI know at least one tool, vmcore-dmesg in kexec-tools tree which made the\nassumption that all lines end with \\n.  I think it is a good idea to fix\nit.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Atsushi Kumagai \u003ckumagai-atsushi@mxc.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f19b9f74b7ea3b21ddcee55d852a6488239608a4",
      "tree": "d57515cb110bc8b30043e1ab67c962ab78898e2f",
      "parents": [
        "87bec58a52652e2eb2a575692a40f9466c7bd31b"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:42:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "fork: fix error handling in dup_task()\n\nThe function dup_task() may fail at the following function calls in the\nfollowing order.\n\n0) alloc_task_struct_node()\n1) alloc_thread_info_node()\n2) arch_dup_task_struct()\n\nError by 0) is not a matter, it can just return.  But error by 1) requires\nreleasing task_struct allocated by 0) before it returns.  Likewise, error\nby 2) requires releasing task_struct and thread_info allocated by 0) and\n1).\n\nThe existing error handling calls free_task_struct() and\nfree_thread_info() which do not only release task_struct and thread_info,\nbut also call architecture specific arch_release_task_struct() and\narch_release_thread_info().\n\nThe problem is that task_struct and thread_info are not fully initialized\nyet at this point, but arch_release_task_struct() and\narch_release_thread_info() are called with them.\n\nFor example, x86 defines its own arch_release_task_struct() that releases\na task_xstate.  If alloc_thread_info_node() fails in dup_task(),\narch_release_task_struct() is called with task_struct which is just\nallocated and filled with garbage in this error handling.\n\nThis actually happened with tools/testing/fault-injection/failcmd.sh\n\n\t# env FAILCMD_TYPE\u003dfail_page_alloc \\\n\t\t./tools/testing/fault-injection/failcmd.sh --times\u003d100 \\\n\t\t--min-order\u003d0 --ignore-gfp-wait\u003d0 \\\n\t\t-- make -C tools/testing/selftests/ run_tests\n\nIn order to fix this issue, make free_{task_struct,thread_info}() not to\ncall arch_release_{task_struct,thread_info}() and call\narch_release_{task_struct,thread_info}() implicitly where needed.\n\nDefault arch_release_task_struct() and arch_release_thread_info() are\ndefined as empty by default.  So this change only affects the\narchitectures which implement their own arch_release_task_struct() or\narch_release_thread_info() as listed below.\n\narch_release_task_struct(): x86, sh\narch_release_thread_info(): mn10300, tile\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87bec58a52652e2eb2a575692a40f9466c7bd31b",
      "tree": "bd7d6408b61ee2c1ad6df9f0b44277fb08e75034",
      "parents": [
        "b2412b7fa7a3816fa8633dc2ff19f1a90aabe423"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 30 14:42:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "revert \"sched: Fix fork() error path to not crash\"\n\nTo make way for \"fork: fix error handling in dup_task()\", which fixes the\nerrors more completely.\n\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2412b7fa7a3816fa8633dc2ff19f1a90aabe423",
      "tree": "5059c916b993726b3b208859f35c8b59761f2656",
      "parents": [
        "bc452b4b65bd589083a7a7ba4f14f85dfc8454fa"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon Jul 30 14:42:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "fork: use vma_pages() to simplify the code\n\nThe current code can be replaced by vma_pages().  So use it to simplify\nthe code.\n\n[akpm@linux-foundation.org: initialise `len\u0027 at its definition site]\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f20784d4ba3f88ca33b703b23372d8ccf6dbd42",
      "tree": "3cb33ac4afdf3679e12520f579e2e1a607f33670",
      "parents": [
        "79c743dd1e8de61c31f484c0a1b48930543044b3"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Mon Jul 30 14:42:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "kmod: avoid deadlock from recursive kmod call\n\nThe system deadlocks (at least since 2.6.10) when\ncall_usermodehelper(UMH_WAIT_EXEC) request triggers\ncall_usermodehelper(UMH_WAIT_PROC) request.\n\nThis is because \"khelper thread is waiting for the worker thread at\nwait_for_completion() in do_fork() since the worker thread was created\nwith CLONE_VFORK flag\" and \"the worker thread cannot call complete()\nbecause do_execve() is blocked at UMH_WAIT_PROC request\" and \"the khelper\nthread cannot start processing UMH_WAIT_PROC request because the khelper\nthread is waiting for the worker thread at wait_for_completion() in\ndo_fork()\".\n\nThe easiest example to observe this deadlock is to use a corrupted\n/sbin/hotplug binary (like shown below).\n\n  # : \u003e /tmp/dummy\n  # chmod 755 /tmp/dummy\n  # echo /tmp/dummy \u003e /proc/sys/kernel/hotplug\n  # modprobe whatever\n\ncall_usermodehelper(\"/tmp/dummy\", UMH_WAIT_EXEC) is called from\nkobject_uevent_env() in lib/kobject_uevent.c upon loading/unloading a\nmodule.  do_execve(\"/tmp/dummy\") triggers a call to\nrequest_module(\"binfmt-0000\") from search_binary_handler() which in turn\ncalls call_usermodehelper(UMH_WAIT_PROC).\n\nIn order to avoid deadlock, as a for-now and easy-to-backport solution, do\nnot try to call wait_for_completion() in call_usermodehelper_exec() if the\nworker thread was created by khelper thread with CLONE_VFORK flag.  Future\nand fundamental solution might be replacing singleton khelper thread with\nsome workqueue so that recursive calls up to max_active dependency loop\ncan be handled without deadlock.\n\n[akpm@linux-foundation.org: add comment to kmod_thread_locker]\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@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": "79c743dd1e8de61c31f484c0a1b48930543044b3",
      "tree": "ba52350fdd587f56182e9d92f94c37f0519c79a2",
      "parents": [
        "deb8274a0cf44827ec260330cc1d94d0f3dcfb94"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 30 14:42:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "kernel/kmod.c: document call_usermodehelper_fns() a bit\n\nThis function\u0027s interface is, uh, subtle.  Attempt to apologise for it.\n\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "088a52aac810655c1db1e40331e4936946701e9c",
      "tree": "51ad8938a70c0bd3a08c74379dbec3107037d602",
      "parents": [
        "04d2c8c83d0e3ac5f78aeede51babb3236200112"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jul 30 14:40:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:14 2012 -0700"
      },
      "message": "printk: only look for prefix levels in kernel messages\n\nvprintk_emit() prefix parsing should only be done for internal kernel\nmessages.  This allows existing behavior to be kept in all cases.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Kay Sievers \u003ckay@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acc8fa41ad31c576cdbc569cc3e0e443b1b98b44",
      "tree": "74b4072203646bd7432249e57f5a1505fa346b5e",
      "parents": [
        "cdf53441368cc02ee4aa8a8343a5dc25132836f0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jul 30 14:40:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:13 2012 -0700"
      },
      "message": "printk: add generic functions to find KERN_\u003cLEVEL\u003e headers\n\nThe current form of a KERN_\u003cLEVEL\u003e is \"\u003c.\u003e\".\n\nAdd printk_get_level and printk_skip_level functions to handle these\nformats.\n\nThese functions centralize tests of KERN_\u003cLEVEL\u003e so a future modification\ncan change the KERN_\u003cLEVEL\u003e style and shorten the number of bytes consumed\nby these headers.\n\n[akpm@linux-foundation.org: fix build error and warning]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Wu Fengguang \u003cwfg@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdf53441368cc02ee4aa8a8343a5dc25132836f0",
      "tree": "3867dc7e3a4477f7d2ed9ed5990b6d71f075c0d2",
      "parents": [
        "5353cf089bb32b69a7515be909c14bf05fe2e81e"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay@vrfy.org",
        "time": "Mon Jul 30 14:40:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:13 2012 -0700"
      },
      "message": "kmsg: /dev/kmsg - properly return possible copy_from_user() failure\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Kay Sievers \u003ckay@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b57b44ae698944ffc6161352b8ff5c9cf9c592e2",
      "tree": "15d8d4c9681c2cba7c882f29b1b4f88378928095",
      "parents": [
        "45226e944ce071d0231949f2fea90969437cd2dc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 30 14:40:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:13 2012 -0700"
      },
      "message": "kernel/sys.c: avoid argv_free(NULL)\n\nIf argv_split() failed, the code will end up calling argv_free(NULL).  Fix\nit up and clean things up a bit.\n\nAddresses Coverity report 703573.\n\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@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": "45226e944ce071d0231949f2fea90969437cd2dc",
      "tree": "6f323df1f61d028f77175525ae54948820cd09a1",
      "parents": [
        "190320c3b6640d4104650f55ff69611e050ea06b"
      ],
      "author": {
        "name": "Sameer Nanda",
        "email": "snanda@chromium.org",
        "time": "Mon Jul 30 14:40:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:13 2012 -0700"
      },
      "message": "NMI watchdog: fix for lockup detector breakage on resume\n\nOn the suspend/resume path the boot CPU does not go though an\noffline-\u003eonline transition.  This breaks the NMI detector post-resume\nsince it depends on PMU state that is lost when the system gets\nsuspended.\n\nFix this by forcing a CPU offline-\u003eonline transition for the lockup\ndetector on the boot CPU during resume.\n\nTo provide more context, we enable NMI watchdog on Chrome OS.  We have\nseen several reports of systems freezing up completely which indicated\nthat the NMI watchdog was not firing for some reason.\n\nDebugging further, we found a simple way of repro\u0027ing system freezes --\nissuing the command \u0027tasket 1 sh -c \"echo nmilockup \u003e /proc/breakme\"\u0027\nafter the system has been suspended/resumed one or more times.\n\nWith this patch in place, the system freeze result in panics, as\nexpected.\n\nThese panics provide a nice stack trace for us to debug the actual issue\ncausing the freeze.\n\n[akpm@linux-foundation.org: fiddle with code comment]\n[akpm@linux-foundation.org: make lockup_detector_bootcpu_resume() conditional on CONFIG_SUSPEND]\n[akpm@linux-foundation.org: fix section errors]\nSigned-off-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Anshuman Khandual \u003ckhandual@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "190320c3b6640d4104650f55ff69611e050ea06b",
      "tree": "94d43c11e025e4b4efc577a2cf88a29250d4f510",
      "parents": [
        "6c55845e71ba7a862395f504a240a5b62632e0d6"
      ],
      "author": {
        "name": "Vikram Mulukutla",
        "email": "markivx@codeaurora.org",
        "time": "Mon Jul 30 14:39:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:13 2012 -0700"
      },
      "message": "panic: fix a possible deadlock in panic()\n\npanic_lock is meant to ensure that panic processing takes place only on\none cpu; if any of the other cpus encounter a panic, they will spin\nwaiting to be shut down.\n\nHowever, this causes a regression in this scenario:\n\n1. Cpu 0 encounters a panic and acquires the panic_lock\n   and proceeds with the panic processing.\n2. There is an interrupt on cpu 0 that also encounters\n   an error condition and invokes panic.\n3. This second invocation fails to acquire the panic_lock\n   and enters the infinite while loop in panic_smp_self_stop.\n\nThus all panic processing is stopped, and the cpu is stuck for eternity\nin the while(1) inside panic_smp_self_stop.\n\nTo address this, disable local interrupts with local_irq_disable before\nacquiring the panic_lock.  This will prevent interrupt handlers from\nexecuting during the panic processing, thus avoiding this particular\nproblem.\n\nSigned-off-by: Vikram Mulukutla \u003cmarkivx@codeaurora.org\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54b501992dd2a839e94e76aa392c392b55080ce8",
      "tree": "6d174fb95516f01e385d31d5ef87a248d8740fd2",
      "parents": [
        "9520628e8ceb69fa9a4aee6b57f22675d9e1b709"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Jul 30 14:39:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:11 2012 -0700"
      },
      "message": "coredump: warn about unsafe suid_dumpable / core_pattern combo\n\nWhen suid_dumpable\u003d2, detect unsafe core_pattern settings and warn when\nthey are seen.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1fd75bfa07822b1de314062baff3280419a8bf4",
      "tree": "7f5b234b6554dfa1459c32e3f941b3481700b044",
      "parents": [
        "6c4088ac3a4d82779903433bcd5f048c58fb1aca"
      ],
      "author": {
        "name": "Sasikantha babu",
        "email": "sasikanth.v19@gmail.com",
        "time": "Mon Jul 30 14:39:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:11 2012 -0700"
      },
      "message": "prctl: remove redunant assignment of \"error\" to zero\n\nJust setting the \"error\" to error number is enough on failure and It\ndoesn\u0027t require to set \"error\" variable to zero in each switch case,\nsince it was already initialized with zero.  And also removed return 0\nin switch case with break statement\n\nSigned-off-by: Sasikantha babu \u003csasikanth.v19@gmail.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "194f8dcbe9629d8e9346cf96345a9c0bbf0e67ae",
      "tree": "10aac2913ee4f9263af68c42682c456788d990fe",
      "parents": [
        "57683f72b8c01c53c85fe13e82fe1feb3a06bcd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:49 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:25 2012 +0200"
      },
      "message": "uprobes: __replace_page() needs munlock_vma_page()\n\nLike do_wp_page(), __replace_page() should do munlock_vma_page()\nfor the case when the old page still has other !VM_LOCKED\nmappings. Unfortunately this needs mm/internal.h.\n\nAlso, move put_page() outside of ptl lock. This doesn\u0027t really\nmatter but looks a bit better.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182249.GA20372@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "57683f72b8c01c53c85fe13e82fe1feb3a06bcd5",
      "tree": "87014149ef710e9f3c0af87cd6ec3118fc4eb723",
      "parents": [
        "f4d6dfe55115efe981b4b5f37183ddccaaa792f0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:47 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:25 2012 +0200"
      },
      "message": "uprobes: Rename vma_address() and make it return \"unsigned long\"\n\n1. vma_address() returns loff_t, this looks confusing and this\n   is unnecessary after the previous change. Make it return \"ulong\",\n   all callers truncate the result anyway.\n\n2. Its name conflicts with mm/rmap.c:vma_address(), rename it to\n   offset_to_vaddr(), this matches vaddr_to_offset().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182247.GA20365@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f4d6dfe55115efe981b4b5f37183ddccaaa792f0",
      "tree": "2d81b1b5a17334895282b42de6134b4e2dcf9f24",
      "parents": [
        "cb113b47d098185f3f1f67e8300d05ddce842b66"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:44 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:24 2012 +0200"
      },
      "message": "uprobes: Fix register_for_each_vma()-\u003evma_address() check\n\n1. register_for_each_vma() checks that vma_address() \u003d\u003d vaddr,\n   but this is not enough. We should also ensure that\n   vaddr \u003e\u003d vm_start, find_vma() guarantees \"vaddr \u003c vm_end\" only.\n\n2. After the prevous changes, register_for_each_vma() is the\n   only reason why vma_address() has to return loff_t, all other\n   users know that we have the valid mapping at this offset and\n   thus the overflow is not possible.\n\n   Change the code to use vaddr_to_offset() instead, imho this looks\n   more clean/understandable and now we can change vma_address().\n\n3. While at it, remove the unnecessary type-cast.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182244.GA20362@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cb113b47d098185f3f1f67e8300d05ddce842b66",
      "tree": "86601eb6728a4142e94e4cc3e45697840f6b0768",
      "parents": [
        "891c39708144bbe401b4aa151bffd0fe41b1dafd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:42 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:24 2012 +0200"
      },
      "message": "uprobes: Introduce vaddr_to_offset(vma, vaddr)\n\nAdd the new helper, vaddr_to_offset(vma, vaddr) which returns\nthe offset in vma-\u003evm_file this vaddr is mapped at.\n\nChange build_probe_list() and find_active_uprobe() to use the\nnew helper, the next patch adds another user.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182242.GA20355@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "891c39708144bbe401b4aa151bffd0fe41b1dafd",
      "tree": "4d49f2169a6f1e7051fd1b88a8a0fbe612a9224e",
      "parents": [
        "89133786f9408d53361874a8c784fff150fc7f7c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:40 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:23 2012 +0200"
      },
      "message": "uprobes: Teach build_probe_list() to consider the range\n\nCurrently build_probe_list() builds the list of all uprobes\nattached to the given inode, and the caller should filter out\nthose who don\u0027t fall into the [start,end) range, this is\nsub-optimal.\n\nThis patch turns find_least_offset_node() into\nfind_node_in_range() which returns the first node inside the\n[min,max] range, and changes build_probe_list() to use this node\nas a starting point for rb_prev() and rb_next() to find all\nother nodes the caller needs. The resulting list is no longer\nsorted but we do not care.\n\nThis can speed up both build_probe_list() and the callers, but\nthere is another reason to introduce find_node_in_range(). It\ncan be used to figure out whether the given vma has uprobes or\nnot, this will be needed soon.\n\nWhile at it, shift INIT_LIST_HEAD(tmp_list) into\nbuild_probe_list().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182240.GA20352@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aefd8933d445abf7ff0d4027c624737898827bcd",
      "tree": "f32864bfa64158141326ac35bc57204e49b2774f",
      "parents": [
        "2fd611a991391a6050cbd139201a2e12fc306540"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:33 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:21 2012 +0200"
      },
      "message": "uprobes: Fix overflow in vma_address()/find_active_uprobe()\n\nvma-\u003evm_pgoff is \"unsigned long\", it should be promoted to\nloff_t before the multiplication to avoid the overflow.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182233.GA20339@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "2fd611a991391a6050cbd139201a2e12fc306540",
      "tree": "8233d2ba7dd41e29c6477d4905b6fdc1e7a721e0",
      "parents": [
        "665605a2a207dbe1fa429b474f932d6ea138ba92"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:21 2012 +0200"
      },
      "message": "uprobes: Suppress uprobe_munmap() from mmput()\n\nuprobe_munmap() does get_user_pages() and it is also called from\nthe final mmput()-\u003eexit_mmap() path. This slows down\nexit/mmput() for no reason, and I think  it is simply\ndangerous/wrong to try to fault-in a page into the dying mm. If\nnothing else, this happens after the last sync_mm_rss(), afaics\nhandle_mm_fault() can change the task-\u003erss_stat and make the\nsubsequent check_mm() unhappy.\n\nChange uprobe_munmap() to check mm-\u003emm_users !\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182231.GA20336@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "665605a2a207dbe1fa429b474f932d6ea138ba92",
      "tree": "a9f99fcb3972a73066af4591dd3e818b8b14ab27",
      "parents": [
        "9f92448ceeea5326db7d114005a7e7ac03904edf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:29 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:20 2012 +0200"
      },
      "message": "uprobes: Uprobe_mmap/munmap needs list_for_each_entry_safe()\n\nThe bug was introduced by me in 449d0d7c (\"uprobes: Simplify the\nusage of uprobe-\u003epending_list\").\n\nYes, we do not care about uprobe-\u003epending_list after return and\nnobody can remove the current list entry, but put_uprobe(uprobe)\ncan actually free it and thus we need list_for_each_safe().\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120729182229.GA20329@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9f92448ceeea5326db7d114005a7e7ac03904edf",
      "tree": "42bd61d15b445d8677806adeadae99767094386c",
      "parents": [
        "089ba999dc881a7549d97c55ac9e0052d061867d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:20 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:20 2012 +0200"
      },
      "message": "uprobes: Clean up and document write_opcode()-\u003elock_page(old_page)\n\nThe comment above write_opcode()-\u003elock_page(old_page) tells\nabout the race with do_wp_page(). I don\u0027t really understand\nwhich exactly race it means, but afaics this lock_page() was not\nenough to close all races with do_wp_page().\n\nAnyway, since:\n\n   77fc4af1b59d uprobes: Change register_for_each_vma() to take mm-\u003emmap_sem for writing\n\nthis code is always called with -\u003emmap_sem held for writing,\nso we can forget about do_wp_page().\n\nHowever, we can\u0027t simply remove this lock_page(), and the only\n(afaics) reason is __replace_page()-\u003etry_to_free_swap().\n\nNothing in write_opcode() needs it, move it into\n__replace_page() and fix the comment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182220.GA20322@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "089ba999dc881a7549d97c55ac9e0052d061867d",
      "tree": "e5278f9ecb3a7405545b940b9b64abeb2121b4cc",
      "parents": [
        "c517ee744b96e441d9c731e245f83c6d08dc0a19"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:18 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:19 2012 +0200"
      },
      "message": "uprobes: Kill write_opcode()-\u003elock_page(new_page)\n\nwrite_opcode() does lock_page(new_page) for no reason. Nobody\ncan see this page until __replace_page() exposes it under ptl\nlock, and we do nothing with this page after pte_unmap_unlock().\n\nIf nothing else, the similar code in do_wp_page() doesn\u0027t lock\nthe new page for page_add_new_anon_rmap/set_pte_at_notify.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182218.GA20315@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c517ee744b96e441d9c731e245f83c6d08dc0a19",
      "tree": "8d7f7b86767ba2d5c62c2d421f388949f0483c85",
      "parents": [
        "f403072c6108e15f319a4a5036b650c77760522c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:16 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:19 2012 +0200"
      },
      "message": "uprobes: __replace_page() should not use page_address_in_vma()\n\npage_address_in_vma(old_page) in __replace_page() is ugly and\nwrong. The caller already knows the correct virtual address,\nthis page was found by get_user_pages(vaddr).\n\nHowever, page_address_in_vma() can actually fail if\npage-\u003emapping was cleared by __delete_from_page_cache() after\nget_user_pages() returns. But this means the race with page\nreclaim, write_opcode() should not fail, it should retry and\nread this page again. Probably the race with remove_mapping() is\nnot possible due to page_freeze_refs() logic, but afaics at\nleast shmem_writepage()-\u003eshmem_delete_from_page_cache() can\nclear -\u003emapping.\n\nWe could change __replace_page() to return -EAGAIN in this case,\nbut it would be better to simply use the caller\u0027s vaddr and rely\non page_check_address().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182216.GA20311@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f403072c6108e15f319a4a5036b650c77760522c",
      "tree": "196781f30871635b7c8fc702a7566b5ed09e525c",
      "parents": [
        "35d56ca9d401d9d0ac8d91e4db1485af5f38f6fd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:12 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:18 2012 +0200"
      },
      "message": "uprobes: Don\u0027t recheck vma/f_mapping in write_opcode()\n\nwrite_opcode() rechecks valid_vma() and -\u003ef_mapping, this is\npointless. The caller, register_for_each_vma() or uprobe_mmap(),\nhas already done these checks under mmap_sem.\n\nTo clarify, uprobe_mmap() checks valid_vma() only, but we can\nrely on build_probe_list(vm_file-\u003ef_mapping-\u003ehost).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182212.GA20304@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a51d9eaa41866ab6b4b6ecad7b621f8b66ece0dc",
      "tree": "f8ab532f946ec7f9ccdabb6a394d952981084122",
      "parents": [
        "800179c9b8a1e796e441674776d11cd4c05d61d7"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Jul 25 17:29:08 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:43:08 2012 +0400"
      },
      "message": "fs: add link restriction audit reporting\n\nAdds audit messages for unexpected link restriction violations so that\nsystem owners will have some sort of potentially actionable information\nabout misbehaving processes.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "800179c9b8a1e796e441674776d11cd4c05d61d7",
      "tree": "5760992f4453c35b57b2686d8b8d5caee239b637",
      "parents": [
        "3134f37e931d75931bdf6d4eacd82a3fd26eca7c"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Jul 25 17:29:07 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:37:58 2012 +0400"
      },
      "message": "fs: add link restrictions\n\nThis adds symlink and hardlink restrictions to the Linux VFS.\n\nSymlinks:\n\nA long-standing class of security issues is the symlink-based\ntime-of-check-time-of-use race, most commonly seen in world-writable\ndirectories like /tmp. The common method of exploitation of this flaw\nis to cross privilege boundaries when following a given symlink (i.e. a\nroot process follows a symlink belonging to another user). For a likely\nincomplete list of hundreds of examples across the years, please see:\nhttp://cve.mitre.org/cgi-bin/cvekey.cgi?keyword\u003d/tmp\n\nThe solution is to permit symlinks to only be followed when outside\na sticky world-writable directory, or when the uid of the symlink and\nfollower match, or when the directory owner matches the symlink\u0027s owner.\n\nSome pointers to the history of earlier discussion that I could find:\n\n 1996 Aug, Zygo Blaxell\n  http://marc.info/?l\u003dbugtraq\u0026m\u003d87602167419830\u0026w\u003d2\n 1996 Oct, Andrew Tridgell\n  http://lkml.indiana.edu/hypermail/linux/kernel/9610.2/0086.html\n 1997 Dec, Albert D Cahalan\n  http://lkml.org/lkml/1997/12/16/4\n 2005 Feb, Lorenzo Hernández García-Hierro\n  http://lkml.indiana.edu/hypermail/linux/kernel/0502.0/1896.html\n 2010 May, Kees Cook\n  https://lkml.org/lkml/2010/5/30/144\n\nPast objections and rebuttals could be summarized as:\n\n - Violates POSIX.\n   - POSIX didn\u0027t consider this situation and it\u0027s not useful to follow\n     a broken specification at the cost of security.\n - Might break unknown applications that use this feature.\n   - Applications that break because of the change are easy to spot and\n     fix. Applications that are vulnerable to symlink ToCToU by not having\n     the change aren\u0027t. Additionally, no applications have yet been found\n     that rely on this behavior.\n - Applications should just use mkstemp() or O_CREATE|O_EXCL.\n   - True, but applications are not perfect, and new software is written\n     all the time that makes these mistakes; blocking this flaw at the\n     kernel is a single solution to the entire class of vulnerability.\n - This should live in the core VFS.\n   - This should live in an LSM. (https://lkml.org/lkml/2010/5/31/135)\n - This should live in an LSM.\n   - This should live in the core VFS. (https://lkml.org/lkml/2010/8/2/188)\n\nHardlinks:\n\nOn systems that have user-writable directories on the same partition\nas system files, a long-standing class of security issues is the\nhardlink-based time-of-check-time-of-use race, most commonly seen in\nworld-writable directories like /tmp. The common method of exploitation\nof this flaw is to cross privilege boundaries when following a given\nhardlink (i.e. a root process follows a hardlink created by another\nuser). Additionally, an issue exists where users can \"pin\" a potentially\nvulnerable setuid/setgid file so that an administrator will not actually\nupgrade a system fully.\n\nThe solution is to permit hardlinks to only be created when the user is\nalready the existing file\u0027s owner, or if they already have read/write\naccess to the existing file.\n\nMany Linux users are surprised when they learn they can link to files\nthey have no access to, so this change appears to follow the doctrine\nof \"least surprise\". Additionally, this change does not violate POSIX,\nwhich states \"the implementation may require that the calling process\nhas permission to access the existing file\"[1].\n\nThis change is known to break some implementations of the \"at\" daemon,\nthough the version used by Fedora and Ubuntu has been fixed[2] for\na while. Otherwise, the change has been undisruptive while in use in\nUbuntu for the last 1.5 years.\n\n[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/linkat.html\n[2] http://anonscm.debian.org/gitweb/?p\u003dcollab-maint/at.git;a\u003dcommitdiff;h\u003df4114656c3a6c6f6070e315ffdf940a49eda3279\n\nThis patch is based on the patches in Openwall and grsecurity, along with\nsuggestions from Al Viro. I have added a sysctl to enable the protected\nbehavior, and documentation.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8ded2bbc1845e19c771eb55209aab166ef011243",
      "tree": "9ab400cdd407a9426fdfcc3432d7c0e19a0607ed",
      "parents": [
        "4cb38750d49010ae72e718d46605ac9ba5a851b4"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@redhat.com",
        "time": "Wed Jul 25 10:40:34 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:36:43 2012 -0700"
      },
      "message": "posix_types.h: Cleanup stale __NFDBITS and related definitions\n\nRecently, glibc made a change to suppress sign-conversion warnings in\nFD_SET (glibc commit ceb9e56b3d1).  This uncovered an issue with the\nkernel\u0027s definition of __NFDBITS if applications #include\n\u003clinux/types.h\u003e after including \u003csys/select.h\u003e.  A build failure would\nbe seen when passing the -Werror\u003dsign-compare and -D_FORTIFY_SOURCE\u003d2\nflags to gcc.\n\nIt was suggested that the kernel should either match the glibc\ndefinition of __NFDBITS or remove that entirely.  The current in-kernel\nuses of __NFDBITS can be replaced with BITS_PER_LONG, and there are no\nuses of the related __FDELT and __FDMASK defines.  Given that, we\u0027ll\ncontinue the cleanup that was started with commit 8b3d1cda4f5f\n(\"posix_types: Remove fd_set macros\") and drop the remaining unused\nmacros.\n\nAdditionally, linux/time.h has similar macros defined that expand to\nnothing so we\u0027ll remove those at the same time.\n\nReported-by: Jeff Law \u003claw@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCC: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\n[ .. and fix up whitespace as per akpm ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79071638ce655c1f78a50d05c7dae0ad04a3e92a",
      "tree": "d9e76997c418b78a2485ac50d5970f7d420a5600",
      "parents": [
        "44a6b8442190cf213081060b610dae2e822f802b",
        "8323f26ce3425460769605a6aece7a174edaa7d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:08:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:08:01 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"The biggest change is a performance improvement on SMP systems:\n\n  | 4 socket 40 core + SMT Westmere box, single 30 sec tbench\n  | runs, higher is better:\n  |\n  | clients     1       2       4        8       16       32       64      128\n  |..........................................................................\n  | pre        30      41     118      645     3769     6214    12233    14312\n  | post      299     603    1211     2418     4697     6847    11606    14557\n  |\n  | A nice increase in performance.\n\n  which speedup is particularly noticeable on heavily interacting\n  few-tasks workloads, so the changes should help desktop-style Xorg\n  workloads and interactivity as well, on multi-core CPUs.\n\n  There are also cpuset suspend behavior fixes/restructuring and various\n  smaller tweaks.\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Fix race in task_group()\n  sched: Improve balance_cpu() to consider other cpus in its group as target of (pinned) task\n  sched: Reset loop counters if all tasks are pinned and we need to redo load balance\n  sched: Reorder \u0027struct lb_env\u0027 members to reduce its size\n  sched: Improve scalability via \u0027CPU buddies\u0027, which withstand random perturbations\n  cpusets: Remove/update outdated comments\n  cpusets, hotplug: Restructure functions that are invoked during hotplug\n  cpusets, hotplug: Implement cpuset tree traversal in a helper function\n  CPU hotplug, cpusets, suspend: Don\u0027t modify cpusets during suspend/resume\n  sched/x86: Remove broken power estimation\n"
    },
    {
      "commit": "fa93669a1917f93b09142d4b2298329b82d7d36d",
      "tree": "7f8d6dc9d1fbb086c59a799a3a7137c46fb9959e",
      "parents": [
        "b13bc8dda81c54a66a1c84e66f60b8feba659f28",
        "6791457a090d9a234a40b501c2536f0aefaeae4b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 11:25:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 11:25:33 2012 -0700"
      },
      "message": "Merge tag \u0027driver-core-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core changes from Greg Kroah-Hartman:\n \"Here\u0027s the big driver core pull request for 3.6-rc1.\n\n  Unlike 3.5, this kernel should be a lot tamer, with the printk changes\n  now settled down.  All we have here is some extcon driver updates, w1\n  driver updates, a few printk cleanups that weren\u0027t needed for 3.5, but\n  are good to have now, and some other minor fixes/changes in the driver\n  core.\n\n  All of these have been in the linux-next releases for a while now.\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\n* tag \u0027driver-core-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (38 commits)\n  printk: Export struct log size and member offsets through vmcoreinfo\n  Drivers: hv: Change the hex constant to a decimal constant\n  driver core: don\u0027t trigger uevent after failure\n  extcon: MAX77693: Add extcon-max77693 driver to support Maxim MAX77693 MUIC device\n  sysfs: fail dentry revalidation after namespace change fix\n  sysfs: fail dentry revalidation after namespace change\n  extcon: spelling of detach in function doc\n  extcon: arizona: Stop microphone detection if we give up on it\n  extcon: arizona: Update cable reporting calls and split headset\n  PM / Runtime: Do not increment device usage counts before probing\n  kmsg - do not flush partial lines when the console is busy\n  kmsg - export \"continuation record\" flag to /dev/kmsg\n  kmsg - avoid warning for CONFIG_PRINTK\u003dn compilations\n  kmsg - properly print over-long continuation lines\n  driver-core: Use kobj_to_dev instead of re-implementing it\n  driver-core: Move kobj_to_dev from genhd.h to device.h\n  driver core: Move deferred devices to the end of dpm_list before probing\n  driver core: move uevent call to driver_register\n  driver core: fix shutdown races with probe/remove(v3)\n  Extcon: Arizona: Add driver for Wolfson Arizona class devices\n  ...\n"
    },
    {
      "commit": "b13bc8dda81c54a66a1c84e66f60b8feba659f28",
      "tree": "100a26eada424fa5d9b0e5eaaf4e23b8fa036fc8",
      "parents": [
        "9fc377799bc9bfd8d5cb35d0d1ea2e2458cbdbb3",
        "419e9266884fa853179ab726c27a63a9d3ae46e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 11:14:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 11:14:49 2012 -0700"
      },
      "message": "Merge tag \u0027staging-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\nPull staging tree patches from Greg Kroah-Hartman:\n \"Here\u0027s the big staging tree merge for the 3.6-rc1 merge window.\n\n  There are some patches in here outside of drivers/staging/, notibly\n  the iio code (which is still stradeling the staging / not staging\n  boundry), the pstore code, and the tracing code.  All of these have\n  gotten acks from the various subsystem maintainers to be included in\n  this tree.  The pstore and tracing patches are related, and are coming\n  here as they replace one of the android staging drivers.\n\n  Otherwise, the normal staging mess.  Lots of cleanups and a few new\n  drivers (some iio drivers, and the large csr wireless driver\n  abomination.)\n\n  Signed-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\"\n\nFixed up trivial conflicts in drivers/staging/comedi/drivers/s626.h and\ndrivers/staging/gdm72xx/netlink_k.c\n\n* tag \u0027staging-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1108 commits)\n  staging: csr: delete a bunch of unused library functions\n  staging: csr: remove csr_utf16.c\n  staging: csr: remove csr_pmem.h\n  staging: csr: remove CsrPmemAlloc\n  staging: csr: remove CsrPmemFree()\n  staging: csr: remove CsrMemAllocDma()\n  staging: csr: remove CsrMemCalloc()\n  staging: csr: remove CsrMemAlloc()\n  staging: csr: remove CsrMemFree() and CsrMemFreeDma()\n  staging: csr: remove csr_util.h\n  staging: csr: remove CsrOffSetOf()\n  stating: csr: remove unneeded #includes in csr_util.c\n  staging: csr: make CsrUInt16ToHex static\n  staging: csr: remove CsrMemCpy()\n  staging: csr: remove CsrStrLen()\n  staging: csr: remove CsrVsnprintf()\n  staging: csr: remove CsrStrDup\n  staging: csr: remove CsrStrChr()\n  staging: csr: remove CsrStrNCmp\n  staging: csr: remove CsrStrCmp\n  ...\n"
    },
    {
      "commit": "895dd92c032e1604aa0d7afaef7716e058343b67",
      "tree": "8662091be28c24a44287fc43790cf92547499a83",
      "parents": [
        "045e7e6047037d93824d265cc30c33eb631f8883"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Thu Jul 12 14:14:29 2012 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jul 26 12:23:10 2012 +0200"
      },
      "message": "sched: Deliver sched_switch events to the current task\n\nOtherwise they can\u0027t be filtered for a defined task:\n\n  perf record -e sched:sched_switch ./foo\n\nThis command doesn\u0027t report any events without this patch.\n\nI think it isn\u0027t a security concern if someone knows who will\nbe executed next - this can already be observed by polling /proc\nstate. By default perf is disabled for non-root users in any case.\n\nI need these events for profiling sleep times.  sched_switch is used for\ngetting callchains and sched_stat_* is used for getting time periods.\nThese events are combined in user space, then it can be analyzed by\nperf tools.\n\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nLink: http://lkml.kernel.org/r/1342088069-1005148-1-git-send-email-avagin@openvz.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f5a1ad057e6da5d0fc9c5677ff44797d193d3e62",
      "tree": "41eba9c89a1792d07db9110177fe62187a717f4e",
      "parents": [
        "4c0946c47463defa681b83294383dc996d255bb7"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Jul 20 10:33:19 2012 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 24 22:37:30 2012 -0600"
      },
      "message": "irqdomain: Improve diagnostics when a domain mapping fails\n\nWhen the map operation fails log the error code we get and add a WARN_ON()\nso we get a backtrace (which should help work out which interrupt is the\nsource of the issue).\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "4c0946c47463defa681b83294383dc996d255bb7",
      "tree": "97443f85088db0aac64bda73d3e7e4d2261623ba",
      "parents": [
        "6aeea3ecc33b1f36dbc3b80461d15a7052ae424f"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sun Jun 03 22:04:39 2012 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 24 22:37:23 2012 -0600"
      },
      "message": "irqdomain: eliminate slow-path revmap lookups\n\nWith the current state of irq_domain, the reverse map is always updated\nwhen new IRQs get mapped.  This means that the irq_find_mapping() function\ncan be simplified to execute the revmap lookup functions unconditionally\n\nThis patch adds lookup functions for the revmaps that don\u0027t yet have one\nand removes the slow path lookup code path.\n\nv8: Broke out unrelated changes into separate patches.  Rebased on Paul\u0027s irq\n    association patches.\nv7: Rebased to irqdomain/next for v3.4 and applied before the removal of \u0027hint\u0027\nv6: Remove the slow path entirely.  The only place where the slow path\n    could get called is for a linear mapping if the hwirq number is larger\n    than the linear revmap size.  There shouldn\u0027t be any interrupt\n    controllers that do that.\nv5: rewrite to not use a -\u003erevmap() callback.  It is simpler, smaller,\n    safer and faster to open code each of the revmap lookups directly into\n    irq_find_mapping() via a switch statement.\nv4: Fix build failure on incorrect variable reference.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Rob Herring \u003crob.herring@calxeda.com\u003e\n"
    },
    {
      "commit": "6aeea3ecc33b1f36dbc3b80461d15a7052ae424f",
      "tree": "bbd273e3e0ca76094aed8e9c77e5adfe2b07f779",
      "parents": [
        "9844a5524ec532aee826c35e3031637c7fc8287b",
        "bdc0077af574800d24318b6945cf2344e8dbb050"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 24 22:31:09 2012 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 24 22:34:40 2012 -0600"
      },
      "message": "Merge remote-tracking branch \u0027origin\u0027 into irqdomain/next\n"
    },
    {
      "commit": "bdc0077af574800d24318b6945cf2344e8dbb050",
      "tree": "efbcb8f2d8c2f1e42130e983405e49f2b95246f7",
      "parents": [
        "801b03653fc04de2cc5bc83c06de504d41345b63",
        "e96eb23d82b4246cce4eeb14a7eedbbdcf37b3d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 18:11:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 18:11:22 2012 -0700"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull first round of SCSI updates from James Bottomley:\n \"The most important feature of this patch set is the new async\n  infrastructure that makes sure async_synchronize_full() synchronizes\n  all domains and allows us to remove all the hacks (like having\n  scsi_complete_async_scans() in the device base code) and means that\n  the async infrastructure will \"just work\" in future.\n\n  The rest is assorted driver updates (aacraid, bnx2fc, virto-scsi,\n  megaraid, bfa, lpfc, qla2xxx, qla4xxx) plus a lot of infrastructure\n  work in sas and FC.\n\n  Signed-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (97 commits)\n  [SCSI] Revert \"[SCSI] fix async probe regression\"\n  [SCSI] cleanup usages of scsi_complete_async_scans\n  [SCSI] queue async scan work to an async_schedule domain\n  [SCSI] async: make async_synchronize_full() flush all work regardless of domain\n  [SCSI] async: introduce \u0027async_domain\u0027 type\n  [SCSI] bfa: Fix to set correct return error codes and misc cleanup.\n  [SCSI] aacraid: Series 7 Async. (performance) mode support\n  [SCSI] aha152x: Allow use on 64bit systems\n  [SCSI] virtio-scsi: Add vdrv-\u003escan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning\n  [SCSI] bfa: squelch lockdep complaint with a spin_lock_init\n  [SCSI] qla2xxx: remove unnecessary reads of PCI_CAP_ID_EXP\n  [SCSI] qla4xxx: remove unnecessary read of PCI_CAP_ID_EXP\n  [SCSI] ufs: fix incorrect return value about SUCCESS and FAILED\n  [SCSI] ufs: reverse the ufshcd_is_device_present logic\n  [SCSI] ufs: use module_pci_driver\n  [SCSI] usb-storage: update usb devices for write cache quirk in quirk list.\n  [SCSI] usb-storage: add support for write cache quirk\n  [SCSI] set to WCE if usb cache quirk is present.\n  [SCSI] virtio-scsi: hotplug support for virtio-scsi\n  [SCSI] virtio-scsi: split scatterlist per target\n  ...\n"
    },
    {
      "commit": "614a6d4341b3760ca98a1c2c09141b71db5d1e90",
      "tree": "6345a6fe908e002f2bd6056427d49b2d0e5652a5",
      "parents": [
        "a08489c569dc174cff97d2cb165aa81e3f1501cc",
        "9a8054aa5d7a98106f72d9ab76e26ebd42320ee0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:47:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:47:44 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"Nothing too interesting.  A minor bug fix and some cleanups.\"\n\n* \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: Update remount documentation\n  cgroup: cgroup_rm_files() was calling simple_unlink() with the wrong inode\n  cgroup: Remove populate() documentation\n  cgroup: remove hierarchy_mutex\n"
    },
    {
      "commit": "a08489c569dc174cff97d2cb165aa81e3f1501cc",
      "tree": "c583700a11bab82ea864425004dd5bb03bf8a987",
      "parents": [
        "08d9329c29ec98477e8ac2f7a513f2bfa3e9f3c5",
        "6fec10a1a5866dda3cd6a825a521fc7c2f226ba5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:46:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 17:46:16 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"There are three major changes.\n\n   - WQ_HIGHPRI has been reimplemented so that high priority work items\n     are served by worker threads with -20 nice value from dedicated\n     highpri worker pools.\n\n   - CPU hotplug support has been reimplemented such that idle workers\n     are kept across CPU hotplug events.  This makes CPU hotplug cheaper\n     (for PM) and makes the code simpler.\n\n   - flush_kthread_work() has been reimplemented so that a work item can\n     be freed while executing.  This removes an annoying behavior\n     difference between kthread_worker and workqueue.\"\n\n* \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix spurious CPU locality WARN from process_one_work()\n  kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed\n  kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation\n  workqueue: simplify CPU hotplug code\n  workqueue: remove CPU offline trustee\n  workqueue: don\u0027t butcher idle workers on an offline CPU\n  workqueue: reimplement CPU online rebinding to handle idle workers\n  workqueue: drop @bind from create_worker()\n  workqueue: use mutex for global_cwq manager exclusion\n  workqueue: ROGUE workers are UNBOUND workers\n  workqueue: drop CPU_DYING notifier operation\n  workqueue: perform cpu down operations from low priority cpu_notifier()\n  workqueue: reimplement WQ_HIGHPRI using a separate worker_pool\n  workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()\n  workqueue: separate out worker_pool flags\n  workqueue: use @pool instead of @gcwq or @cpu where applicable\n  workqueue: factor out worker_pool from global_cwq\n  workqueue: don\u0027t use WQ_HIGHPRI for unbound workqueues\n"
    },
    {
      "commit": "6dd53aa4563a2c69e80a24d2cc68d484b5ea2891",
      "tree": "0cca9f65984b524527910960d972fc6ef85fac88",
      "parents": [
        "f14121ab35912e3d2e57ac9a4ce1f9d4b7baeffb",
        "63b96f7baeba71966c723912c3f8f0274577f877"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 16:17:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 16:17:07 2012 -0700"
      },
      "message": "Merge tag \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci\n\nPull PCI changes from Bjorn Helgaas:\n \"Host bridge hotplug:\n    - Add MMCONFIG support for hot-added host bridges (Jiang Liu)\n  Device hotplug:\n    - Move fixups from __init to __devinit (Sebastian Andrzej Siewior)\n    - Call FINAL fixups for hot-added devices, too (Myron Stowe)\n    - Factor out generic code for P2P bridge hot-add (Yinghai Lu)\n    - Remove all functions in a slot, not just those with _EJx (Amos\n      Kong)\n  Dynamic resource management:\n    - Track bus number allocation (struct resource tree per domain)\n      (Yinghai Lu)\n    - Make P2P bridge 1K I/O windows work with resource reassignment\n      (Bjorn Helgaas, Yinghai Lu)\n    - Disable decoding while updating 64-bit BARs (Bjorn Helgaas)\n  Power management:\n    - Add PCIe runtime D3cold support (Huang Ying)\n  Virtualization:\n    - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex\n      Williamson)\n    - Add quirks for devices with broken INTx masking (Jan Kiszka)\n  Miscellaneous:\n    - Fix some PCI Express capability version issues (Myron Stowe)\n    - Factor out some arch code with a weak, generic, pcibios_setup()\n      (Myron Stowe)\"\n\n* tag \u0027for-3.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits)\n  PCI: hotplug: ensure a consistent return value in error case\n  PCI: fix undefined reference to \u0027pci_fixup_final_inited\u0027\n  PCI: build resource code for M68K architecture\n  PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width()\n  PCI: reorder __pci_assign_resource() (no change)\n  PCI: fix truncation of resource size to 32 bits\n  PCI: acpiphp: merge acpiphp_debug and debug\n  PCI: acpiphp: remove unused res_lock\n  sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases()\n  PCI: call final fixups hot-added devices\n  PCI: move final fixups from __init to __devinit\n  x86/PCI: move final fixups from __init to __devinit\n  MIPS/PCI: move final fixups from __init to __devinit\n  PCI: support sizing P2P bridge I/O windows with 1K granularity\n  PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2)\n  PCI: disable MEM decoding while updating 64-bit MEM BARs\n  PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too\n  PCI: never discard enable/suspend/resume_early/resume fixups\n  PCI: release temporary reference in __nv_msi_ht_cap_quirk()\n  PCI: restructure \u0027pci_do_fixups()\u0027\n  ...\n"
    },
    {
      "commit": "f14121ab35912e3d2e57ac9a4ce1f9d4b7baeffb",
      "tree": "7d5b4799998760e0a88166185abff1147d4ee04d",
      "parents": [
        "914311c9fb9bc01a215de9d848b72b5449c0e342",
        "e95d8aafa5d911bf523bc47fe89f3336eb8a1b51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 14:07:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 14:07:22 2012 -0700"
      },
      "message": "Merge tag \u0027dt-for-3.6\u0027 of git://sources.calxeda.com/kernel/linux\n\nPull devicetree updates from Rob Herring:\n \"A small set of changes for devicetree:\n   - Couple of Documentation fixes\n   - Addition of new helper function of_node_full_name\n   - Improve of_parse_phandle_with_args return values\n   - Some NULL related sparse fixes\"\n\nGrant\u0027s busy packing.\n\n* tag \u0027dt-for-3.6\u0027 of git://sources.calxeda.com/kernel/linux:\n  of: mtd: nuke useless const qualifier\n  devicetree: add helper inline for retrieving a node\u0027s full name\n  of: return -ENOENT when no property\n  usage-model.txt: fix typo machine_init-\u003einit_machine\n  of: Fix null pointer related warnings in base.c file\n  LED: Fix missing semicolon in OF documentation\n  of: fix a few typos in the binding documentation\n"
    },
    {
      "commit": "3c4cfadef6a1665d9cd02a543782d03d3e6740c6",
      "tree": "3df72faaacd494d5ac8c9668df4f529b1b5e4457",
      "parents": [
        "e017507f37d5cb8b541df165a824958bc333bec3",
        "320f5ea0cedc08ef65d67e056bcb9d181386ef2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 10:01:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 10:01:50 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David S Miller:\n\n 1) Remove the ipv4 routing cache.  Now lookups go directly into the FIB\n    trie and use prebuilt routes cached there.\n\n    No more garbage collection, no more rDOS attacks on the routing\n    cache.  Instead we now get predictable and consistent performance,\n    no matter what the pattern of traffic we service.\n\n    This has been almost 2 years in the making.  Special thanks to\n    Julian Anastasov, Eric Dumazet, Steffen Klassert, and others who\n    have helped along the way.\n\n    I\u0027m sure that with a change of this magnitude there will be some\n    kind of fallout, but such things ought the be simple to fix at this\n    point.  Luckily I\u0027m not European so I\u0027ll be around all of August to\n    fix things :-)\n\n    The major stages of this work here are each fronted by a forced\n    merge commit whose commit message contains a top-level description\n    of the motivations and implementation issues.\n\n 2) Pre-demux of established ipv4 TCP sockets, saves a route demux on\n    input.\n\n 3) TCP SYN/ACK performance tweaks from Eric Dumazet.\n\n 4) Add namespace support for netfilter L4 conntrack helpers, from Gao\n    Feng.\n\n 5) Add config mechanism for Energy Efficient Ethernet to ethtool, from\n    Yuval Mintz.\n\n 6) Remove quadratic behavior from /proc/net/unix, from Eric Dumazet.\n\n 7) Support for connection tracker helpers in userspace, from Pablo\n    Neira Ayuso.\n\n 8) Allow userspace driven TX load balancing functions in TEAM driver,\n    from Jiri Pirko.\n\n 9) Kill off NLMSG_PUT and RTA_PUT macros, more gross stuff with\n    embedded gotos.\n\n10) TCP Small Queues, essentially minimize the amount of TCP data queued\n    up in the packet scheduler layer.  Whereas the existing BQL (Byte\n    Queue Limits) limits the pkt_sched --\u003e netdevice queuing levels,\n    this controls the TCP --\u003e pkt_sched queueing levels.\n\n    From Eric Dumazet.\n\n11) Reduce the number of get_page/put_page ops done on SKB fragments,\n    from Alexander Duyck.\n\n12) Implement protection against blind resets in TCP (RFC 5961), from\n    Eric Dumazet.\n\n13) Support the client side of TCP Fast Open, basically the ability to\n    send data in the SYN exchange, from Yuchung Cheng.\n\n    Basically, the sender queues up data with a sendmsg() call using\n    MSG_FASTOPEN, then they do the connect() which emits the queued up\n    fastopen data.\n\n14) Avoid all the problems we get into in TCP when timers or PMTU events\n    hit a locked socket.  The TCP Small Queues changes added a\n    tcp_release_cb() that allows us to queue work up to the\n    release_sock() caller, and that\u0027s what we use here too.  From Eric\n    Dumazet.\n\n15) Zero copy on TX support for TUN driver, from Michael S. Tsirkin.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1870 commits)\n  genetlink: define lockdep_genl_is_held() when CONFIG_LOCKDEP\n  r8169: revert \"add byte queue limit support\".\n  ipv4: Change rt-\u003ert_iif encoding.\n  net: Make skb-\u003eskb_iif always track skb-\u003edev\n  ipv4: Prepare for change of rt-\u003ert_iif encoding.\n  ipv4: Remove all RTCF_DIRECTSRC handliing.\n  ipv4: Really ignore ICMP address requests/replies.\n  decnet: Don\u0027t set RTCF_DIRECTSRC.\n  net/ipv4/ip_vti.c: Fix __rcu warnings detected by sparse.\n  ipv4: Remove redundant assignment\n  rds: set correct msg_namelen\n  openvswitch: potential NULL deref in sample()\n  tcp: dont drop MTU reduction indications\n  bnx2x: Add new 57840 device IDs\n  tcp: avoid oops in tcp_metrics and reset tcpm_stamp\n  niu: Change niu_rbr_fill() to use unlikely() to check niu_rbr_add_page() return value\n  niu: Fix to check for dma mapping errors.\n  net: Fix references to out-of-scope variables in put_cmsg_compat()\n  net: ethernet: davinci_emac: add pm_runtime support\n  net: ethernet: davinci_emac: Remove unnecessary #include\n  ...\n"
    },
    {
      "commit": "8323f26ce3425460769605a6aece7a174edaa7d1",
      "tree": "44daa0dafa49cedc9301efd1417c6c2ac338c1c7",
      "parents": [
        "88b8dac0a14c511ff41486b83a8c3d688936eec0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jun 22 13:36:05 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:58:20 2012 +0200"
      },
      "message": "sched: Fix race in task_group()\n\nStefan reported a crash on a kernel before a3e5d1091c1 (\"sched:\nDon\u0027t call task_group() too many times in set_task_rq()\"), he\nfound the reason to be that the multiple task_group()\ninvocations in set_task_rq() returned different values.\n\nLooking at all that I found a lack of serialization and plain\nwrong comments.\n\nThe below tries to fix it using an extra pointer which is\nupdated under the appropriate scheduler locks. Its not pretty,\nbut I can\u0027t really see another way given how all the cgroup\nstuff works.\n\nReported-and-tested-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1340364965.18025.71.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "88b8dac0a14c511ff41486b83a8c3d688936eec0",
      "tree": "e98b2c8b1d47b136725f1a2862802e7db0bba927",
      "parents": [
        "bbf18b19495942cc730e8ff11fc3ffadf20cbfe1"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Tue Jun 19 17:43:15 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:58:06 2012 +0200"
      },
      "message": "sched: Improve balance_cpu() to consider other cpus in its group as target of (pinned) task\n\nCurrent load balance scheme requires only one cpu in a\nsched_group (balance_cpu) to look at other peer sched_groups for\nimbalance and pull tasks towards itself from a busy cpu. Tasks\nthus pulled by balance_cpu could later get picked up by cpus\nthat are in the same sched_group as that of balance_cpu.\n\nThis scheme however fails to pull tasks that are not allowed to\nrun on balance_cpu (but are allowed to run on other cpus in its\nsched_group). That can affect fairness and in some worst case\nscenarios cause starvation.\n\nConsider a two core (2 threads/core) system running tasks as\nbelow:\n\n          Core0            Core1\n         /     \\          /     \\\n\tC0     C1\t C2     C3\n        |      |         |      |\n        v      v         v      v\n\tF0     T1        F1     [idle]\n\t\t\t T2\n\n F0 \u003d SCHED_FIFO task (pinned to C0)\n F1 \u003d SCHED_FIFO task (pinned to C2)\n T1 \u003d SCHED_OTHER task (pinned to C1)\n T2 \u003d SCHED_OTHER task (pinned to C1 and C2)\n\nF1 could become a cpu hog, which will starve T2 unless C1 pulls\nit. Between C0 and C1 however, C0 is required to look for\nimbalance between cores, which will fail to pull T2 towards\nCore0. T2 will starve eternally in this case. The same scenario\ncan arise in presence of non-rt tasks as well (say we replace F1\nwith high irq load).\n\nWe tackle this problem by having balance_cpu move pinned tasks\nto one of its sibling cpus (where they can run). We first check\nif load balance goal can be met by ignoring pinned tasks,\nfailing which we retry move_tasks() with a new env-\u003edst_cpu.\n\nThis patch modifies load balance semantics on who can move load\ntowards a given cpu in a given sched_domain.\n\nBefore this patch, a given_cpu or a ilb_cpu acting on behalf of\nan idle given_cpu is responsible for moving load to given_cpu.\n\nWith this patch applied, balance_cpu can in addition decide on\nmoving some load to a given_cpu.\n\nThere is a remote possibility that excess load could get moved\nas a result of this (balance_cpu and given_cpu/ilb_cpu deciding\n*independently* and at *same* time to move some load to a\ngiven_cpu). However we should see less of such conflicting\ndecisions in practice and moreover subsequent load balance\ncycles should correct the excess load moved to given_cpu.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Prashanth Nageshappa \u003cprashanth@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4FE06CDB.2060605@linux.vnet.ibm.com\n[ minor edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bbf18b19495942cc730e8ff11fc3ffadf20cbfe1",
      "tree": "230cd53d8669da7c3881ded77651422b89615c16",
      "parents": [
        "85c1e7dae165acd004429f81fe52bfbf55b57a98"
      ],
      "author": {
        "name": "Prashanth Nageshappa",
        "email": "prashanth@linux.vnet.ibm.com",
        "time": "Tue Jun 19 17:52:07 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:55:37 2012 +0200"
      },
      "message": "sched: Reset loop counters if all tasks are pinned and we need to redo load balance\n\nWhile load balancing, if all tasks on the source runqueue are pinned,\nwe retry after excluding the corresponding source cpu. However, loop counters\nenv.loop and env.loop_break are not reset before retrying, which can lead\nto failure in moving the tasks. In this patch we reset env.loop and\nenv.loop_break to their inital values before we retry.\n\nSigned-off-by: Prashanth Nageshappa \u003cprashanth@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4FE06EEF.2090709@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "85c1e7dae165acd004429f81fe52bfbf55b57a98",
      "tree": "e9423a9075004bec44dd09d981300af716f1f89c",
      "parents": [
        "970e178985cadbca660feb02f4d2ee3a09f7fdda"
      ],
      "author": {
        "name": "Prashanth Nageshappa",
        "email": "prashanth@linux.vnet.ibm.com",
        "time": "Tue Jun 19 17:47:34 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:55:20 2012 +0200"
      },
      "message": "sched: Reorder \u0027struct lb_env\u0027 members to reduce its size\n\nMembers of \u0027struct lb_env\u0027 are not in appropriate order to reuse compiler\nadded padding on 64bit architectures. In this patch we reorder those struct\nmembers and help reduce the size of the structure from 96 bytes to 80\nbytes on 64 bit architectures.\n\nSuggested-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Prashanth Nageshappa \u003cprashanth@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4FE06DDE.7000403@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "970e178985cadbca660feb02f4d2ee3a09f7fdda",
      "tree": "20f47abb069a5d13940e8cdc48dae5f5563eb59a",
      "parents": [
        "a1cd2b13f754b2c56fb87b8c4912c015f8f57c0c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Jun 12 05:18:32 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:53:34 2012 +0200"
      },
      "message": "sched: Improve scalability via \u0027CPU buddies\u0027, which withstand random perturbations\n\nTraversing an entire package is not only expensive, it also leads to tasks\nbouncing all over a partially idle and possible quite large package.  Fix\nthat up by assigning a \u0027buddy\u0027 CPU to try to motivate.  Each buddy may try\nto motivate that one other CPU, if it\u0027s busy, tough, it may then try its\nSMT sibling, but that\u0027s all this optimization is allowed to cost.\n\nSibling cache buddies are cross-wired to prevent bouncing.\n\n4 socket 40 core + SMT Westmere box, single 30 sec tbench runs, higher is better:\n\n clients     1       2       4        8       16       32       64      128\n ..........................................................................\n pre        30      41     118      645     3769     6214    12233    14312\n post      299     603    1211     2418     4697     6847    11606    14557\n\nA nice increase in performance.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/1339471112.7352.32.camel@marge.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a1cd2b13f754b2c56fb87b8c4912c015f8f57c0c",
      "tree": "bb53414ee118a3807e5280ada2e26c1892c4dd18",
      "parents": [
        "7ddf96b02fe8dd441f452deef879040def5f7b34"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu May 24 19:47:03 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:53:28 2012 +0200"
      },
      "message": "cpusets: Remove/update outdated comments\n\ncpuset_track_online_cpus() is no longer present. So remove the\noutdated comment and replace it with reference to cpuset_update_active_cpus()\nwhich is its equivalent.\n\nAlso, we don\u0027t lack memory hot-unplug anymore. And David Rientjes pointed\nout how it is dealt with. So update that comment as well.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20120524141700.3692.98192.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7ddf96b02fe8dd441f452deef879040def5f7b34",
      "tree": "779a01bad0b51eb8ca8acb96b75f5a1b06f9a6d3",
      "parents": [
        "80d1fa6463d934969b7aebf04107fc133463f0f6"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu May 24 19:46:55 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:53:22 2012 +0200"
      },
      "message": "cpusets, hotplug: Restructure functions that are invoked during hotplug\n\nSeparate out the cpuset related handling for CPU/Memory online/offline.\nThis also helps us exploit the most obvious and basic level of optimization\nthat any notification mechanism (CPU/Mem online/offline) has to offer us:\n\"We *know* why we have been invoked. So stop pretending that we are lost,\nand do only the necessary amount of processing!\".\n\nAnd while at it, rename scan_for_empty_cpusets() to\nscan_cpusets_upon_hotplug(), which is more appropriate considering how\nit is restructured.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20120524141650.3692.48637.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "80d1fa6463d934969b7aebf04107fc133463f0f6",
      "tree": "9e86e50c41016e68df655890c93a3b200c6a3ec0",
      "parents": [
        "d35be8bab9b0ce44bed4b9453f86ebf64062721e"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu May 24 19:46:41 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:53:18 2012 +0200"
      },
      "message": "cpusets, hotplug: Implement cpuset tree traversal in a helper function\n\nAt present, the functions that deal with cpusets during CPU/Mem hotplug\nare quite messy, since a lot of the functionality is mixed up without clear\nseparation. And this takes a toll on optimization as well. For example,\nthe function cpuset_update_active_cpus() is called on both CPU offline and CPU\nonline events; and it invokes scan_for_empty_cpusets(), which makes sense\nonly for CPU offline events. And hence, the current code ends up unnecessarily\ntraversing the cpuset tree during CPU online also.\n\nAs a first step towards cleaning up those functions, encapsulate the cpuset\ntree traversal in a helper function, so as to facilitate upcoming changes.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20120524141635.3692.893.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d35be8bab9b0ce44bed4b9453f86ebf64062721e",
      "tree": "295823c4f0d50be5b30714a083de658e1a4185e6",
      "parents": [
        "ee08d1284ea9235b29bd2d9b7493b4b4cf3da09c"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu May 24 19:46:26 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 24 13:53:14 2012 +0200"
      },
      "message": "CPU hotplug, cpusets, suspend: Don\u0027t modify cpusets during suspend/resume\n\nIn the event of CPU hotplug, the kernel modifies the cpusets\u0027 cpus_allowed\nmasks as and when necessary to ensure that the tasks belonging to the cpusets\nhave some place (online CPUs) to run on. And regular CPU hotplug is\ndestructive in the sense that the kernel doesn\u0027t remember the original cpuset\nconfigurations set by the user, across hotplug operations.\n\nHowever, suspend/resume (which uses CPU hotplug) is a special case in which\nthe kernel has the responsibility to restore the system (during resume), to\nexactly the same state it was in before suspend.\n\nIn order to achieve that, do the following:\n\n1. Don\u0027t modify cpusets during suspend/resume. At all.\n   In particular, don\u0027t move the tasks from one cpuset to another, and\n   don\u0027t modify any cpuset\u0027s cpus_allowed mask. So, simply ignore cpusets\n   during the CPU hotplug operations that are carried out in the\n   suspend/resume path.\n\n2. However, cpusets and sched domains are related. We just want to avoid\n   altering cpusets alone. So, to keep the sched domains updated, build\n   a single sched domain (containing all active cpus) during each of the\n   CPU hotplug operations carried out in s/r path, effectively ignoring\n   the cpusets\u0027 cpus_allowed masks.\n\n   (Since userspace is frozen while doing all this, it will go unnoticed.)\n\n3. During the last CPU online operation during resume, build the sched\n   domains by looking up the (unaltered) cpusets\u0027 cpus_allowed masks.\n   That will bring back the system to the same original state as it was in\n   before suspend.\n\nUltimately, this will not only solve the cpuset problem related to suspend\nresume (ie., restores the cpusets to exactly what it was before suspend, by\nnot touching it at all) but also speeds up suspend/resume because we avoid\nrunning cpuset update code for every CPU being offlined/onlined.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20120524141611.3692.20155.stgit@srivatsabhat.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a66d2c8f7ec1284206ca7c14569e2a607583f1e3",
      "tree": "08cf68bcef3559b370843cab8191e5cc0f740bde",
      "parents": [
        "a6be1fcbc57f95bb47ef3c8e4ee3d83731b8f21e",
        "8cae6f7158ec1fa44c8a04a43db7d8020ec60437"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull the big VFS changes from Al Viro:\n \"This one is *big* and changes quite a few things around VFS.  What\u0027s in there:\n\n   - the first of two really major architecture changes - death to open\n     intents.\n\n     The former is finally there; it was very long in making, but with\n     Miklos getting through really hard and messy final push in\n     fs/namei.c, we finally have it.  Unlike his variant, this one\n     doesn\u0027t introduce struct opendata; what we have instead is\n     -\u003eatomic_open() taking preallocated struct file * and passing\n     everything via its fields.\n\n     Instead of returning struct file *, it returns -E...  on error, 0\n     on success and 1 in \"deal with it yourself\" case (e.g.  symlink\n     found on server, etc.).\n\n     See comments before fs/namei.c:atomic_open().  That made a lot of\n     goodies finally possible and quite a few are in that pile:\n     -\u003elookup(), -\u003ed_revalidate() and -\u003ecreate() do not get struct\n     nameidata * anymore; -\u003elookup() and -\u003ed_revalidate() get lookup\n     flags instead, -\u003ecreate() gets \"do we want it exclusive\" flag.\n\n     With the introduction of new helper (kern_path_locked()) we are rid\n     of all struct nameidata instances outside of fs/namei.c; it\u0027s still\n     visible in namei.h, but not for long.  Come the next cycle,\n     declaration will move either to fs/internal.h or to fs/namei.c\n     itself.  [me, miklos, hch]\n\n   - The second major change: behaviour of final fput().  Now we have\n     __fput() done without any locks held by caller *and* not from deep\n     in call stack.\n\n     That obviously lifts a lot of constraints on the locking in there.\n     Moreover, it\u0027s legal now to call fput() from atomic contexts (which\n     has immediately simplified life for aio.c).  We also don\u0027t need\n     anti-recursion logics in __scm_destroy() anymore.\n\n     There is a price, though - the damn thing has become partially\n     asynchronous.  For fput() from normal process we are guaranteed\n     that pending __fput() will be done before the caller returns to\n     userland, exits or gets stopped for ptrace.\n\n     For kernel threads and atomic contexts it\u0027s done via\n     schedule_work(), so theoretically we might need a way to make sure\n     it\u0027s finished; so far only one such place had been found, but there\n     might be more.\n\n     There\u0027s flush_delayed_fput() (do all pending __fput()) and there\u0027s\n     __fput_sync() (fput() analog doing __fput() immediately).  I hope\n     we won\u0027t need them often; see warnings in fs/file_table.c for\n     details.  [me, based on task_work series from Oleg merged last\n     cycle]\n\n   - sync series from Jan\n\n   - large part of \"death to sync_supers()\" work from Artem; the only\n     bits missing here are exofs and ext4 ones.  As far as I understand,\n     those are going via the exofs and ext4 trees resp.; once they are\n     in, we can put -\u003ewrite_super() to the rest, along with the thread\n     calling it.\n\n   - preparatory bits from unionmount series (from dhowells).\n\n   - assorted cleanups and fixes all over the place, as usual.\n\n  This is not the last pile for this cycle; there\u0027s at least jlayton\u0027s\n  ESTALE work and fsfreeze series (the latter - in dire need of fixes,\n  so I\u0027m not sure it\u0027ll make the cut this cycle).  I\u0027ll probably throw\n  symlink/hardlink restrictions stuff from Kees into the next pile, too.\n  Plus there\u0027s a lot of misc patches I hadn\u0027t thrown into that one -\n  it\u0027s large enough as it is...\"\n\n* \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (127 commits)\n  ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()\n  btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()\n  switch dentry_open() to struct path, make it grab references itself\n  spufs: shift dget/mntget towards dentry_open()\n  zoran: don\u0027t bother with struct file * in zoran_map\n  ecryptfs: don\u0027t reinvent the wheels, please - use struct completion\n  don\u0027t expose I_NEW inodes via dentry-\u003ed_inode\n  tidy up namei.c a bit\n  unobfuscate follow_up() a bit\n  ext3: pass custom EOF to generic_file_llseek_size()\n  ext4: use core vfs llseek code for dir seeks\n  vfs: allow custom EOF in generic_file_llseek code\n  vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes\n  vfs: Remove unnecessary flushing of block devices\n  vfs: Make sys_sync writeout also block device inodes\n  vfs: Create function for iterating over block devices\n  vfs: Reorder operations during sys_sync\n  quota: Move quota syncing to -\u003esync_fs method\n  quota: Split dquot_quota_sync() to writeback and cache flushing part\n  vfs: Move noop_backing_dev_info check from sync into writeback\n  ...\n"
    },
    {
      "commit": "7100e505b76b4e2efd88b2459d1a932214e29f8a",
      "tree": "a8eae8687dc1511c89463b1eb93c8349a7471ab3",
      "parents": [
        "cb47c1831fa406c964468b259f2082c16cc3f757",
        "75a4161a58dd157a2bd2dc8e9986e45b62ac46cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 13:36:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 13:36:52 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates from Rafael Wysocki:\n\n - ACPI conversion to PM handling based on struct dev_pm_ops.\n - Conversion of a number of platform drivers to PM handling based on\n   struct dev_pm_ops and removal of empty legacy PM callbacks from a\n   couple of PCI drivers.\n - Suspend-to-both for in-kernel hibernation from Bojan Smojver.\n - cpuidle fixes and cleanups from ShuoX Liu, Daniel Lezcano and Preeti\n   Murthy.\n - cpufreq bug fixes from Jonghwa Lee and Stephen Boyd.\n - Suspend and hibernate fixes from Srivatsa Bhat and Colin Cross.\n - Generic PM domains framework updates.\n - RTC CMOS wakeup signaling update from Paul Fox.\n - sparse warnings fixes from Sachin Kamat.\n - Build warnings fixes for the generic PM domains framework and PM\n   sysfs code.\n - sysfs switch for printing device suspend times from Sameer Nanda.\n - Documentation fix from Oskar Schirmer.\n\n* tag \u0027pm-for-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (70 commits)\n  cpufreq: Fix sysfs deadlock with concurrent hotplug/frequency switch\n  EXYNOS: bugfix on retrieving old_index from freqs.old\n  PM / Sleep: call early resume handlers when suspend_noirq fails\n  PM / QoS: Use NULL pointer instead of plain integer in qos.c\n  PM / QoS: Use NULL pointer instead of plain integer in pm_qos.h\n  PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock\n  PM / Sleep: Add missing static storage class specifiers in main.c\n  cpuilde / ACPI: remove time from acpi_processor_cx structure\n  cpuidle / ACPI: remove usage from acpi_processor_cx structure\n  cpuidle / ACPI : remove latency_ticks from acpi_processor_cx structure\n  rtc-cmos: report wakeups from interrupt handler\n  PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unset\n  PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unset\n  olpc-xo15-sci: Use struct dev_pm_ops for power management\n  PM / Domains: Replace plain integer with NULL pointer in domain.c file\n  PM / Domains: Add missing static storage class specifier in domain.c file\n  PM / crypto / ux500: Use struct dev_pm_ops for power management\n  PM / IPMI: Remove empty legacy PCI PM callbacks\n  tpm_nsc: Use struct dev_pm_ops for power management\n  tpm_tis: Use struct dev_pm_ops for power management\n  ...\n"
    },
    {
      "commit": "a2d4c71d1559426155e5da8db3265bfa0d8d398d",
      "tree": "e00739a549bd68afeff0685cb9998834b5eca877",
      "parents": [
        "ed3e694d78cc75fa79bf29698631b146fd27aa35"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 27 11:33:29 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:57 2012 +0400"
      },
      "message": "deal with task_work callbacks adding more work\n\nIt doesn\u0027t matter on normal return to userland path (we\u0027ll recheck the\nNOTIFY_RESUME flag anyway), but in case of exit_task_work() we\u0027ll\nneed that as soon as we get callbacks capable of triggering more\ntask_work_add().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ed3e694d78cc75fa79bf29698631b146fd27aa35",
      "tree": "97dad6768546b489a3d09c42cef0738b57f4822e",
      "parents": [
        "67d1214551e800f9fe7dc7c47a346d2df0fafed5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 27 11:31:24 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:57 2012 +0400"
      },
      "message": "move exit_task_work() past exit_files() et.al.\n\n... and get rid of PF_EXITING check in task_work_add().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67d1214551e800f9fe7dc7c47a346d2df0fafed5",
      "tree": "ffcc93af9390339adda36668255e617073b724a1",
      "parents": [
        "158e1645e07f3e9f7e4962d7a0997f5c3b98311b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 27 11:07:19 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:56 2012 +0400"
      },
      "message": "merge task_work and rcu_head, get rid of separate allocation for keyring case\n\ntask_work and rcu_head are identical now; merge them (calling the result\nstruct callback_head, rcu_head #define\u0027d to it), kill separate allocation\nin security/keys since we can just use cred-\u003ercu now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "158e1645e07f3e9f7e4962d7a0997f5c3b98311b",
      "tree": "09d695b3a0410afe15f7fd6006bc6c1effee151d",
      "parents": [
        "41f9d29f09ca0b22c3631e8a39676e74cda9bcc0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 27 09:24:13 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:55 2012 +0400"
      },
      "message": "trim task_work: get rid of hlist\n\nlayout based on Oleg\u0027s suggestion; single-linked list,\ntask-\u003etask_works points to the last element, forward pointer\nfrom said last element points to head.  I\u0027d still prefer\nmuch more regular scheme with two pointers in task_work,\nbut...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "41f9d29f09ca0b22c3631e8a39676e74cda9bcc0",
      "tree": "7ab5ed25f14466471fb55536e1cf71c514fb7fe9",
      "parents": [
        "7266702805f9d824f92ce5c4069eca65d0f21d28"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 26 22:10:04 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:54 2012 +0400"
      },
      "message": "trimming task_work: kill -\u003edata\n\nget rid of the only user of -\u003edata; this is _not_ the final variant - in the\nend we\u0027ll have task_work and rcu_head identical and just use cred-\u003ercu,\nat which point the separate allocation will be gone completely.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7266702805f9d824f92ce5c4069eca65d0f21d28",
      "tree": "2527195dccf6eec9dc20872dc820255df1ce5f4b",
      "parents": [
        "1e0ea0014479f066ba26f937e8740b8902229616"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 15 14:10:52 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:54 2012 +0400"
      },
      "message": "signal: make sure we don\u0027t get stopped with pending task_work\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3992c0321258bdff3666cbaf5225f538ad61a548",
      "tree": "42c98bcf601237b07ceac34b5bdb0b37558280dc",
      "parents": [
        "55acdddbac1725b80df0c41970505e8a41c84956",
        "eec19d1a0d04c80e66eef634f7b8f460f2ca5643"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:35:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:35:46 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer core changes from Ingo Molnar:\n \"Continued cleanups of the core time and NTP code, plus more nohz work\n  preparing for tick-less userspace execution.\"\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  time: Rework timekeeping functions to take timekeeper ptr as argument\n  time: Move xtime_nsec adjustment underflow handling timekeeping_adjust\n  time: Move arch_gettimeoffset() usage into timekeeping_get_ns()\n  time: Refactor accumulation of nsecs to secs\n  time: Condense timekeeper.xtime into xtime_sec\n  time: Explicitly use u32 instead of int for shift values\n  time: Whitespace cleanups per Ingo%27s requests\n  nohz: Move next idle expiry time record into idle logic area\n  nohz: Move ts-\u003eidle_calls incrementation into strict idle logic\n  nohz: Rename ts-\u003eidle_tick to ts-\u003elast_tick\n  nohz: Make nohz API agnostic against idle ticks cputime accounting\n  nohz: Separate idle sleeping time accounting from nohz logic\n  timers: Improve get_next_timer_interrupt()\n  timers: Add accounting of non deferrable timers\n  timers: Consolidate base-\u003enext_timer update\n  timers: Create detach_if_pending() and use it\n"
    },
    {
      "commit": "55acdddbac1725b80df0c41970505e8a41c84956",
      "tree": "cf0eeda5d382fe40ed3d14b74e9148e587282c0e",
      "parents": [
        "2eafeb6a415864bc4c59df79151cf40f6ac74b9e",
        "b871a42b6091b720e82ddff237659534c525c25b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:22:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:22:15 2012 -0700"
      },
      "message": "Merge branch \u0027smp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull smp/hotplug changes from Ingo Molnar:\n \"Various cleanups to the SMP hotplug code - a continuing effort of\n  Thomas et al\"\n\n* \u0027smp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  smpboot: Remove leftover declaration\n  smp: Remove num_booting_cpus()\n  smp: Remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()\n  POWERPC: Smp: remove call to ipi_call_lock()/ipi_call_unlock()\n  SPARC: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()\n  ia64: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()\n  x86-smp-remove-call-to-ipi_call_lock-ipi_call_unlock\n  tile: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()\n  S390: Smp: remove call to ipi_call_lock()/ipi_call_unlock()\n  parisc: Smp: remove call to ipi_call_lock()/ipi_call_unlock()\n  mn10300: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()\n  hexagon: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()\n"
    },
    {
      "commit": "2eafeb6a415864bc4c59df79151cf40f6ac74b9e",
      "tree": "331ee730275276aebbda5dd278a97c941067d5fd",
      "parents": [
        "16d286e656250859946786de0df0fb01f8f241bc",
        "6e0f17be0361444862637e8986c8c1a3b3f8dcf8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:10:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 11:10:36 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf events changes from Ingo Molnar:\n\n \"- kernel side:\n\n   - Intel uncore PMU support for Nehalem and Sandy Bridge CPUs, we\n     support both the events available via the MSR and via the PCI\n     access space.\n\n   - various uprobes cleanups and restructurings\n\n   - PMU driver quirks by microcode version and required x86 microcode\n     loader cleanups/robustization\n\n   - various tracing robustness updates\n\n   - static keys: remove obsolete static_branch()\n\n  - tooling side:\n\n   - GTK browser improvements\n\n   - perf report browser: support screenshots to file\n\n   - more automated tests\n\n   - perf kvm improvements\n\n   - perf bench refinements\n\n   - build environment improvements\n\n   - pipe mode improvements\n\n   - libtraceevent updates, we have now hopefully merged most bits with\n     the out of tree forked code base\n\n  ... and many other goodies.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (138 commits)\n  tracing: Check for allocation failure in __tracing_open()\n  perf/x86: Fix intel_perfmon_event_mapformatting\n  jump label: Remove static_branch()\n  tracepoint: Use static_key_false(), since static_branch() is deprecated\n  perf/x86: Uncore filter support for SandyBridge-EP\n  perf/x86: Detect number of instances of uncore CBox\n  perf/x86: Fix event constraint for SandyBridge-EP C-Box\n  perf/x86: Use 0xff as pseudo code for fixed uncore event\n  perf/x86: Save a few bytes in \u0027struct x86_pmu\u0027\n  perf/x86: Add a microcode revision check for SNB-PEBS\n  perf/x86: Improve debug output in check_hw_exists()\n  perf/x86/amd: Unify AMD\u0027s generic and family 15h pmus\n  perf/x86: Move Intel specific code to intel_pmu_init()\n  perf/x86: Rename Intel specific macros\n  perf/x86: Fix USER/KERNEL tagging of samples\n  perf tools: Split event symbols arrays to hw and sw parts\n  perf tools: Split out PE_VALUE_SYM parsing token to SW and HW tokens\n  perf tools: Add empty rule for new line in event syntax parsing\n  perf test: Use ARRAY_SIZE in parse events tests\n  tools lib traceevent: Cleanup realloc use\n  ...\n"
    },
    {
      "commit": "16d286e656250859946786de0df0fb01f8f241bc",
      "tree": "a3835959bec829f094f31a84c8100c3d7c740046",
      "parents": [
        "ceee0e95b67401ea34118a54369496ecdfb9a199",
        "5c09d127a112a78f95572921af88224f4091eb44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 10:45:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 22 10:45:05 2012 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU changes from Ingo Molnar:\n \"Quoting from Paul, the major features of this series are:\n\n  1. Preventing latency spikes of more than 200 microseconds for\n     kernels built with NR_CPUS\u003d4096, which is reportedly becoming the\n     default for some distros.  This is a first step, as it does not\n     help with systems that actually -have- 4096 CPUs (work on this case\n     is in progress, but is not yet ready for mainline).\n\n     This category also includes improving concurrency of rcu_barrier(),\n     placed here due to conflicts.  Posted to LKML at:\n\n      https://lkml.org/lkml/2012/6/22/381\n\n     Note that patches 18-22 of that series have been defered to 3.7, as\n     they have not yet proven themselves to be mainline-ready (and yes,\n     these are the ones intended to get rid of RCU\u0027s latency spikes for\n     systems that actually have 4096 CPUs).\n\n  2. Updates to documentation and rcutorture fixes, the latter category\n     including improvements to rcu_barrier() testing.  Posted to LKML at\n\n      http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/04094.html.\n\n  3. Miscellaneous fixes posted to LKML at:\n\n      https://lkml.org/lkml/2012/6/22/500\n\n     with the exception of the last commit, which was posted here:\n\n      http://www.gossamer-threads.com/lists/linux/kernel/1561830\n\n  4. RCU_FAST_NO_HZ fixes and improvements.  Posted to LKML at:\n\n      http://lkml.indiana.edu/hypermail/linux/kernel/1206.1/00006.html\n      http://www.gossamer-threads.com/lists/linux/kernel/1561833\n\n     The first four patches of the first series went into 3.5 to fix a\n     regression.\n\n  5. Code-style fixes.  These were posted to LKML at\n\n      http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01180.html\n      http://lkml.indiana.edu/hypermail/linux/kernel/1205.2/01181.html\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)\n  rcu: Fix broken strings in RCU\u0027s source code.\n  rcu: Fix code-style issues involving \"else\"\n  rcu: Introduce check for callback list/count mismatch\n  rcu: Make RCU_FAST_NO_HZ respect nohz\u003d boot parameter\n  rcu: Fix qlen_lazy breakage\n  rcu: Round FAST_NO_HZ lazy timeout to nearest second\n  rcu: The rcu_needs_cpu() function is not a quiescent state\n  rcu: Dump only the current CPU\u0027s buffers for idle-entry/exit warnings\n  rcu: Add check for CPUs going offline with callbacks queued\n  rcu: Disable preemption in rcu_blocking_is_gp()\n  rcu: Prevent uninitialized string in RCU CPU stall info\n  rcu: Fix rcu_is_cpu_idle() #ifdef in TINY_RCU\n  rcu: Split RCU core processing out of __call_rcu()\n  rcu: Prevent __call_rcu() from invoking RCU core on offline CPUs\n  rcu: Make __call_rcu() handle invocation from idle\n  rcu: Remove function versions of __kfree_rcu and __is_kfree_rcu_offset\n  rcu: Consolidate tree/tiny __rcu_read_{,un}lock() implementations\n  rcu: Remove return value from rcu_assign_pointer()\n  key: Remove extraneous parentheses from rcu_assign_keypointer()\n  rcu: Remove return value from RCU_INIT_POINTER()\n  ...\n"
    },
    {
      "commit": "6fec10a1a5866dda3cd6a825a521fc7c2f226ba5",
      "tree": "f45c465a2d5f04e5052324efd114ac07cd668a41",
      "parents": [
        "46f3d976213452350f9d10b0c2780c2681f7075b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:16:34 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:16:34 2012 -0700"
      },
      "message": "workqueue: fix spurious CPU locality WARN from process_one_work()\n\n25511a4776 \"workqueue: reimplement CPU online rebinding to handle idle\nworkers\" added CPU locality sanity check in process_one_work().  It\ntriggers if a worker is executing on a different CPU without UNBOUND\nor REBIND set.\n\nThis works for all normal workers but rescuers can trigger this\nspuriously when they\u0027re serving the unbound or a disassociated\nglobal_cwq - rescuers don\u0027t have either flag set and thus its\ngcwq-\u003ecpu can be a different value including %WORK_CPU_UNBOUND.\n\nFix it by additionally testing %GCWQ_DISASSOCIATED.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Refence: \u003c20120721213656.GA7783@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "46f3d976213452350f9d10b0c2780c2681f7075b",
      "tree": "1a8e0b20c306f84b07eedc97c07308be65a060ce",
      "parents": [
        "9a2e03d8ed518a61154f18d83d6466628e519f94"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 19 13:52:53 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:15:28 2012 -0700"
      },
      "message": "kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed\n\nkthread_worker provides minimalistic workqueue-like interface for\nusers which need a dedicated worker thread (e.g. for realtime\npriority).  It has basic queue, flush_work, flush_worker operations\nwhich mostly match the workqueue counterparts; however, due to the way\nflush_work() is implemented, it has a noticeable difference of not\nallowing work items to be freed while being executed.\n\nWhile the current users of kthread_worker are okay with the current\nbehavior, the restriction does impede some valid use cases.  Also,\nremoving this difference isn\u0027t difficult and actually makes the code\neasier to understand.\n\nThis patch reimplements flush_kthread_work() such that it uses a\nflush_work item instead of queue/done sequence numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "9a2e03d8ed518a61154f18d83d6466628e519f94",
      "tree": "ed5a66780409fd7ab1df70d799d8fb57a03477e6",
      "parents": [
        "8db25e7891a47e03db6f04344a9c92be16e391bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 19 13:52:53 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:11:01 2012 -0700"
      },
      "message": "kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation\n\nMake the following two non-functional changes.\n\n* Separate out insert_kthread_work() from queue_kthread_work().\n\n* Relocate struct kthread_flush_work and kthread_flush_work_fn()\n  definitions above flush_kthread_work().\n\nv2: Added lockdep_assert_held() in insert_kthread_work() as suggested\n    by Andy Walls.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\n"
    },
    {
      "commit": "9a2bc8603eca4ea4a3a01163593084c5c1b3e16a",
      "tree": "359ec96e8c42b037b79d2efd4cd1ee87e24c0842",
      "parents": [
        "d75e2c9ad97c40f6d2cdaf2e16381b2034d19a6f",
        "c064da47144b11be4697a4611f640086a663016a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:13 2012 -0700"
      },
      "message": "Merge branch \u0027anton-kgdb\u0027 (kgdb dmesg fixups)\n\nMerge emailed kgdb dmesg fixups patches from Anton Vorontsov:\n \"The dmesg command appears to be broken after the printk rework.  The\n  old logic in the kdb code makes no sense in terms of current\n  printk/logging storage format, and KDB simply hangs forever upon\n  entering \u0027dmesg\u0027 command.\n\n  The first patch revives the command by switching to kmsg_dumper\n  iterator.  As a side-effect, the code is now much more simpler.\n\n  A few changes were needed in the printk.c: we needed unlocked variant\n  of the kmsg_dumper iterator, but these can surely wait for 3.6.\n\n  It\u0027s probably too late even for the first patch to go to 3.5, but I\u0027ll\n  try to convince otherwise.  :-) Here we go:\n\n   - The current code is broken for sure, and has no hope to work at\n     all.  It is a regression\n   - The new code works for me, and probably works for everyone else;\n   - If it compiles (and I urge everyone to compile-test it on your\n     setup), it hardly can make things worse.\"\n\n* Merge emailed patches from Anton Vorontsov: (4 commits)\n  kdb: Switch to nolock variants of kmsg_dump functions\n  printk: Implement some unlocked kmsg_dump functions\n  printk: Remove kdb_syslog_data\n  kdb: Revive dmesg command\n"
    },
    {
      "commit": "c064da47144b11be4697a4611f640086a663016a",
      "tree": "838c1b69e0485ba4b2bda8668dc0c4b3117cb5c8",
      "parents": [
        "533827c921c34310f63e859e1d6d0feec439657d"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Fri Jul 20 17:28:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:00 2012 -0700"
      },
      "message": "kdb: Switch to nolock variants of kmsg_dump functions\n\nThe locked variants are prone to deadlocks (suppose we got to the\ndebugger w/ the logbuf lock held), so let\u0027s switch to nolock variants.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "533827c921c34310f63e859e1d6d0feec439657d",
      "tree": "6aaba38b5604be6ad3e9f7aa40239b5c3f9444e1",
      "parents": [
        "1b499d05eecbe04969516717a8e15afb6ad80689"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Fri Jul 20 17:28:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:00 2012 -0700"
      },
      "message": "printk: Implement some unlocked kmsg_dump functions\n\nIf used from KDB, the locked variants are prone to deadlocks (suppose we\ngot to the debugger w/ the logbuf lock held).\n\nSo, we have to implement a few routines that grab no logbuf lock.\n\nYet we don\u0027t need these functions in modules, so we don\u0027t export them.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b499d05eecbe04969516717a8e15afb6ad80689",
      "tree": "bd76ea04682094e21a4c34e770d818f80bdc3a7f",
      "parents": [
        "bc792e612e78a24ae0b30cc5b85f2368379ba4d4"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Fri Jul 20 17:27:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:00 2012 -0700"
      },
      "message": "printk: Remove kdb_syslog_data\n\nThe function is no longer needed, so remove it.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc792e612e78a24ae0b30cc5b85f2368379ba4d4",
      "tree": "8de04a65c1d02e42ab7e22b440f0aae92926fc69",
      "parents": [
        "84a1caf1453c3d44050bd22db958af4a7f99315c"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Fri Jul 20 17:27:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 21 10:34:00 2012 -0700"
      },
      "message": "kdb: Revive dmesg command\n\nThe kgdb dmesg command is broken after the printk rework.  The old logic\nin kdb code makes no sense in terms of current printk/logging storage\nformat, and KDB simply hangs forever.\n\nThis patch revives the command by switching to kmsg_dumper iterator.\n\nThe code is now much more simpler and shorter.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4683487f90bfe3049686fc5c566bdc1ad03ace6",
      "tree": "b5aeadd3155256378804c04571febeee9f77c5fb",
      "parents": [
        "2955b47d2c1983998a8c5915cb96884e67f7cb53"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 19:33:30 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Jul 20 09:07:37 2012 +0100"
      },
      "message": "[SCSI] async: make async_synchronize_full() flush all work regardless of domain\n\nIn response to an async related regression James noted:\n\n  \"My theory is that this is an init problem: The assumption in a lot of\n   our code is that async_synchronize_full() waits for everything ... even\n   the domain specific async schedules, which isn\u0027t true.\"\n\n...so make this assumption true.\n\nEach domain, including the default one, registers itself on a global domain\nlist when work is scheduled.  Once all entries complete it exits that\nlist.  Waiting for the list to be empty syncs all in-flight work across\nall domains.\n\nDomains can opt-out of global syncing if they are declared as exclusive\nASYNC_DOMAIN_EXCLUSIVE().  All stack-based domains have been declared\nexclusive since the domain may go out of scope as soon as the last work\nitem completes.\n\nStatically declared domains are mostly ok, but async_unregister_domain()\nis there to close any theoretical races with pending\nasync_synchronize_full waiters at module removal time.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nReported-by: Eldad Zack \u003celdadzack@gmail.com\u003e\nTested-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "2955b47d2c1983998a8c5915cb96884e67f7cb53",
      "tree": "e21ace685c01c698f20b7cb81b0097519c2fa18c",
      "parents": [
        "529f9a765509c2c141ecfee0c54e17bf9a6b8bc1"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 19:33:25 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Jul 20 09:05:54 2012 +0100"
      },
      "message": "[SCSI] async: introduce \u0027async_domain\u0027 type\n\nThis is in preparation for teaching async_synchronize_full() to sync all\npending async work, and not just on the async_running domain.  This\nconversion is functionally equivalent, just embedding the existing list\nin a new async_domain type.\n\nThe .registered attribute is used in a later patch to distinguish\nbetween domains that want to be flushed by async_synchronize_full()\nversus those that only expect async_synchronize_{full|cookie}_domain to\nbe used for flushing.\n\n[jejb: add async.h to scsi_priv.h for struct async_domain]\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nTested-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "6791457a090d9a234a40b501c2536f0aefaeae4b",
      "tree": "39ba0f7e11dca9a88a38f85ca94b26f46f76365e",
      "parents": [
        "bd8a4f06d0310326f89fd58fed74f2db8e345056"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Jul 18 13:18:12 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 17:14:18 2012 -0700"
      },
      "message": "printk: Export struct log size and member offsets through vmcoreinfo\n\nThere are tools like makedumpfile and vmcore-dmesg which can extract\nkernel log buffer from vmcore. Since we introduced structured logging,\nthat functionality is broken. Now user space tools need to know about\n\"struct log\" and offsets of various fields to be able to parse struct\nlog data and extract text message or dictonary.\n\nThis patch exports some of the fields.\n\nCurrently I am not exporting log \"level\" info as that is a bitfield and\noffsetof() bitfields can\u0027t be calculated. But if people start asking for\nlog level info in the output then we probably either need to seprate\nout \"level\" or use bit shift operations for flags and level.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Kay Sievers \u003ckay@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "abaa72d7fd9a20a67b62e6afa0e746e27851dc33",
      "tree": "ebe4134fcc93a6e205e6004b3e652d7a62281651",
      "parents": [
        "67da22d23fa6f3324e03bcd0580b914b2e4afbf3",
        "3e4b9459fb0e149c6b74c9e89399a8fc39a92b44"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 19 11:17:30 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 19 11:17:30 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c\n"
    },
    {
      "commit": "c5857ccf293968348e5eb4ebedc68074de3dcda6",
      "tree": "33b74f247459881a9dfdaafd6eb2756c3894521a",
      "parents": [
        "27130f0cc3ab97560384da437e4621fc4e94f21c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jul 14 20:27:52 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jul 19 10:38:32 2012 -0400"
      },
      "message": "random: remove rand_initialize_irq()\n\nWith the new interrupt sampling system, we are no longer using the\ntimer_rand_state structure in the irq descriptor, so we can stop\ninitializing it now.\n\n[ Merged in fixes from Sedat to find some last missing references to\n  rand_initialize_irq() ]\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\n"
    },
    {
      "commit": "eea03c20ae38a55405c0865ed9adfccc400e4c8e",
      "tree": "09800af230cd1ef6d9d83ac5e057d8085feca601",
      "parents": [
        "e2f3b78557ff11f58d836e016900c3210f4fb1c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 18 18:15:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 18 18:15:46 2012 -0700"
      },
      "message": "Make wait_for_device_probe() also do scsi_complete_async_scans()\n\nCommit a7a20d103994 (\"sd: limit the scope of the async probe domain\")\nmake the SCSI device probing run device discovery in it\u0027s own async\ndomain.\n\nHowever, as a result, the partition detection was no longer synchronized\nby async_synchronize_full() (which, despite the name, only synchronizes\nthe global async space, not all of them).  Which in turn meant that\n\"wait_for_device_probe()\" would not wait for the SCSI partitions to be\nparsed.\n\nAnd \"wait_for_device_probe()\" was what the boot time init code relied on\nfor mounting the root filesystem.\n\nNow, most people never noticed this, because not only is it\ntiming-dependent, but modern distributions all use initrd.  So the root\nfilesystem isn\u0027t actually on a disk at all.  And then before they\nactually mount the final disk filesystem, they will have loaded the\nscsi-wait-scan module, which not only does the expected\nwait_for_device_probe(), but also does scsi_complete_async_scans().\n\n[ Side note: scsi_complete_async_scans() had also been partially broken,\n  but that was fixed in commit 43a8d39d0137 (\"fix async probe\n  regression\"), so that same commit a7a20d103994 had actually broken\n  setups even if you used scsi-wait-scan explicitly ]\n\nSolve this problem by just moving the scsi_complete_async_scans() call\ninto wait_for_device_probe().  Everybody who wants to wait for device\nprobing to finish really wants the SCSI probing to complete, so there\u0027s\nno reason not to do this.\n\nSo now \"wait_for_device_probe()\" really does what the name implies, and\nproperly waits for device probing to finish.  This also removes the now\nunnecessary extra calls to scsi_complete_async_scans().\n\nReported-and-tested-by: Artem S. Tashkinov \u003ct.artem@mailcity.com\u003e\nCc: Dan Williams \u003cdan.j.williams@gmail.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: linux-scsi \u003clinux-scsi@vger.kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11388c87d2abca1f01975ced28ce9eacea239104",
      "tree": "60e338e5ab817de96a461b08892e0663a316d67c",
      "parents": [
        "823d93640927d739f7c918b73fe5ec494fb27e17"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:00:58 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:00:58 2012 +0200"
      },
      "message": "PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock\n\nRequire processes wanting to use the wake_lock/wake_unlock sysfs\nfiles to have the CAP_BLOCK_SUSPEND capability, which also is\nrequired for the eventpoll EPOLLWAKEUP flag to be effective, so that\nall interfaces related to blocking autosleep depend on the same\ncapability.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@vger.kernel.org\nAcked-by: Michael Kerrisk \u003cmtk.man-pages@gmail.com\u003e\n"
    },
    {
      "commit": "823d93640927d739f7c918b73fe5ec494fb27e17",
      "tree": "dea028ddd214541b76c1c26f5f21ddc46157e67e",
      "parents": [
        "7664e969359917ba3212c5d6efdec494eaf8586e",
        "d9914cf66181b8aa0929775f5c6f675c6ebc3eb5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 18 23:58:24 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 18 23:58:24 2012 +0200"
      },
      "message": "Merge branch \u0027fixes\u0027 into pm-sleep\n\nThe \u0027fixes\u0027 branch contains material the next commit depends on.\n"
    },
    {
      "commit": "6f7024285864290259d6b4c36f9e84a4b89ec3c4",
      "tree": "6d6c429ae933289a993030609e2c2bb3627fda4f",
      "parents": [
        "c1e3209623ccd92f2f391a31ecf3895daa0238f3",
        "6b1859dba01c7d512b72d77e3fd7da8354235189"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 18 10:36:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 18 10:36:02 2012 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nOne more time/ntp fix pulled from Ingo Molnar.\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  ntp: Fix STA_INS/DEL clearing bug\n"
    }
  ],
  "next": "eec19d1a0d04c80e66eef634f7b8f460f2ca5643"
}
