)]}'
{
  "log": [
    {
      "commit": "8e4228e1edb922afa83366803a1e5b3fa8e987c2",
      "tree": "e741de337b409a430e0f34647e059dd35a84f72c",
      "parents": [
        "e365893236ca78fa1fe2482ccbdc30e9abde6027"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: move sysctl declarations to oom.h\n\nThe three oom killer sysctl variables (sysctl_oom_dump_tasks,\nsysctl_oom_kill_allocating_task, and sysctl_panic_on_oom) are better\ndeclared in include/linux/oom.h rather than kernel/sysctl.c.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6500947a9cbb81cfa07ff344f16955d9c6ebe61",
      "tree": "6544ae45f39370fd35cb44076dc4628bd852bc19",
      "parents": [
        "38f51568005873a241a8ae6bf28c9ddd3f6a11ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "message": "workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier\n\nCommit 6ee0578b (workqueue: mark init_workqueues as early_initcall)\nmade workqueue SMP initialization depend on workqueue_cpu_callback(),\nwhich however was registered as hotcpu_notifier() and didn\u0027t get\ncalled if CONFIG_HOTPLUG_CPU is not set.  This made gcwqs on non-boot\nCPUs not create their initial workers leading to boot failures.  Fix\nit by making it a cpu_notifier.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-bisected-by: walt \u003cw41ter@gmail.com\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "38f51568005873a241a8ae6bf28c9ddd3f6a11ed",
      "tree": "88adaff7c44514bf3bc2610473d4b7fc266178c6",
      "parents": [
        "2d53056973079e6c2ffc0d7ae3afbdd3d4f18ae3"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "message": "workqueue: add missing __percpu markup in kernel/workqueue.c\n\nworks in schecule_on_each_cpu() is a percpu pointer but was missing\n__percpu markup.  Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
      "tree": "8e3fce9f27fd058904c0a3247a5c5ebb8df9fbe8",
      "parents": [
        "cd816a0d84377c4e87f55cbe934a23417f9f5743",
        "5f202bd5ca64132cdd7f186656bc0221f257733d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  do_coredump: Do not take BKL\n  init: Remove the BKL from startup code\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "17879857821adad4e180c5d6457c3b8bbf1d0c0c",
      "tree": "28afa4b59847ca13b8d51a83fa04954916387de9",
      "parents": [
        "b62ad9ab181a67207a4c8c373461b587c4861a68",
        "4877c737283813bdb4bebfa3168c1585f6e3a8ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  xen: Do not suspend IPI IRQs.\n  powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts\n  ixp4xx-beeper: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupt\n  irq: Add new IRQ flag IRQF_NO_SUSPEND\n"
    },
    {
      "commit": "b62ad9ab181a67207a4c8c373461b587c4861a68",
      "tree": "ace1572964d81f5f9bbc10b7960c1f742832d744",
      "parents": [
        "af390084359a5de20046c901529b2b6a50b941cb",
        "b29230769e3482bbd62a07d6d9485371ee66a18f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "message": "Merge branch \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  um: Fix read_persistent_clock fallout\n  kgdb: Do not access xtime directly\n  powerpc: Clean up obsolete code relating to decrementer and timebase\n  powerpc: Rework VDSO gettimeofday to prevent time going backwards\n  clocksource: Add __clocksource_updatefreq_hz/khz methods\n  x86: Convert common clocksources to use clocksource_register_hz/khz\n  timekeeping: Make xtime and wall_to_monotonic static\n  hrtimer: Cleanup direct access to wall_to_monotonic\n  um: Convert to use read_persistent_clock\n  timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n  powerpc: Cleanup xtime usage\n  powerpc: Simplify update_vsyscall\n  time: Kill off CONFIG_GENERIC_TIME\n  time: Implement timespec_add\n  x86: Fix vtime/file timestamp inconsistencies\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n\nMuch less trivial conflicts in arch/powerpc/kernel/time.c resolved as\nper Thomas\u0027 earlier merge commit 47916be4e28c (\"Merge branch\n\u0027powerpc.cherry-picks\u0027 into timers/clocksource\")\n"
    },
    {
      "commit": "af390084359a5de20046c901529b2b6a50b941cb",
      "tree": "b73a6261d1b1f9fb34432cc9a47411a49330b8dc",
      "parents": [
        "7645e4320497b35ce9fb6c2269ebcd57af9fe735",
        "0fcb80818bc3ade5befd409051089f710adcf7b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Documentation: Add timers/timers-howto.txt\n  timer: Added usleep_range timer\n  Revert \"timer: Added usleep[_range] timer\"\n  clockevents: Remove the per cpu tick skew\n  posix_timer: Move copy_to_user(created_timer_id) down in timer_create()\n  timer: Added usleep[_range] timer\n  timers: Document meaning of deferrable timer\n"
    },
    {
      "commit": "ab69bcd66fb4be64edfc767365cb9eb084961246",
      "tree": "f7623585aee58978fc7814460fff517ec39138f2",
      "parents": [
        "c513b67e68787eceafeede32bcd0edbee45c0006",
        "6937e8f8c0135f2325194c372ada6dc655499992"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (28 commits)\n  driver core: device_rename\u0027s new_name can be const\n  sysfs: Remove owner field from sysfs struct attribute\n  powerpc/pci: Remove owner field from attribute initialization in PCI bridge init\n  regulator: Remove owner field from attribute initialization in regulator core driver\n  leds: Remove owner field from attribute initialization in bd2802 driver\n  scsi: Remove owner field from attribute initialization in ARCMSR driver\n  scsi: Remove owner field from attribute initialization in LPFC driver\n  cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n  Driver core: Add BUS_NOTIFY_BIND_DRIVER\n  driver core: fix memory leak on one error path in bus_register()\n  debugfs: no longer needs to depend on SYSFS\n  sysfs: Fix one more signature discrepancy between sysfs implementation and docs.\n  sysfs: fix discrepancies between implementation and documentation\n  dcdbas: remove a redundant smi_data_buf_free in dcdbas_exit\n  dmi-id: fix a memory leak in dmi_id_init error path\n  sysfs: sysfs_chmod_file\u0027s attr can be const\n  firmware: Update hotplug script\n  Driver core: move platform device creation helpers to .init.text (if MODULE\u003dn)\n  Driver core: reduce duplicated code for platform_device creation\n  Driver core: use kmemdup in platform_device_add_resources\n  ...\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "3a3527b6461b1298cc53ce72f336346739297ac8",
      "tree": "30bea5dd7163f13d6c962888feaf53f50ead4cce",
      "parents": [
        "cc77b4db0017dab014ad7ea3d297e10f5b5bf028",
        "a53f4b61a76a7e95139b8e8abba02e9bfe87a58a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Revert \"net: Make accesses to -\u003ebr_port safe for sparse RCU\"\n  mce: convert to rcu_dereference_index_check()\n  net: Make accesses to -\u003ebr_port safe for sparse RCU\n  vfs: add fs.h to define struct file\n  lockdep: Add an in_workqueue_context() lockdep-based test function\n  rcu: add __rcu API for later sparse checking\n  rcu: add an rcu_dereference_index_check()\n  tree/tiny rcu: Add debug RCU head objects\n  mm: remove all rcu head initializations\n  fs: remove all rcu head initializations, except on_stack initializations\n  powerpc: remove all rcu head initializations\n"
    },
    {
      "commit": "9779714c8af09d57527f18d9aa2207dcc27a8687",
      "tree": "52182f2289d9b7a77fbe119f4cd5726ef6494e66",
      "parents": [
        "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
        "65b5ac1479840a3e87f086d68e5ef91f3002e8e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 16:00:44 2010 -0700"
      },
      "message": "Merge branch \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kms-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kgdb,docs: Update the kgdb docs to include kms\n  drm_fb_helper: Preserve capability to use atomic kms\n  i915: when kgdb is active display compression should be off\n  drm/i915: use new fb debug hooks\n  drm: add KGDB/KDB support\n  fb: add hooks to handle KDB enter/exit\n  kgdboc: Add call backs to allow kernel mode switching\n  vt,console,kdb: automatically set kdb LINES variable\n  vt,console,kdb: implement atomic console enter/leave functions\n"
    },
    {
      "commit": "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
      "tree": "12b16a8abe303fd86c156ddfbb86caa469e45a98",
      "parents": [
        "03c0c29aff7e56b722eb6c47eace222b140d0377",
        "3fa43aba08c5b5a4b407e402606fbe463239b14a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  debug_core,kdb: fix crash when arch does not have single step\n  kgdb,x86: use macro HBP_NUM to replace magic number 4\n  kgdb,mips: remove unused kgdb_cpu_doing_single_step operations\n  mm,kdb,kgdb: Add a debug reference for the kdb kmap usage\n  KGDB: Remove set but unused newPC\n  ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n  ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n  kgdb,powerpc: Replace hardcoded offset by BREAK_INSTR_SIZE\n  arm,kgdb: Add ability to trap into debugger on notify_die\n  gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n  gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n  kgdb,arm: Individual register get/set for arm\n  kgdb,mips: Individual register get/set for mips\n  kgdb,x86: Individual register get/set for x86\n  kgdb,kdb: individual register set and and get API\n  gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n  kgdb: remove custom hex_to_bin()implementation\n"
    },
    {
      "commit": "676db4af043014e852f67ba0349dae0071bd11f3",
      "tree": "63435bb80dc87454c54aec82e9ba78671b26e688",
      "parents": [
        "45daef0fdcc44f6af86fdebc4fc7eb7c79375398"
      ],
      "author": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "message": "cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n\nWe really shouldn\u0027t be asking userspace to create new root filesystems.\nSo follow along with all of the other in-kernel filesystems, and provide\na mount point in sysfs.\n\nFor cgroupfs, this should be in /sys/fs/cgroup/  This change provides\nthat mount point when the cgroup filesystem is registered in the kernel.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "94f17cd7887ca681ea88fda1fd9bf65c0ca161f0",
      "tree": "9606c654afd4cf939dd4557d33fa28467f514050",
      "parents": [
        "14ec5394827eea8df7bbf14775c52fc48fc97a40"
      ],
      "author": {
        "name": "Ian Abbott",
        "email": "abbotti@mev.co.uk",
        "time": "Mon Jun 07 12:57:12 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:33 2010 -0700"
      },
      "message": "hotplug: Support kernel/hotplug sysctl variable when !CONFIG_NET\n\nThe kernel/hotplug sysctl variable (/proc/sys/kernel/hotplug file) was\nmade conditional on CONFIG_NET by commit\nf743ca5e10f4145e0b3e6d11b9b46171e16af7ce (applied in 2.6.18) to fix\nproblems with undefined references in 2.6.16 when CONFIG_HOTPLUG\u003dy \u0026\u0026\n!CONFIG_NET, but this restriction is no longer needed.\n\nThis patch makes the kernel/hotplug sysctl variable depend only on\nCONFIG_HOTPLUG.\n\nSigned-off-by: Ian Abbott \u003cabbotti@mev.co.uk\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.COM\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "90d3417a3a4e810d67081dd106f0e603a856978f",
      "tree": "b9791c255f6d98114dcb5a0abf9228db4091a1ed",
      "parents": [
        "552c7dbb3459c219e44a65fd6bca21b1227c0e33",
        "51f3d0f474aaebbc253100fa32a49c8256812330"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 13:49:55 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: cleanup comments, remove noinline\n  module: group post-relocation functions into post_relocation()\n  module: move module args strndup_user to just before use\n  module: pass load_info into other functions\n  module: fix sysfs cleanup for !CONFIG_SYSFS\n  module: sysfs cleanup\n  module: layout_and_allocate\n  module: fix crash in get_ksymbol() when oopsing in module init\n  module: kallsyms functions take struct load_info\n  module: refactor out section header rewriting: FIX modversions\n  module: refactor out section header rewriting\n  module: add load_info\n  module: reduce stack usage for each_symbol()\n  module: refactor load_module part 5\n  module: refactor load_module part 4\n  module: refactor load_module part 3\n  module: refactor load_module part 2\n  module: refactor load_module\n  module: module_unload_init() cleanup\n"
    },
    {
      "commit": "cdd854bc42b5e6c79bbbc40c6600d995ffe6e747",
      "tree": "18c4dcc07bbb8aeb2b23bc812cd60cc293f36cd8",
      "parents": [
        "bbc4fd12a635492ad9d12bb418124fa2d5f0d734",
        "42a0ae2282b512d1a8f6f020327f5f7b8f31a5ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 09:03:46 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (79 commits)\n  powerpc/8xx: Add support for the MPC8xx based boards from TQC\n  powerpc/85xx: Introduce support for the Freescale P1022DS reference board\n  powerpc/85xx: Adding DTS for the STx GP3-SSA MPC8555 board\n  powerpc/85xx: Change deprecated binding for 85xx-based boards\n  powerpc/tqm85xx: add a quirk for ti1520 PCMCIA bridge\n  powerpc/tqm85xx: update PCI interrupt-map attribute\n  powerpc/mpc8308rdb: support for MPC8308RDB board from Freescale\n  powerpc/fsl_pci: add quirk for mpc8308 pcie bridge\n  powerpc/85xx: Cleanup QE initialization for MPC85xxMDS boards\n  powerpc/85xx: Fix booting for P1021MDS boards\n  powerpc/85xx: Fix SWIOTLB initalization for MPC85xxMDS boards\n  powerpc/85xx: kexec for SMP 85xx BookE systems\n  powerpc/5200/i2c: improve i2c bus error recovery\n  of/xilinxfb: update tft compatible versions\n  powerpc/fsl-diu-fb: Support setting display mode using EDID\n  powerpc/5121: doc/dts-bindings: update doc of FSL DIU bindings\n  powerpc/5121: shared DIU framebuffer support\n  powerpc/5121: move fsl-diu-fb.h to include/linux\n  powerpc/5121: fsl-diu-fb: fix issue with re-enabling DIU area descriptor\n  powerpc/512x: add clock structure for Video-IN (VIU) unit\n  ...\n"
    },
    {
      "commit": "c3d1f1746b966907ba5ad2f75ddca24db8b21147",
      "tree": "548a25e104d8bdb906030b8d3bf78fbfde0e5817",
      "parents": [
        "66eddbfcc1f6610fa7c73c8d20a57eaf8e284e2f",
        "0d365753d0b7c26043fdfa97790411606fb40112"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 08:53:20 2010 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus: (150 commits)\n  MIPS: PowerTV: Separate PowerTV USB support from non-USB code\n  MIPS: strip the un-needed sections of vmlinuz\n  MIPS: Clean up the calculation of VMLINUZ_LOAD_ADDRESS\n  MIPS: Clean up arch/mips/boot/compressed/decompress.c\n  MIPS: Clean up arch/mips/boot/compressed/ld.script\n  MIPS: Unify the suffix of compressed vmlinux.bin\n  MIPS: PowerTV: Add Gaia platform definitions.\n  MIPS: BCM47xx: Fix nvram_getenv return value.\n  MIPS: Octeon: Allow more than 3.75GB of memory with PCIe\n  MIPS: Clean up notify_die() usage.\n  MIPS: Remove unused task_struct.trap_no field.\n  Documentation: Mention that KProbes is supported on MIPS\n  SAMPLES: kprobe_example: Make it print something on MIPS.\n  MIPS: kprobe: Add support.\n  MIPS: Add instrunction format for BREAK and SYSCALL\n  MIPS: kprobes: Define regs_return_value()\n  MIPS: Ritually kill stupid printk.\n  MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts.\n  MIPS: Octeon: Support 256 MSI on PCIe\n  MIPS: Decode core number for R2 CPUs.\n  ...\n"
    },
    {
      "commit": "81d4450732c68aa728f2c86c0c2993c6cfc3d032",
      "tree": "c332675648080d38e9f461286274534a16e7346b",
      "parents": [
        "b45cfba4e9005d64d419718e7ff7f7cab44c1994"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:30 2010 -0500"
      },
      "message": "vt,console,kdb: automatically set kdb LINES variable\n\nThe kernel console interface stores the number of lines it is\nconfigured to use. The kdb debugger can greatly benefit by knowing how\nmany lines there are on the console for the pager functionality\nwithout having the end user compile in the setting or have to\nrepeatedly change it at run time.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCC: David Airlie \u003cairlied@linux.ie\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa43aba08c5b5a4b407e402606fbe463239b14a",
      "tree": "83c6b8a61a1c8a8795504217518300417c49c6a6",
      "parents": [
        "df4939350b345ebb44937902827aa75b8ad4998c"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:25 2010 -0500"
      },
      "message": "debug_core,kdb: fix crash when arch does not have single step\n\nWhen an arch such as mips and microblaze does not implement either HW\nor software single stepping the debug core should re-enter kdb.  The\nkdb code will properly ignore the single step operation.  Attempting\nto single step the kernel without software or hardware support causes\nunpredictable kernel crashes.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "19063c776fe745fab11216422cf56489ee83b452",
      "tree": "a08994bd7badecc81ac04f4b6c4732986dea8588",
      "parents": [
        "955b61e597984745fb7d34c75708f6503b6aaeab"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n\nIn systems with more than one processor it is desirable to look at the\nper cpu trace buffers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "955b61e597984745fb7d34c75708f6503b6aaeab",
      "tree": "c928ca54a8231b0432e729d8b675e473a5db9104",
      "parents": [
        "3f0a55e3579a500ce9f5cdab70a5741f99769118"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n\nAdd in a helper function to allow the kdb shell to dump the ftrace\nbuffer.\n\nModify trace.c to expose the capability to iterate over the ftrace\nbuffer in a read only capacity.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "6d855b1d83c980c1283d98d2d63a2bd3a87e21b7",
      "tree": "d510c23f3387520b027ba30403db5981e82d3e90",
      "parents": [
        "55751145dc1e08e16df418cdd101661f5c6ac991"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:22 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:22 2010 -0500"
      },
      "message": "gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n\nPresently the usable registers definitions on x86 are not contiguous\nfor kgdb.  The x86 kgdb uses a case statement for the sparse register\naccesses.  The array which defines the registers (dbg_reg_def) should\nnot be used directly in order to safely work with sparse register\ndefinitions.\n\nSpecifically there was a problem when gdb accesses ORIG_AX, which is\naccessed only through the case statement.\n\nThis patch encodes register memory using the size information provided\nfrom the debugger which avoids the need to look up the size of the\nregister.  The dbg_set_reg() function always further validates the\ninputs from the debugger.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "55751145dc1e08e16df418cdd101661f5c6ac991",
      "tree": "c166155b118da5768341e4678478c5dd508a2b17",
      "parents": [
        "22eeef4bb2a7fd225089c0044060ed1fbf091958"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:21 2010 -0500"
      },
      "message": "gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n\nThe gdbserial \u0027p\u0027 and \u0027P\u0027 packets allow gdb to individually get and\nset registers instead of querying for all the available registers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "534af1082329392bc29f6badf815e69ae2ae0f4c",
      "tree": "e163c1d5c418334538447983b7d5934e05fa4d71",
      "parents": [
        "84a0bd5b2830722cf80ff6ad33ef98101a947e14"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:20 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:20 2010 -0500"
      },
      "message": "kgdb,kdb: individual register set and and get API\n\nThe kdb shell specification includes the ability to get and set\narchitecture specific registers by name.\n\nFor the time being individual register get and set will be implemented\non a per architecture basis.  If an architecture defines\nDBG_MAX_REG_NUM \u003e 0 then kdb and the gdbstub will use the capability\nfor individually getting and setting architecture specific registers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "84a0bd5b2830722cf80ff6ad33ef98101a947e14",
      "tree": "942f596d5a6b48bde181ed2ab063d697a0f2e73d",
      "parents": [
        "a9fa20a7af1f152d2d89c44c274a310ac654e3ad"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "message": "gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n\nThe gdb debugger understands how to parse short versions of the thread\nreference string as long as the bytes are paired in sets of two\ncharacters.  The kgdb implementation was always sending 8 leading\nzeros which could be omitted, and further optimized in the case of\nnon-negative thread numbers.  The negative numbers are used to\nreference a specific cpu in the case of kgdb.\n\nAn example of the previous i386 stop packet looks like:\n    T05thread:00000000000003bb;\n\nNew stop packet response:\n    T05thread:03bb;\n\nThe previous ThreadInfo response looks like:\n    m00000000fffffffe,0000000000000001,0000000000000002,0000000000000003,0000000000000004,0000000000000005,0000000000000006,0000000000000007,000000000000000c,0000000000000088,000000000000008a,000000000000008b,000000000000008c,000000000000008d,000000000000008e,00000000000000d4,00000000000000d5,00000000000000dd\n\nNew ThreadInfo response:\n    mfffffffe,01,02,03,04,05,06,07,0c,88,8a,8b,8c,8d,8e,d4,d5,dd\n\nA few bytes saved means better response time when using kgdb over a\nserial line.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "a9fa20a7af1f152d2d89c44c274a310ac654e3ad",
      "tree": "bc6f6ef6c3081a7ae4bbc27b21d146e2b82a8279",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "ext-andriy.shevchenko@nokia.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:19 2010 -0500"
      },
      "message": "kgdb: remove custom hex_to_bin()implementation\n\nSigned-off-by: Andy Shevchenko \u003cext-andriy.shevchenko@nokia.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "034260d6779087431a8b2f67589c68b919299e5c",
      "tree": "9d9f1def96651ae098c87687a640079ddd2aafd4",
      "parents": [
        "d745866e4d8c0675bab90868b5e4a8fcd053eff2"
      ],
      "author": {
        "name": "Kevin Cernekee",
        "email": "cernekee@gmail.com",
        "time": "Thu Jun 03 22:11:25 2010 -0700"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Aug 05 13:25:59 2010 +0100"
      },
      "message": "printk: fix delayed messages from CPU hotplug events\n\nWhen a secondary CPU is being brought up, it is not uncommon for\nprintk() to be invoked when cpu_online(smp_processor_id()) \u003d\u003d 0.  The\ncase that I witnessed personally was on MIPS:\n\nhttp://lkml.org/lkml/2010/5/30/4\n\nIf (can_use_console() \u003d\u003d 0), printk() will spool its output to log_buf\nand it will be visible in \"dmesg\", but that output will NOT be echoed to\nthe console until somebody calls release_console_sem() from a CPU that\nis online.  Therefore, the boot time messages from the new CPU can get\nstuck in \"limbo\" for a long time, and might suddenly appear on the\nscreen when a completely unrelated event (e.g. \"eth0: link is down\")\noccurs.\n\nThis patch modifies the console code so that any pending messages are\nautomatically flushed out to the console whenever a CPU hotplug\noperation completes successfully or aborts.\n\nThe issue was seen on 2.6.34.\n\nOriginal patch by Kevin Cernekee with cleanups by akpm and additional fixes\nby Santosh Shilimkar.  This patch superseeds\nhttps://patchwork.linux-mips.org/patch/1357/.\n\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nTo: \u003cmingo@elte.hu\u003e\nTo: \u003cakpm@linux-foundation.org\u003e\nTo: \u003csimon.kagstrom@netinsight.net\u003e\nTo: \u003cDavid.Woodhouse@intel.com\u003e\nTo: \u003clethal@linux-sh.org\u003e\nCc: \u003clinux-kernel@vger.kernel.org\u003e\nCc: \u003clinux-mips@linux-mips.org\u003e\nReviewed-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/1534/\nLKML-Reference: \u003cede63b5a20af951c755736f035d1e787772d7c28@localhost\u003e\nLKML-Reference: \u003cEAF47CD23C76F840A9E7FCE10091EFAB02C5DB6D1F@dbde02.ent.ti.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "0bcfe75807944106a3aa655a54bb610d62f3a7f5",
      "tree": "d48d848e09d1bf48fe7fa23e9226f38ef342eed4",
      "parents": [
        "eebef74695e1498e04e5f85be9c6f84bd2e7358a",
        "396e894d289d69bacf5acd983c97cd6e21a14c08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nConflicts:\n\tinclude/linux/sched.h\n\nMerge reason: Add the leftover .35 urgent bits, fix the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fc9ea5a1e53ee54f681e226d735008e2a6f8f470",
      "tree": "fe59eb9aef5d797ae387885e6833c9c4d05735ad",
      "parents": [
        "61be7fdec2f51b99570cd5dcc30c7848c8e56513",
        "9da79ab83ee33ddc1fdd0858fd3d70925a1bde99"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 08:46:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 08:46:15 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/core\n"
    },
    {
      "commit": "61be7fdec2f51b99570cd5dcc30c7848c8e56513",
      "tree": "4a73ee635bc3e35dc54f75caddd26ffb6238bb5c",
      "parents": [
        "12a81c8df13c60904febcafcf6b90ca1acb67122",
        "eb703f98191a505f78d0066712ad67d5dedc4c90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 08:45:05 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 08:45:05 2010 +0200"
      },
      "message": "Merge branch \u0027perf/nmi\u0027 into perf/core\n\nConflicts:\n\tkernel/Makefile\n\nMerge reason: Add the now complete topic, fix the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51f3d0f474aaebbc253100fa32a49c8256812330",
      "tree": "7aad934d5c50231568e39be992d733304e0ecfcd",
      "parents": [
        "811d66a0e1e99902d365497eec7884113a2665bd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 +0930"
      },
      "message": "module: cleanup comments, remove noinline\n\nOn my (32-bit x86) machine, sys_init_module() uses 124 bytes of stack\nonce load_module() is inlined.\n\nThis effectively reverts ffb4ba76 which inlined it due to stack\npressure.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "811d66a0e1e99902d365497eec7884113a2665bd",
      "tree": "b28c4ba87c0f9ec23837f9abc75b6e257a6e0061",
      "parents": [
        "6526c534b2677ca601b7b92851437feb041d02a1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:13 2010 +0930"
      },
      "message": "module: group post-relocation functions into post_relocation()\n\nThis simply hoists more code out of load_module; we also put the\nidentification of the extable and dynamic debug table in with the\nothers in find_module_sections().\n\nWe move the taint check to the actual add/remove of the dynamic debug\ninfo: this is certain (find_module_sections is too early).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "6526c534b2677ca601b7b92851437feb041d02a1",
      "tree": "d6d0f6d8cf2b685b2d1d345d938ca5816860dd89",
      "parents": [
        "49668688dd5a5f46c72f965835388ed16c596055"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:12 2010 +0930"
      },
      "message": "module: move module args strndup_user to just before use\n\nInstead of copying and allocating the args and storing it in\nload_info, we can just allocate them right before we need them.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "49668688dd5a5f46c72f965835388ed16c596055",
      "tree": "da42c22348941617e65227a6ef48f1937d840fcc",
      "parents": [
        "36b0360d17dc3928cc96347a18a3a1cdbb7e506d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 +0930"
      },
      "message": "module: pass load_info into other functions\n\nPass the struct load_info into all the other functions in module\nloading.  This neatens things and makes them more consistent.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "36b0360d17dc3928cc96347a18a3a1cdbb7e506d",
      "tree": "e963d162006f842a475435988eba04a579114f0d",
      "parents": [
        "8f6d037815466cb25e7de8f00536eca71d94d4c3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:10 2010 +0930"
      },
      "message": "module: fix sysfs cleanup for !CONFIG_SYSFS\n\nRestore the stub module_remove_modinfo_attrs, remove the now-unused\n!CONFIG_SYSFS module_sysfs_init.\n\nAlso, rename mod_kobject_remove() to mod_sysfs_teardown() as\nit is the logical counterpart to mod_sysfs_setup now.\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8f6d037815466cb25e7de8f00536eca71d94d4c3",
      "tree": "2ac887a230476a7550ff0360dd1ae0b678da8d82",
      "parents": [
        "d913188c75191114051cf0bac75dad444c6080fa"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 +0930"
      },
      "message": "module: sysfs cleanup\n\nWe change the sysfs functions to take struct load_info, and call\nthem all in mod_sysfs_setup().\n\nWe also clean up the #ifdefs a little.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d913188c75191114051cf0bac75dad444c6080fa",
      "tree": "1c32e48b3524f775ef9998f71b016d325205697b",
      "parents": [
        "511ca6ae43fbe0a7c9e0b50ad275f7ef24ef3b58"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:09 2010 +0930"
      },
      "message": "module: layout_and_allocate\n\nlayout_and_allocate() does everything up to and including the final\nstruct module placement inside the allocated module memory.  We have\nto store the symbol layout information in our struct load_info though.\n\nThis avoids the nasty code we had before where \u0027mod\u0027 pointed first\nto the version inside the temporary allocation containing the entire\nfile, then later was moved to point to the real struct module: now\nthe main code only ever sees the final module address.\n\n(Includes fix for the Tony Luck-found Linus-diagnosed failure path\n error).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "511ca6ae43fbe0a7c9e0b50ad275f7ef24ef3b58",
      "tree": "596d11de1a99dfce758465de009a97ccdb7da011",
      "parents": [
        "eded41c1c6466081e0eb00d38719c6e6ee81a5d4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 +0930"
      },
      "message": "module: fix crash in get_ksymbol() when oopsing in module init\n\nAndrew had the sole pleasure of tickling this bug in linux-next; when we set\nup \"info-\u003estrtab\" it\u0027s pointing into the temporary copy of the module.  For\nmost uses that is fine, but kallsyms keeps a pointer around during module\nload (inside mod-\u003estrtab).\n\nIf we oops for some reason inside a module\u0027s init function, kallsyms will use\nthe mod-\u003estrtab pointer into the now-freed temporary module copy.\n\n(Later oopses work fine: after init we overwrite mod-\u003estrtab to point to a\n compacted core-only strtab).\n\nReported-by: Andrew \"Grumpy\" Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty \"Buggy\" Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: Andrew \"Happy\" Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "eded41c1c6466081e0eb00d38719c6e6ee81a5d4",
      "tree": "d4c015b489b57503af437fe385c4fc07db232ad6",
      "parents": [
        "d6df72a06e067139d491da4a9d14d92ad39e7a50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:08 2010 +0930"
      },
      "message": "module: kallsyms functions take struct load_info\n\nSimple refactor causes us to lift struct definition to top of file.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d6df72a06e067139d491da4a9d14d92ad39e7a50",
      "tree": "2a7d0387df66c2d6f510cd9a24c622bf75ca669c",
      "parents": [
        "8b5f61a795fe37be090b0fd18b6b7271db9298e0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:07 2010 +0930"
      },
      "message": "module: refactor out section header rewriting: FIX modversions\n\nWe can\u0027t do the find_sec after removing the SHF_ALLOC flags; it won\u0027t\nfind the sections.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8b5f61a795fe37be090b0fd18b6b7271db9298e0",
      "tree": "4440e449af9207b25e62b4d8ad0dc16500720e65",
      "parents": [
        "3264d3f9dd532ed9c3eb9491619e3f485b72747f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: refactor out section header rewriting\n\nPut all the \"rewrite and check section headers\" in one place.  This\nadds another iteration over the sections, but it\u0027s far clearer.  We\niterate once for every find_section() so we already iterate over many\ntimes.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3264d3f9dd532ed9c3eb9491619e3f485b72747f",
      "tree": "49a56f653c98578ef13c33a8fb6f7ba110517cf8",
      "parents": [
        "44032e631691adf1f406843d5e54deb795973ff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 02 11:01:06 2010 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: add load_info\n\nBtw, here\u0027s a patch that _looks_ large, but it really pretty trivial, and\nsets things up so that it would be way easier to split off pieces of the\nmodule loading.\n\nThe reason it looks large is that it creates a \"module_info\" structure\nthat contains all the module state that we\u0027re building up while loading,\ninstead of having individual variables for all the indices etc.\n\nSo the patch ends up being large, because every \"symindex\" access instead\nbecomes \"info.index.sym\" etc. That may be a few characters longer, but it\nthen means that we can just pass a pointer to that \"info\" structure\naround. and let all the pieces fill it in very naturally.\n\nAs an example of that, the patch also moves the initialization of all\nthose convenience variables into a \"setup_module_info()\" function. And at\nthis point it really does become very natural to start to peel off some of\nthe error labels and move them into the helper functions - now the\n\"truncated\" case is gone, and is handled inside that setup function\ninstead.\n\nSo maybe you don\u0027t like this approach, and it does make the variable\naccesses a bit longer, but I don\u0027t think unreadably so. And the patch\nreally does look big and scary, but there really should be absolutely no\nsemantic changes - most of it was a trivial and mindless rename.\n\nIn fact, it was so mindless that I on purpose kept the existing helper\nfunctions looking like this:\n\n-       err \u003d check_modinfo(mod, sechdrs, infoindex, versindex);\n+       err \u003d check_modinfo(mod, info.sechdrs, info.index.info, info.index.vers);\n\nrather than changing them to just take the \"info\" pointer. IOW, a second\nphase (if you think the approach is ok) would change that calling\nconvention to just do\n\n\terr \u003d check_modinfo(mod, \u0026info);\n\n(and same for \"layout_sections()\", \"layout_symtabs()\" etc.) Similarly,\nwhile right now it makes things _look_ bigger, with things like this:\n\n\tversindex \u003d find_sec(hdr, sechdrs, secstrings, \"__versions\");\n\nbecoming\n\n\tinfo-\u003eindex.vers \u003d find_sec(info-\u003ehdr, info-\u003esechdrs, info-\u003esecstrings, \"__versions\");\n\nin the new \"setup_module_info()\" function, that\u0027s again just a result of\nit being a search-and-replace patch. By using the \u0027info\u0027 pointer, we could\njust change the \u0027find_sec()\u0027 interface so that it ends up being\n\n\tinfo-\u003eindex.vers \u003d find_sec(info, \"__versions\");\n\ninstead, and then we\u0027d actually have a shorter and more readable line. So\nfor a lot of those mindless variable name expansions there\u0027s would be room\nfor separate cleanups.\n\nI didn\u0027t move quite everything in there - if we do this to layout_symtabs,\nfor example, we\u0027d want to move the percpu, symoffs, stroffs, *strmap\nvariables to be fields in that module_info structure too. But that\u0027s a\nmuch smaller patch, I moved just the really core stuff that is currently\nbeing set up and used in various parts.\n\nBut even in this rough form, it removes close to 70 lines from that\nfunction (but adds 22 lines overall, of course - the structure definition,\nthe helper function declarations and call-sites etc etc).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "44032e631691adf1f406843d5e54deb795973ff7",
      "tree": "e9cb4f72974386a2b174bf6e21f41be9aece7a10",
      "parents": [
        "22e268ebecc549f1b1907f114cb44d6044bdee3c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:05 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:06 2010 +0930"
      },
      "message": "module: reduce stack usage for each_symbol()\n\nAnd now that I\u0027m looking at that call-chain (to see if it would make sense\nto use some other more specific lock - doesn\u0027t look like it: all the\nreaders are using RCU and this is the only writer), I also give you this\ntrivial one-liner. It changes each_symbol() to not put that constant array\non the stack, resulting in changing\n\n        movq    $C.388.31095, %rsi      #, tmp85\n        subq    $376, %rsp      #,\n        movq    %rdi, %rbx      # fn, fn\n        leaq    -208(%rbp), %rdi        #, tmp84\n        movq    %rbx, %rdx      # fn,\n        rep movsl\n        xorl    %esi, %esi      #\n        leaq    -208(%rbp), %rdi        #, tmp87\n        movq    %r12, %rcx      # data,\n        call    each_symbol_in_section.clone.0  #\n\ninto\n\n        xorl    %esi, %esi      #\n        subq    $216, %rsp      #,\n        movq    %rdi, %rbx      # fn, fn\n        movq    $arr.31078, %rdi        #,\n        call    each_symbol_in_section.clone.0  #\n\nwhich is not so much about being obviously shorter and simpler because we\ndon\u0027t unnecessarily copy that constant array around onto the stack, but\nalso about having a much smaller stack footprint (376 vs 216 bytes - see\nthe update of \u0027rsp\u0027).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "22e268ebecc549f1b1907f114cb44d6044bdee3c",
      "tree": "a1159e36de2a0ed6d3dcadd61622976971dd3b2d",
      "parents": [
        "9f85a4bbb1cf56f65b3d065a5f88204a757f2325"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 +0930"
      },
      "message": "module: refactor load_module part 5\n\n1) Extract out the relocation loop into apply_relocations\n2) Extract license and version checks into check_module_license_and_versions\n3) Extract icache flushing into flush_module_icache\n4) Move __obsparm warning into find_module_sections\n5) Move license setting into check_modinfo.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9f85a4bbb1cf56f65b3d065a5f88204a757f2325",
      "tree": "28d674a40dcab0e0c31349736718993f1e9377d4",
      "parents": [
        "40dd2560ec2df21036db9ec8b971f92d98fd1969"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:04 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:05 2010 +0930"
      },
      "message": "module: refactor load_module part 4\n\nAllocate references inside module_unload_init(), clean up inside\nmodule_unload_free().\n\nThis version fixed to do allocation before __this_cpu_write, thanks to\nbug reports from linux-next from Dave Young \u003chidave.darkstar@gmail.com\u003e\nand Stephen Rothwell \u003csfr@canb.auug.org.au\u003e.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "40dd2560ec2df21036db9ec8b971f92d98fd1969",
      "tree": "a5785afb92619379172c9ee5b05501e075cc7bff",
      "parents": [
        "65b8a9b4d5525348e55cf63a43517610ee8e0970"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:03 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:04 2010 +0930"
      },
      "message": "module: refactor load_module part 3\n\nExtract out the allocation and copying in from userspace, and the\nfirst set of modinfo checks.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "65b8a9b4d5525348e55cf63a43517610ee8e0970",
      "tree": "1661d4bc368c768e803a1de4ddb0191bb71acab8",
      "parents": [
        "f91a13bb99b73961d4e2743a6ff296ac553abc4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:02 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:03 2010 +0930"
      },
      "message": "module: refactor load_module part 2\n\nHere\u0027s a second one. It\u0027s slightly less trivial - since we now have error\ncases - and equally untested so it may well be totally broken. But it also\ncleans up a bit more, and avoids one of the goto targets, because the\n\"move_module()\" helper now does both allocations or none.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "f91a13bb99b73961d4e2743a6ff296ac553abc4f",
      "tree": "eb922cfbd4af965491200d307baf3b60b8b0319e",
      "parents": [
        "2409e74278b7fb917d39ef6d3c16223c04a386f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 12:59:02 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:02 2010 +0930"
      },
      "message": "module: refactor load_module\n\nI\u0027d start from the trivial stuff. There\u0027s a fair amount of straight-line\ncode that just makes the function hard to read just because you have to\npage up and down so far. Some of it is trivial to just create a helper\nfunction for.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "2409e74278b7fb917d39ef6d3c16223c04a386f2",
      "tree": "a5b9fe3cefc536960d3e5de819e46f375ed5476c",
      "parents": [
        "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Aug 05 12:59:00 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Aug 05 12:59:02 2010 +0930"
      },
      "message": "module: module_unload_init() cleanup\n\nNo need to clear mod-\u003erefptr in module_unload_init(), since\nalloc_percpu() already clears allocated chunks.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed unused var)\n"
    },
    {
      "commit": "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4",
      "tree": "5adc1ff2eaf64d450bf28bb6b2ce890db2567288",
      "parents": [
        "5cf65713f87775c548e3eb48dbafa32e12f28000",
        "0ea6e61122196509af82cc4f36cbdaacbefb8227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)\n  Documentation: update broken web addresses.\n  fix comment typo \"choosed\" -\u003e \"chosen\"\n  hostap:hostap_hw.c Fix typo in comment\n  Fix spelling contorller -\u003e controller in comments\n  Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -\u003e Fault\n  fs/Kconfig: Fix typo Userpace -\u003e Userspace\n  Removing dead MACH_U300_BS26\n  drivers/infiniband: Remove unnecessary casts of private_data\n  fs/ocfs2: Remove unnecessary casts of private_data\n  libfc: use ARRAY_SIZE\n  scsi: bfa: use ARRAY_SIZE\n  drm: i915: use ARRAY_SIZE\n  drm: drm_edid: use ARRAY_SIZE\n  synclink: use ARRAY_SIZE\n  block: cciss: use ARRAY_SIZE\n  comment typo fixes: charater \u003d\u003e character\n  fix comment typos concerning \"challenge\"\n  arm: plat-spear: fix typo in kerneldoc\n  reiserfs: typo comment fix\n  update email address\n  ...\n"
    },
    {
      "commit": "b7c8e55db7141dcbb9d5305a3260fa0ed62a1bcc",
      "tree": "59fbd52d8e80e5a83d9747961d28aaf4d400613a",
      "parents": [
        "ffd386a9a8273dcfa61705d0b349eebc7525ef87",
        "4015d9a865e3bcc42d88bedc8ce1551000bab664"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:23:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:23:14 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (39 commits)\n  random: Reorder struct entropy_store to remove padding on 64bits\n  padata: update API documentation\n  padata: Remove padata_get_cpumask\n  crypto: pcrypt - Update pcrypt cpumask according to the padata cpumask notifier\n  crypto: pcrypt - Rename pcrypt_instance\n  padata: Pass the padata cpumasks to the cpumask_change_notifier chain\n  padata: Rearrange set_cpumask functions\n  padata: Rename padata_alloc functions\n  crypto: pcrypt - Dont calulate a callback cpu on empty callback cpumask\n  padata: Check for valid cpumasks\n  padata: Allocate cpumask dependend recources in any case\n  padata: Fix cpu index counting\n  crypto: geode_aes - Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)\n  pcrypt: Added sysfs interface to pcrypt\n  padata: Added sysfs primitives to padata subsystem\n  padata: Make two separate cpumasks\n  padata: update documentation\n  padata: simplify serialization mechanism\n  padata: make padata_do_parallel to return zero on success\n  padata: Handle empty padata cpumasks\n  ...\n"
    },
    {
      "commit": "6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7",
      "tree": "8f3892fc44f1e403675a6d7e88fda5c70e56ee4c",
      "parents": [
        "5abd9ccced7a726c817dd6b5b96bc933859138d1",
        "3ff1c25927e3af61c6bf0e4ed959504058ae4565"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)\n  phy/marvell: add 88ec048 support\n  igb: Program MDICNFG register prior to PHY init\n  e1000e: correct MAC-PHY interconnect register offset for 82579\n  hso: Add new product ID\n  can: Add driver for esd CAN-USB/2 device\n  l2tp: fix export of header file for userspace\n  can-raw: Fix skb_orphan_try handling\n  Revert \"net: remove zap_completion_queue\"\n  net: cleanup inclusion\n  phy/marvell: add 88e1121 interface mode support\n  u32: negative offset fix\n  net: Fix a typo from \"dev\" to \"ndev\"\n  igb: Use irq_synchronize per vector when using MSI-X\n  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0\n  e1000e: Fix irq_synchronize in MSI-X case\n  e1000e: register pm_qos request on hardware activation\n  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice\n  net: Add getsockopt support for TCP thin-streams\n  cxgb4: update driver version\n  cxgb4: add new PCI IDs\n  ...\n\nManually fix up conflicts in:\n - drivers/net/e1000e/netdev.c: due to pm_qos registration\n   infrastructure changes\n - drivers/net/phy/marvell.c: conflict between adding 88ec048 support\n   and cleaning up the IDs\n - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req\n   conflict (registration change vs marking it static)\n"
    },
    {
      "commit": "694f690d27dadccc8cb9d90532e76593b61fe098",
      "tree": "ea641e53ae530d0d3708fbfcab8109cc5e840d21",
      "parents": [
        "e75aa85892b2ee78c79edac720868cbef16e62eb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Aug 04 16:59:14 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:17:10 2010 -0700"
      },
      "message": "CRED: Fix RCU warning due to previous patch fixing __task_cred()\u0027s checks\n\nCommit 8f92054e7ca1 (\"CRED: Fix __task_cred()\u0027s lockdep check and banner\ncomment\") fixed the lockdep checks on __task_cred().  This has shown up\na place in the signalling code where a lock should be held - namely that\ncheck_kill_permission() requires its callers to hold the RCU lock.\n\nFix group_send_sig_info() to get the RCU read lock around its call to\ncheck_kill_permission().\n\nWithout this patch, the following warning can occur:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: suspicious rcu_dereference_check() usage. ]\n  ---------------------------------------------------\n  kernel/signal.c:660 invoked rcu_dereference_check() without protection!\n  ...\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f46e9913faeebcb6bd29edf795f12b60acbff171",
      "tree": "1ed8871d0ebd638094d27317de1d8a53712ae15a",
      "parents": [
        "8d91530c5fd7f0b1e8c4ddfea2905e55a178569b",
        "8d4b9d1bfef117862a2889dec4dac227068544c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:14:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:14:36 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Runtime: Add runtime PM statistics (v3)\n  PM / Runtime: Make runtime_status attribute not debug-only (v. 2)\n  PM: Do not use dynamically allocated objects in pm_wakeup_event()\n  PM / Suspend: Fix ordering of calls in suspend error paths\n  PM / Hibernate: Fix snapshot error code path\n  PM / Hibernate: Fix hibernation_platform_enter()\n  pm_qos: Get rid of the allocation in pm_qos_add_request()\n  pm_qos: Reimplement using plists\n  plist: Add plist_last\n  PM: Make it possible to avoid races between wakeup and system sleep\n  PNPACPI: Add support for remote wakeup\n  PM: describe kernel policy regarding wakeup defaults (v. 2)\n  PM / Hibernate: Fix typos in comments in kernel/power/swap.c\n"
    },
    {
      "commit": "9da79ab83ee33ddc1fdd0858fd3d70925a1bde99",
      "tree": "116f9d3c256a91ede964ebbfd3779949cc5953d4",
      "parents": [
        "b83f920e179101a54721e5ab1d6c3edfb9d4bcbb"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Jun 30 14:15:48 2010 +0530"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Aug 04 12:41:23 2010 -0300"
      },
      "message": "tracing/kprobes: unregister_trace_probe needs to be called under mutex\n\nComment in unregister_trace_probe() says probe_lock will be held when it\ngets called. However there is a case where it might called without the\nprobe_lock being held. Also since we are traversing the probe_list and\ndeleting an element from the probe_list, probe_lock should be held.\n\nThis was first pointed in uprobes traceevent review by Frederic\nWeisbecker here.  (http://lkml.org/lkml/2010/5/12/106)\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100630084548.GA10325@linux.vnet.ibm.com\u003e\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f",
      "tree": "854ab394486288d40fa8179cbfaf66e8bdc44b0f",
      "parents": [
        "73b2c7165b76b20eb1290e7efebc33cfd21db1ca",
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "5e7f5a178bba45c5aca3448fddecabd4e28f1f6b",
      "tree": "761019b04370c87f7fba955dea631e3008f010f6",
      "parents": [
        "e1b004c3ef9c59db5f013528628b51c8653155ec"
      ],
      "author": {
        "name": "Patrick Pannuto",
        "email": "ppannuto@codeaurora.org",
        "time": "Mon Aug 02 15:01:04 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 04 11:00:45 2010 +0200"
      },
      "message": "timer: Added usleep_range timer\n\nusleep_range is a finer precision implementations of msleep\nand is designed to be a drop-in replacement for udelay where\na precise sleep / busy-wait is unnecessary.\n\nSince an easy interface to hrtimers could lead to an undesired\nproliferation of interrupts, we provide only a \"range\" API,\nforcing the caller to think about an acceptable tolerance on\nboth ends and hopefully avoiding introducing another interrupt.\n\nINTRO\n\nAs discussed here ( http://lkml.org/lkml/2007/8/3/250 ), msleep(1) is not\nprecise enough for many drivers (yes, sleep precision is an unfair notion,\nbut consistently sleeping for ~an order of magnitude greater than requested\nis worth fixing). This patch adds a usleep API so that udelay does not have\nto be used. Obviously not every udelay can be replaced (those in atomic\ncontexts or being used for simple bitbanging come to mind), but there are\nmany, many examples of\n\nmydriver_write(...)\n/* Wait for hardware to latch */\nudelay(100)\n\nin various drivers where a busy-wait loop is neither beneficial nor\nnecessary, but msleep simply does not provide enough precision and people\nare using a busy-wait loop instead.\n\nCONCERNS FROM THE RFC\n\nWhy is udelay a problem / necessary? Most callers of udelay are in device/\ndriver initialization code, which is serial...\n\n\tAs I see it, there is only benefit to sleeping over a delay; the\n\tnotion of \"refactoring\" areas that use udelay was presented, but\n\tI see usleep as the refactoring. Consider i2c, if the bus is busy,\n\tyou need to wait a bit (say 100us) before trying again, your\n\tcurrent options are:\n\n\t\t* udelay(100)\n\t\t* msleep(1) \u003c-- As noted above, actually as high as ~20ms\n\t\t\t\ton some platforms, so not really an option\n\t\t* Manually set up an hrtimer to try again in 100us (which\n\t\t  is what usleep does anyway...)\n\n\tPeople choose the udelay route because it is EASY; we need to\n\tprovide a better easy route.\n\n\tDevice / driver / boot code is *currently* serial, but every few\n\tmonths someone makes noise about parallelizing boot, and IMHO, a\n\tlittle forward-thinking now is one less thing to worry about\n\tif/when that ever happens\n\nudelay\u0027s could be preempted\n\n\tSure, but if udelay plans on looping 1000 times, and it gets\n\tpreempted on loop 200, whenever it\u0027s scheduled again, it is\n\tgoing to do the next 800 loops.\n\nIs the interruptible case needed?\n\n\tProbably not, but I see usleep as a very logical parallel to msleep,\n\tso it made sense to include the \"full\" API. Processors are getting\n\tfaster (albeit not as quickly as they are becoming more parallel),\n\tso if someone wanted to be interruptible for a few usecs, why not\n\tlet them? If this is a contentious point, I\u0027m happy to remove it.\n\nOTHER THOUGHTS\n\nI believe there is also value in exposing the usleep_range option; it gives\nthe scheduler a lot more flexibility and allows the programmer to express\nhis intent much more clearly; it\u0027s something I would hope future driver\nwriters will take advantage of.\n\nTo get the results in the NUMBERS section below, I literally s/udelay/usleep\nthe kernel tree; I had to go in and undo the changes to the USB drivers, but\neverything else booted successfully; I find that extremely telling in and\nof itself -- many people are using a delay API where a sleep will suit them\njust fine.\n\nSOME ATTEMPTS AT NUMBERS\n\nIt turns out that calculating quantifiable benefit on this is challenging,\nso instead I will simply present the current state of things, and I hope\nthis to be sufficient:\n\nHow many udelay calls are there in 2.6.35-rc5?\n\n\tudealy(ARG) \u003e\u003d\t| COUNT\n\t1000\t\t| 319\n\t500\t\t| 414\n\t100\t\t| 1146\n\t20\t\t| 1832\n\nI am working on Android, so that is my focus for this. The following table\nis a modified usleep that simply printk\u0027s the amount of time requested to\nsleep; these tests were run on a kernel with udelay \u003e\u003d 20 --\u003e usleep\n\n\"boot\" is power-on to lock screen\n\"power collapse\" is when the power button is pushed and the device suspends\n\"resume\" is when the power button is pushed and the lock screen is displayed\n         (no touchscreen events or anything, just turning on the display)\n\"use device\" is from the unlock swipe to clicking around a bit; there is no\n\tsd card in this phone, so fail loading music, video, camera\n\n\tACTION\t\t| TOTAL NUMBER OF USLEEP CALLS\t| NET TIME (us)\n\tboot\t\t| 22\t\t\t\t| 1250\n\tpower-collapse\t| 9\t\t\t\t| 1200\n\tresume\t\t| 5\t\t\t\t| 500\n\tuse device\t| 59\t\t\t\t| 7700\n\nThe most interesting category to me is the \"use device\" field; 7700us of\nbusy-wait time that could be put towards better responsiveness, or at the\nleast less power usage.\n\nSigned-off-by: Patrick Pannuto \u003cppannuto@codeaurora.org\u003e\nCc: apw@canonical.com\nCc: corbet@lwn.net\nCc: arjan@linux.intel.com\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e1b004c3ef9c59db5f013528628b51c8653155ec",
      "tree": "2c60763d361df84131852c3351c7fc0cd754614d",
      "parents": [
        "af5ab277ded04bd9bc6b048c5a2f0e7d70ef0867"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 04 10:53:00 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 04 10:53:00 2010 +0200"
      },
      "message": "Revert \"timer: Added usleep[_range] timer\"\n\nThis reverts commit 22b8f15c2f7130bb0386f548428df2ffd4e81903 to merge\nan advanced version.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "412a4ac5e9cf7fdeb6af562c25547a9b9da7674f",
      "tree": "a8ce13cbc9c47c99799e5e3e3ad26ba78274ee73",
      "parents": [
        "e8e5c2155b0035b6e04f29be67f6444bc914005b",
        "0c2daaafcdec726e89cbccca61d576de8429c537"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 10:26:03 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 10:26:03 2010 +1000"
      },
      "message": "Merge commit \u0027gcl/next\u0027 into next\n"
    },
    {
      "commit": "8cadd2831bf3abc94f4530e7fdbab7bb39b6b27d",
      "tree": "4027798914cc3213692a4865797898a5ae0a0b49",
      "parents": [
        "81f61484f16decba0fb68400fe0036b337b4cdc7"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon May 10 14:26:20 2010 -0700"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Aug 03 09:48:45 2010 -0400"
      },
      "message": "timer: add on-stack deferrable timer interfaces\n\nIn some cases (for instance with kernel threads) it may be desireable to\nuse on-stack deferrable timers to get their power saving benefits.  Add\ninterfaces to support this for the IPS driver.\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "af5ab277ded04bd9bc6b048c5a2f0e7d70ef0867",
      "tree": "7c593610e47096dd6592b8dbfe166428cc079ed6",
      "parents": [
        "2b08de0073a5697cf84d6f448d6dbc6cf02fc6b5"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Jul 27 21:02:10 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 02 21:45:58 2010 +0200"
      },
      "message": "clockevents: Remove the per cpu tick skew\n\nHistorically, Linux has tried to make the regular timer tick on the\nvarious CPUs not happen at the same time, to avoid contention on\nxtime_lock.\n\nNowadays, with the tickless kernel, this contention no longer happens\nsince time keeping and updating are done differently. In addition,\nthis skew is actually hurting power consumption in a measurable way on\nmany-core systems.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20100727210210.58d3118c@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "3772b734720e1a3f2dc1d95cfdfaa5332f4ccf01",
      "tree": "a1a8cc85948c086aa12a1d8014151a7ca7c04ea8",
      "parents": [
        "9fc3af467d0749989518a23f7289a6f44e5cb214",
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 02 08:29:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 02 08:31:54 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35\u0027 into perf/core\n\nConflicts:\n\ttools/perf/Makefile\n\ttools/perf/util/hist.c\n\nMerge reason: Resolve the conflicts and update to latest upstream.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "669336e4cf3e1cb95800f3f5924558a76d723c21",
      "tree": "b2254ef3ca3dfa2cf102bb992275138e694a67bd",
      "parents": [
        "3a01736e70a7d629140695ba46a901266b4460cc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 17:29:54 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 02 01:30:56 2010 +0200"
      },
      "message": "perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n\nWe use synchronize_sched() to ensure a tracepoint won\u0027t be called\nwhile/after we release the perf buffers it references.\n\nBut the tracepoint API has its own API for that:\ntracepoint_synchronize_unregister(). Use it instead as it\u0027s\nself-explanatory and eases maintainance.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "6ee0578b4daaea01c96b172c6aacca43fd9807a6",
      "tree": "bb82bb4e2a95704477da6c527b23af59c8c2a041",
      "parents": [
        "098849516dd522a343e659740c8f1394a5b7fa69"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Jul 30 14:57:37 2010 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 01 13:05:29 2010 +0200"
      },
      "message": "workqueue: mark init_workqueues() as early_initcall()\n\nMark init_workqueues() as early_initcall() and thus it will be initialized\nbefore smp bringup. init_workqueues() registers for the hotcpu notifier\nand thus it should cope with the processors that are brought online after\nthe workqueues are initialized.\n\nx86 smp bringup code uses workqueues and uses a workaround for the\ncold boot process (as the workqueues are initialized post smp_init()).\nMarking init_workqueues() as early_initcall() will pave the way for\ncleaning up this code.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "098849516dd522a343e659740c8f1394a5b7fa69",
      "tree": "46e902aabf3734c68173e959735ee75760b9f911",
      "parents": [
        "40f2b6ffe525e975203c1621d4d4abaa7689b674"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 01 11:50:12 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 01 11:50:12 2010 +0200"
      },
      "message": "workqueue: explain for_each_*cwq_cpu() iterators\n\nfor_each_*cwq_cpu() are similar to regular CPU iterators except that\nit also considers the pseudo CPU number used for unbound workqueues.\nExplain them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0500e9b3f11ce84fc6ee48a3e29909145e58ba48",
      "tree": "42b21a89575b6b919c09ef33469143f38cf1a04e",
      "parents": [
        "d3f64e46aa21dd86a239274d218ec286461bfa68"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:19:27 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:06 2010 +0800"
      },
      "message": "padata: Remove padata_get_cpumask\n\nA function that copies the padata cpumasks to a user buffer\nis a bit error prone. The cpumask can change any time so we\ncan\u0027t be sure to have the right cpumask when using this function.\nA user who is interested in the padata cpumasks should register\nto the padata cpumask notifier chain instead. Users of\npadata_get_cpumask are already updated, so we can remove it.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "c635696c7c0fbc720698dbec34bb83e53df6a967",
      "tree": "98774f70f799ed51c990af79bda8bbd0264e6a39",
      "parents": [
        "65ff577e6b6e482ee9de3569e058edebdc02f069"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:15:50 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:05 2010 +0800"
      },
      "message": "padata: Pass the padata cpumasks to the cpumask_change_notifier chain\n\nWe pass a pointer to the new padata cpumasks to the cpumask_change_notifier\nchain. So users can access the cpumasks without the need of an extra\npadata_get_cpumask function.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "65ff577e6b6e482ee9de3569e058edebdc02f069",
      "tree": "590390375fd44b9c1be49e677a68539883a0463f",
      "parents": [
        "e6cc11707661770ca2bd4db4b0256d28f48e7541"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:15:06 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:04 2010 +0800"
      },
      "message": "padata: Rearrange set_cpumask functions\n\npadata_set_cpumask needs to be protected by a lock. We make\n__padata_set_cpumasks unlocked and static. So this function\ncan be used by the exported and locked padata_set_cpumask and\npadata_set_cpumasks functions.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "e6cc11707661770ca2bd4db4b0256d28f48e7541",
      "tree": "885f2ea00e90ac9e379d54adf8e5ad0fbb9d9892",
      "parents": [
        "cc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 27 07:14:28 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sat Jul 31 19:53:04 2010 +0800"
      },
      "message": "padata: Rename padata_alloc functions\n\nWe rename padata_alloc to padata_alloc_possible because this\nfunction allocates a padata_instance and uses the cpu_possible\nmask for parallel and serial workers. Also we rename __padata_alloc\nto padata_alloc to avoid to export underlined functions. Underlined\nfunctions are considered to be private to padata. Users are updated\naccordingly.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "de09a9771a5346029f4d11e4ac886be7f9bfdd75",
      "tree": "ccce9e75753c98a9f38075d54ab98aa4b89e66c7",
      "parents": [
        "540ad6b62b3a188a53b51cac81d8a60d40e29fbd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 29 12:45:49 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 29 15:16:17 2010 -0700"
      },
      "message": "CRED: Fix get_task_cred() and task_state() to not resurrect dead credentials\n\nIt\u0027s possible for get_task_cred() as it currently stands to \u0027corrupt\u0027 a set of\ncredentials by incrementing their usage count after their replacement by the\ntask being accessed.\n\nWhat happens is that get_task_cred() can race with commit_creds():\n\n\tTASK_1\t\t\tTASK_2\t\t\tRCU_CLEANER\n\t--\u003eget_task_cred(TASK_2)\n\trcu_read_lock()\n\t__cred \u003d __task_cred(TASK_2)\n\t\t\t\t--\u003ecommit_creds()\n\t\t\t\told_cred \u003d TASK_2-\u003ereal_cred\n\t\t\t\tTASK_2-\u003ereal_cred \u003d ...\n\t\t\t\tput_cred(old_cred)\n\t\t\t\t  call_rcu(old_cred)\n\t\t[__cred-\u003eusage \u003d\u003d 0]\n\tget_cred(__cred)\n\t\t[__cred-\u003eusage \u003d\u003d 1]\n\trcu_read_unlock()\n\t\t\t\t\t\t\t--\u003eput_cred_rcu()\n\t\t\t\t\t\t\t[__cred-\u003eusage \u003d\u003d 1]\n\t\t\t\t\t\t\tpanic()\n\nHowever, since a tasks credentials are generally not changed very often, we can\nreasonably make use of a loop involving reading the creds pointer and using\natomic_inc_not_zero() to attempt to increment it if it hasn\u0027t already hit zero.\n\nIf successful, we can safely return the credentials in the knowledge that, even\nif the task we\u0027re accessing has released them, they haven\u0027t gone to the RCU\ncleanup code.\n\nWe then change task_state() in procfs to use get_task_cred() rather than\ncalling get_cred() on the result of __task_cred(), as that suffers from the\nsame problem.\n\nWithout this change, a BUG_ON in __put_cred() or in put_cred_rcu() can be\ntripped when it is noticed that the usage count is not zero as it ought to be,\nfor example:\n\nkernel BUG at kernel/cred.c:168!\ninvalid opcode: 0000 [#1] SMP\nlast sysfs file: /sys/kernel/mm/ksm/run\nCPU 0\nPid: 2436, comm: master Not tainted 2.6.33.3-85.fc13.x86_64 #1 0HR330/OptiPlex\n745\nRIP: 0010:[\u003cffffffff81069881\u003e]  [\u003cffffffff81069881\u003e] __put_cred+0xc/0x45\nRSP: 0018:ffff88019e7e9eb8  EFLAGS: 00010202\nRAX: 0000000000000001 RBX: ffff880161514480 RCX: 00000000ffffffff\nRDX: 00000000ffffffff RSI: ffff880140c690c0 RDI: ffff880140c690c0\nRBP: ffff88019e7e9eb8 R08: 00000000000000d0 R09: 0000000000000000\nR10: 0000000000000001 R11: 0000000000000040 R12: ffff880140c690c0\nR13: ffff88019e77aea0 R14: 00007fff336b0a5c R15: 0000000000000001\nFS:  00007f12f50d97c0(0000) GS:ffff880007400000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f8f461bc000 CR3: 00000001b26ce000 CR4: 00000000000006f0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess master (pid: 2436, threadinfo ffff88019e7e8000, task ffff88019e77aea0)\nStack:\n ffff88019e7e9ec8 ffffffff810698cd ffff88019e7e9ef8 ffffffff81069b45\n\u003c0\u003e ffff880161514180 ffff880161514480 ffff880161514180 0000000000000000\n\u003c0\u003e ffff88019e7e9f28 ffffffff8106aace 0000000000000001 0000000000000246\nCall Trace:\n [\u003cffffffff810698cd\u003e] put_cred+0x13/0x15\n [\u003cffffffff81069b45\u003e] commit_creds+0x16b/0x175\n [\u003cffffffff8106aace\u003e] set_current_groups+0x47/0x4e\n [\u003cffffffff8106ac89\u003e] sys_setgroups+0xf6/0x105\n [\u003cffffffff81009b02\u003e] system_call_fastpath+0x16/0x1b\nCode: 48 8d 71 ff e8 7e 4e 15 00 85 c0 78 0b 8b 75 ec 48 89 df e8 ef 4a 15 00\n48 83 c4 18 5b c9 c3 55 8b 07 8b 07 48 89 e5 85 c0 74 04 \u003c0f\u003e 0b eb fe 65 48 8b\n04 25 00 cc 00 00 48 3b b8 58 04 00 00 75\nRIP  [\u003cffffffff81069881\u003e] __put_cred+0xc/0x45\n RSP \u003cffff88019e7e9eb8\u003e\n---[ end trace df391256a100ebdd ]---\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "685fd0b4ea3f0f1d5385610b0d5b57775a8d5842",
      "tree": "44c224195e6500c67812b38ff9fd60c96c6b8dc5",
      "parents": [
        "1a041a23da7c77b53c71fe11b4f940388bee37b1"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Thu Jul 29 11:16:32 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 29 13:24:57 2010 +0200"
      },
      "message": "irq: Add new IRQ flag IRQF_NO_SUSPEND\n\nA small number of users of IRQF_TIMER are using it for the implied no\nsuspend behaviour on interrupts which are not timer interrupts.\n\nTherefore add a new IRQF_NO_SUSPEND flag, rename IRQF_TIMER to\n__IRQF_TIMER and redefine IRQF_TIMER in terms of these new flags.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: xen-devel@lists.xensource.com\nCc: linux-input@vger.kernel.org\nCc: linuxppc-dev@ozlabs.org\nCc: devicetree-discuss@lists.ozlabs.org\nLKML-Reference: \u003c1280398595-29708-1-git-send-email-ian.campbell@citrix.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "157b1a23856b9fb7cc3d19fa2ddc650b502bab3d",
      "tree": "6123509f303e4e7d944201de682e2f5b5b4c99d7",
      "parents": [
        "47916be4e28c3d6fdb97dd8fb887d1d9b3145b9d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 29 10:22:48 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 29 10:29:39 2010 +0200"
      },
      "message": "kgdb: Do not access xtime directly\n\nThe xtime cleanup missed the kgdb access to xtime. Fix it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d7926ee38f5c6e0bbebe712304f99a4c67e40f84",
      "tree": "2feae78726dae032741f81fc9590d61693a182f5",
      "parents": [
        "c23f3445e68e1db0e74099f264bc5ff5d55ebdeb"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "samudrala.sridhar@gmail.com",
        "time": "Sun May 30 22:24:39 2010 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jul 28 15:45:12 2010 +0300"
      },
      "message": "cgroups: Add an API to attach a task to current task\u0027s cgroup\n\nAdd a new kernel API to attach a task to current task\u0027s cgroup\nin all the active hierarchies.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "b82bab4bbe9efa7bc7177fc20620fff19bd95484",
      "tree": "c033a090fbd3caa61f2f3b6ece52c0b4dffeb229",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Jul 27 13:18:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "dynamic debug: move ddebug_remove_module() down into free_module()\n\nThe command\n\n\techo \"file ec.c +p\" \u003e/sys/kernel/debug/dynamic_debug/control\n\ncauses an oops.\n\nMove the call to ddebug_remove_module() down into free_module().  In this\nway it should be called from all error paths.  Currently, we are missing\nthe remove if the module init routine fails.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nReported-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nTested-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.32+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "852db46d55e85b475a72e665ca08d3317769ceef",
      "tree": "3802273b1135f0f650868fe9e048d7c0594195fe",
      "parents": [
        "f12a15be63d1de9a35971f35f06b73088fa25c3a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:28 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "clocksource: Add __clocksource_updatefreq_hz/khz methods\n\nTo properly handle clocksources that change frequencies\nat the clocksource-\u003eenable() point, this patch adds\na method that will update the clocksource\u0027s mult/shift and\nmax_idle_ns values.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-12-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "0fb86b06298b6cd3205cac2e68a499f269282dac",
      "tree": "3adcd4149fbe643ea8cae88578e169d02b7a9e5f",
      "parents": [
        "8ab4351a4c888016620f43bde605b3d0964af339"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:26 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "timekeeping: Make xtime and wall_to_monotonic static\n\nThis patch makes xtime and wall_to_monotonic static, as planned in\nDocumentation/feature-removal-schedule.txt. This will allow for\nfurther cleanups to the timekeeping core.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-10-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "8ab4351a4c888016620f43bde605b3d0964af339",
      "tree": "9d92ee7fbf9391bfcfdc1e49fecc31b9fa4e03c0",
      "parents": [
        "9f31f5774961a735687fee17953ab505b3df3abf"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:25 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "hrtimer: Cleanup direct access to wall_to_monotonic\n\nProvides an accessor function to replace hrtimer.c\u0027s\ndirect access of wall_to_monotonic.\n\nThis will allow wall_to_monotonic to be made static as\nplanned in Documentation/feature-removal-schedule.txt\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-9-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7615856ebfee52b080c22d263ca4debbd0df0ac1",
      "tree": "beb06e60af7560c28d5bad41f03a5238636e91fc",
      "parents": [
        "06d518e3dfb25334282c7e38b4d7a4eada215f6d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:23 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:54 2010 +0200"
      },
      "message": "timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n\nupdate_vsyscall() did not provide the wall_to_monotoinc offset,\nso arch specific implementations tend to reference wall_to_monotonic\ndirectly. This limits future cleanups in the timekeeping core, so\nthis patch fixes the update_vsyscall interface to provide\nwall_to_monotonic, allowing wall_to_monotonic to be made static\nas planned in Documentation/feature-removal-schedule.txt\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nLKML-Reference: \u003c1279068988-21864-7-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "592913ecb87a9e06f98ddb55b298f1a66bf94c6b",
      "tree": "0f63f5535fe517faf418e0f7e69800fcf1e4d8db",
      "parents": [
        "ce3bf7ab22527183634a76512d9854a38615e4d5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:20 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:54 2010 +0200"
      },
      "message": "time: Kill off CONFIG_GENERIC_TIME\n\nNow that all arches have been converted over to use generic time via\nclocksources or arch_gettimeoffset(), we can remove the GENERIC_TIME\nconfig option and simplify the generic code.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-4-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ce3bf7ab22527183634a76512d9854a38615e4d5",
      "tree": "79e48c7c84618d968664bd660c75e03fc98e7d11",
      "parents": [
        "8c73626ab28527b7eb7f3061c027fbfe530c488c"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:19 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:53 2010 +0200"
      },
      "message": "time: Implement timespec_add\n\nAfter accidentally misusing timespec_add_safe, I wanted to make sure\nwe don\u0027t accidently trip over that issue again, so I created a simple\ntimespec_add() function which we can use to replace the instances\nof timespec_add_safe() that don\u0027t want the overflow detection.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-3-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "7424713b83587006da72da84d7922471e366faba",
      "tree": "f6b8cf5db118494fc70be8f97309fd2434545223",
      "parents": [
        "b89661dff525a46edb7ee8a4423b5212068c05c0"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:51:25 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:58 2010 +0800"
      },
      "message": "padata: Check for valid cpumasks\n\nNow that we allow to change the cpumasks from userspace, we have\nto check for valid cpumasks in padata_do_parallel. This patch adds\nthe necessary check. This fixes a division by zero crash if the\nparallel cpumask contains no active cpu.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "b89661dff525a46edb7ee8a4423b5212068c05c0",
      "tree": "06f669f3efe74d37a546b8e75b3a5bd142a6a41f",
      "parents": [
        "fad3a906d324c02b3c25ef51f702384154089846"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:49:20 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:58 2010 +0800"
      },
      "message": "padata: Allocate cpumask dependend recources in any case\n\nThe cpumask separation work assumes the cpumask dependend recources\npresent regardless of valid or invalid cpumasks. With this patch\nwe allocate the cpumask dependend recources in any case. This fixes\ntwo NULL pointer dereference crashes in padata_replace and in\npadata_get_cpumask.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "fad3a906d324c02b3c25ef51f702384154089846",
      "tree": "73f860f5547c9bf5c87040fa032ae9302f886a46",
      "parents": [
        "1fb1defbb00eb2954483a7d9a70f8a02edf51753"
      ],
      "author": {
        "name": "Steffen Klassert",
        "email": "steffen.klassert@secunet.com",
        "time": "Tue Jul 20 08:48:34 2010 +0200"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Jul 26 14:13:57 2010 +0800"
      },
      "message": "padata: Fix cpu index counting\n\nThe counting of the cpu index got lost with a recent commit.\nThis patch restores it. This fixes a hang of the parallel worker\nthreads on cpu hotplug.\n\nSigned-off-by: Steffen Klassert \u003csteffen.klassert@secunet.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "2b08de0073a5697cf84d6f448d6dbc6cf02fc6b5",
      "tree": "79188eeb1dc9e5a269d999c8afe6f01292c05682",
      "parents": [
        "22b8f15c2f7130bb0386f548428df2ffd4e81903"
      ],
      "author": {
        "name": "Andrey Vagin",
        "email": "avagin@openvz.org",
        "time": "Tue Jul 20 15:23:14 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 23 15:08:12 2010 +0200"
      },
      "message": "posix_timer: Move copy_to_user(created_timer_id) down in timer_create()\n\nAccording to Oleg Nesterov:\nWe can move copy_to_user(created_timer_id) down after\n\"if (timer_event_spec)\" block too. (but before CLOCK_DISPATCH(),\nof course).\n\nSigned-off-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "22b8f15c2f7130bb0386f548428df2ffd4e81903",
      "tree": "4ed7ac08115afdce20d21bd923cd1071c2249dda",
      "parents": [
        "866e26115cba6b59cec669b6307599e3e4440491"
      ],
      "author": {
        "name": "Patrick Pannuto",
        "email": "ppannuto@codeaurora.org",
        "time": "Mon Jul 19 15:09:26 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 23 15:08:12 2010 +0200"
      },
      "message": "timer: Added usleep[_range] timer\n\nusleep[_range] are finer precision implementations of msleep\nand are designed to be drop-in replacements for udelay where\na precise sleep / busy-wait is unnecessary. They also allow\nan easy interface to specify slack when a precise (ish)\nwakeup is unnecessary to help minimize wakeups\n\nSigned-off-by: Patrick Pannuto \u003cppannuto@codeaurora.org\u003e\nCc: akinobu.mita@gmail.com\nCc: sboyd@codeaurora.org\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c4C44CDD2.1070708@codeaurora.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "866e26115cba6b59cec669b6307599e3e4440491",
      "tree": "d6a4920f298608e23c8fc56f8902ae5773be8fc4",
      "parents": [
        "b37fa16e78d6f9790462b3181602a26b5af36260"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 20 15:23:15 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 23 15:08:12 2010 +0200"
      },
      "message": "timers: Document meaning of deferrable timer\n\nSteal some text from 6e453a67510 \"Add support for deferrable timers\".  A\nreader shouldn\u0027t have to dig through the git logs for the basic\ndescription of a deferrable timer.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: johnstul@us.ibm.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "181a51f6e040d0ac006d6adaf4a031ffa440f41c",
      "tree": "ed06062b8c606149497dffbb6a6ef0548cc44911",
      "parents": [
        "6ecd7c2dd9f5dd4f6e8f65c8027159f9c73b0e4c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 20 22:09:02 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 23 13:14:49 2010 +0200"
      },
      "message": "slow-work: kill it\n\nslow-work doesn\u0027t have any user left.  Kill it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3a01736e70a7d629140695ba46a901266b4460cc",
      "tree": "49ff8ce1e7c6a267f0ce84b5daddbe6666bc4253",
      "parents": [
        "4c21adf26f8fcf86a755b9b9f55c2e9fd241e1fb",
        "24a461d537f49f9da6533d83100999ea08c6c755"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "e120153ddf8620fd0a194d301e9c5a8b28483bb5",
      "tree": "953ef1a61ca29d0486a6c8c3bb72dd8bbc080419",
      "parents": [
        "f2e005aaff4878a8ea93d5fb033a21389b72579a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 22 14:14:25 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 22 22:39:22 2010 +0200"
      },
      "message": "workqueue: fix how cpu number is stored in work-\u003edata\n\nOnce a work starts execution, its data contains the cpu number it was\non instead of pointing to cwq.  This is added by commit 7a22ad75\n(workqueue: carry cpu number in work data once execution starts) to\nreliably determine the work was last on even if the workqueue itself\nwas destroyed inbetween.\n\nWhether data points to a cwq or contains a cpu number was\ndistinguished by comparing the value against PAGE_OFFSET.  The\nassumption was that a cpu number should be below PAGE_OFFSET while a\npointer to cwq should be above it.  However, on architectures which\nuse separate address spaces for user and kernel spaces, this doesn\u0027t\nhold as PAGE_OFFSET is zero.\n\nFix it by using an explicit flag, WORK_STRUCT_CWQ, to mark what the\ndata field contains.  If the flag is set, it\u0027s pointing to a cwq;\notherwise, it contains a cpu number.\n\nReported on s390 and microblaze during linux-next testing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nReported-by: Michal Simek \u003cmichal.simek@petalogix.com\u003e\nReported-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nTested-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nTested-by: Michal Simek \u003cmonstr@monstr.eu\u003e\n"
    },
    {
      "commit": "24a461d537f49f9da6533d83100999ea08c6c755",
      "tree": "b7aa6258df988a64d802eff0b15e92c394742a2e",
      "parents": [
        "a484e54fae891703cbe1c9ec1b536605f11f5482"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jul 10 12:06:44 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 22 14:56:41 2010 -0400"
      },
      "message": "trace: strlen() return doesn\u0027t account for the NULL\n\nWe need to add one to the strlen() return because of the NULL\ncharacter.  The type-\u003ename here generally comes from the kernel and I\ndon\u0027t think any of them come close to being MAX_TRACER_SIZE (100)\ncharacters long so this is basically a cleanup.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nLKML-Reference: \u003c20100710100644.GV19184@bicker\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "edd63cb6b91024332d6983fc51058ac1ef0c081e",
      "tree": "2df04fc5dc35899aa7d4f4c52197f7b492c16c8b",
      "parents": [
        "b0679c63db655fa12007558e267bc0eb1d486fdb"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "sysrq,kdb: Use __handle_sysrq() for kdb\u0027s sysrq function\n\nThe kdb code should not toggle the sysrq state in case an end user\nwants to try and resume the normal kernel execution.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "b0679c63db655fa12007558e267bc0eb1d486fdb",
      "tree": "b210de833621055d02c2114b77d419f09ea73a36",
      "parents": [
        "9e8b624fcaebf9c237b5be9116f4424bf168e6d1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "debug_core,kdb: fix kgdb_connected bit set in the wrong place\n\nImmediately following an exit from the kdb shell the kgdb_connected\nvariable should be set to zero, unless there are breakpoints planted.\nIf the kgdb_connected variable is not zeroed out with kdb, it is\nimpossible to turn off kdb.\n\nThis patch is merely a work around for now, the real fix will check\nfor the breakpoints.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "9e8b624fcaebf9c237b5be9116f4424bf168e6d1",
      "tree": "9c46796acdbb4bbfe6adbf89bc731dd6eb0adf19",
      "parents": [
        "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "message": "Fix merge regression from external kdb to upstream kdb\n\nIn the process of merging kdb to the mainline, the kdb lsmod command\nstopped printing the base load address of kernel modules.  This is\nneeded for using kdb in conjunction with external tools such as gdb.\n\nSimply restore the functionality by adding a kdb_printf for the base\nload address of the kernel modules.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80",
      "tree": "98e49fdc15e9db7eb45e91571ca6187f9a5cf516",
      "parents": [
        "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "repair gdbstub to match the gdbserial protocol specification\n\nThe gdbserial protocol handler should return an empty packet instead\nof an error string when ever it responds to a command it does not\nimplement.\n\nThe problem cases come from a debugger client sending\nqTBuffer, qTStatus, qSearch, qSupported.\n\nThe incorrect response from the gdbstub leads the debugger clients to\nnot function correctly.  Recent versions of gdb will not detach correctly as a result of this behavior.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633",
      "tree": "09bbe851de6b70d1896d0a72f832b21d98331d9d",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Martin Hicks",
        "email": "mort@sgi.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "kdb: break out of kdb_ll() when command is terminated\n\nWithout this patch the \"ll\" linked-list traversal command won\u0027t\nterminate when you hit q/Q.\n\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "eebef74695e1498e04e5f85be9c6f84bd2e7358a",
      "tree": "ebda4c046a44edee9f6e8371e5879c7a9ce09d95",
      "parents": [
        "dca45ad8af54963c005393a484ad117b8ba6150f"
      ],
      "author": {
        "name": "Josh Hunt",
        "email": "johunt@akamai.com",
        "time": "Mon Jul 19 12:31:16 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:46:12 2010 +0200"
      },
      "message": "sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n\nThe sched_child_runs_first value in /proc/sched_debug is\ncurrently displayed using a macro meant to split ns time values.\nThis patch uses the correct macro to display it as a plain\ndecimal value.\n\nSigned-off-by: Josh Hunt \u003cjohunt@akamai.com\u003e\nCc: peterz@infradead.org\nCc: juhlenko@akamai.com\nCc: efault@gmx.de\nLKML-Reference: \u003c1279567876-25418-1-git-send-email-johunt@akamai.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "23c2875725ebb03e58e598754309e198648f608a",
      "tree": "35f9ffe9e7b52624642cb651687dea5faf5dc6a3",
      "parents": [
        "9dcdbf7a33d9018ac5d45debcf261be648bdd56a",
        "b444786f1a797a7f84e2561346a670649f9c7b3c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:44:18 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:44:18 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    }
  ],
  "next": "9dcdbf7a33d9018ac5d45debcf261be648bdd56a"
}
