)]}'
{
  "log": [
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "7affca3537d74365128e477b40c529d6f2fe86c8",
      "tree": "20be92bd240029182fc89c2c4f25401b7715dcae",
      "parents": [
        "356b95424cfb456e14a59eaa579422ce014c424b",
        "ff4b8a57f0aaa2882d444ca44b2b9b333d22a4df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:03:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:03:30 2012 -0800"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\n* \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (73 commits)\n  arm: fix up some samsung merge sysdev conversion problems\n  firmware: Fix an oops on reading fw_priv-\u003efw in sysfs loading file\n  Drivers:hv: Fix a bug in vmbus_driver_unregister()\n  driver core: remove __must_check from device_create_file\n  debugfs: add missing #ifdef HAS_IOMEM\n  arm: time.h: remove device.h #include\n  driver-core: remove sysdev.h usage.\n  clockevents: remove sysdev.h\n  arm: convert sysdev_class to a regular subsystem\n  arm: leds: convert sysdev_class to a regular subsystem\n  kobject: remove kset_find_obj_hinted()\n  m86k: gpio - convert sysdev_class to a regular subsystem\n  mips: txx9_sram - convert sysdev_class to a regular subsystem\n  mips: 7segled - convert sysdev_class to a regular subsystem\n  sh: dma - convert sysdev_class to a regular subsystem\n  sh: intc - convert sysdev_class to a regular subsystem\n  power: suspend - convert sysdev_class to a regular subsystem\n  power: qe_ic - convert sysdev_class to a regular subsystem\n  power: cmm - convert sysdev_class to a regular subsystem\n  s390: time - convert sysdev_class to a regular subsystem\n  ...\n\nFix up conflicts with \u0027struct sysdev\u0027 removal from various platform\ndrivers that got changed:\n - arch/arm/mach-exynos/cpu.c\n - arch/arm/mach-exynos/irq-eint.c\n - arch/arm/mach-s3c64xx/common.c\n - arch/arm/mach-s3c64xx/cpu.c\n - arch/arm/mach-s5p64x0/cpu.c\n - arch/arm/mach-s5pv210/common.c\n - arch/arm/plat-samsung/include/plat/cpu.h\n - arch/powerpc/kernel/sysfs.c\nand fix up cpu_is_hotpluggable() as per Greg in include/linux/cpu.h\n"
    },
    {
      "commit": "376613e81ddc68f545fd5c87ffc3ad222b7abe5f",
      "tree": "e1cb1cd43d05f57e4584dd5f9ce3eb965d0ddff1",
      "parents": [
        "0db49b72bce26341274b74fd968501489a361ae3",
        "0518469d0a32be1e6dd8850ff274d52d72cdb52d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:57:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:57:44 2012 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, tsc: Skip TSC synchronization checks for tsc\u003dreliable\n  clocksource: Convert tcb_clksrc to use clocksource_register_hz/khz\n  clocksource: cris: Convert to clocksource_register_khz\n  clocksource: xtensa: Convert to clocksource_register_hz/khz\n  clocksource: um: Convert to clocksource_register_hz/khz\n  clocksource: parisc: Convert to clocksource_register_hz/khz\n  clocksource: m86k: Convert to clocksource_register_hz/khz\n  time: x86: Replace LATCH with PIT_LATCH in i8253 clocksource driver\n  time: x86: Remove CLOCK_TICK_RATE from acpi_pm clocksource driver\n  time: x86: Remove CLOCK_TICK_RATE from mach_timer.h\n  time: x86: Remove CLOCK_TICK_RATE from tsc code\n  time: Fix spelling mistakes in new comments\n  time: fix bogus comment in timekeeping_get_ns_raw\n"
    },
    {
      "commit": "ff4b8a57f0aaa2882d444ca44b2b9b333d22a4df",
      "tree": "d851c923f85566572112d4c0f884cff388a3cc05",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
        "ea04018e6bc5ddb2f0466c0e5b986bd4901b7e8e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 06 11:42:52 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 06 11:42:52 2012 -0800"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 into Linux 3.2\n\nThis resolves the conflict in the arch/arm/mach-s3c64xx/s3c6400.c file,\nand it fixes the build error in the arch/x86/kernel/microcode_core.c\nfile, that the merge did not catch.\n\nThe microcode_core.c patch was provided by Stephen Rothwell\n\u003csfr@canb.auug.org.au\u003e who was invaluable in the merge issues involved\nwith the large sysdev removal process in the driver-core tree.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0db49b72bce26341274b74fd968501489a361ae3",
      "tree": "cdb076827aefb38d719d4c42f8ef291c36072fa8",
      "parents": [
        "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
        "1ac9bc6943edf7d181b4b1cc734981350d4f6bae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:33:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:44:54 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  sched/tracing: Add a new tracepoint for sleeptime\n  sched: Disable scheduler warnings during oopses\n  sched: Fix cgroup movement of waking process\n  sched: Fix cgroup movement of newly created process\n  sched: Fix cgroup movement of forking process\n  sched: Remove cfs bandwidth period check in tg_set_cfs_period()\n  sched: Fix load-balance lock-breaking\n  sched: Replace all_pinned with a generic flags field\n  sched: Only queue remote wakeups when crossing cache boundaries\n  sched: Add missing rcu_dereference() around -\u003ereal_parent usage\n  [S390] fix cputime overflow in uptime_proc_show\n  [S390] cputime: add sparse checking and cleanup\n  sched: Mark parent and real_parent as __rcu\n  sched, nohz: Fix missing RCU read lock\n  sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n  sched, nohz: Fix the idle cpu check in nohz_idle_balance\n  sched: Use jump_labels for sched_feat\n  sched/accounting: Fix parameter passing in task_group_account_field\n  sched/accounting: Fix user/system tick double accounting\n  sched/accounting: Re-use scheduler statistics for the root cgroup\n  ...\n\nFix up conflicts in\n - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h\n\tusecs_to_cputime64() vs the sparse cleanups\n - kernel/sched/fair.c, kernel/time/tick-sched.c\n\tscheduler changes in multiple branches\n"
    },
    {
      "commit": "423d091dfe58d3109d84c408810a7cfa82f6f184",
      "tree": "43c4385d1dc7219582f924d42db1f3e203a577bd",
      "parents": [
        "1483b3823542c9721eddf09a077af1e02ac96b50",
        "919b83452b2e7c1dbced0456015508b4b9585db3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)\n  cpu: Export cpu_up()\n  rcu: Apply ACCESS_ONCE() to rcu_boost() return value\n  Revert \"rcu: Permit rt_mutex_unlock() with irqs disabled\"\n  docs: Additional LWN links to RCU API\n  rcu: Augment rcu_batch_end tracing for idle and callback state\n  rcu: Add rcutorture tests for srcu_read_lock_raw()\n  rcu: Make rcutorture test for hotpluggability before offlining CPUs\n  driver-core/cpu: Expose hotpluggability to the rest of the kernel\n  rcu: Remove redundant rcu_cpu_stall_suppress declaration\n  rcu: Adaptive dyntick-idle preparation\n  rcu: Keep invoking callbacks if CPU otherwise idle\n  rcu: Irq nesting is always 0 on rcu_enter_idle_common\n  rcu: Don\u0027t check irq nesting from rcu idle entry/exit\n  rcu: Permit dyntick-idle with callbacks pending\n  rcu: Document same-context read-side constraints\n  rcu: Identify dyntick-idle CPUs on first force_quiescent_state() pass\n  rcu: Remove dynticks false positives and RCU failures\n  rcu: Reduce latency of rcu_prepare_for_idle()\n  rcu: Eliminate RCU_FAST_NO_HZ grace-period hang\n  rcu: Avoid needlessly IPIing CPUs at GP end\n  ...\n"
    },
    {
      "commit": "3b87487ac5008072f138953b07505a7e3493327f",
      "tree": "b70e9422c1abe7ce0e771a52202572dbb0ee25aa",
      "parents": [
        "995b4103a78b9bef0ff834f9ecac42b2b56e01a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "message": "Revert \"clockevents: Set noop handler in clockevents_exchange_device()\"\n\nThis reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.\n\nIt results in resume problems for various people. See for example\n\n  http://thread.gmane.org/gmane.linux.kernel/1233033\n  http://thread.gmane.org/gmane.linux.kernel/1233389\n  http://thread.gmane.org/gmane.linux.kernel/1233159\n  http://thread.gmane.org/gmane.linux.kernel/1227868/focus\u003d1230877\n\nand the fedora and ubuntu bug reports\n\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d767248\n  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569\n\nwhich got bisected down to the stable version of this commit.\n\nReported-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nReported-by: Phil Miller \u003cmille121@illinois.edu\u003e\nReported-by: Philip Langdale \u003cphilipl@overt.org\u003e\nReported-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: stable@kernel.org    # for stable kernels that applied the original\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7239f65cf364180cdb100a4ed211b2a9f9a72119",
      "tree": "a23b2abe177b890303aa02c58ce964eacf2166df",
      "parents": [
        "4a858cfc9af87cc60b3113c3b7b377a4305eac6a"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 16:12:37 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 16:12:37 2011 -0800"
      },
      "message": "clockevents: remove sysdev.h\n\nThis isn\u0027t needed in the clockevents.c file, and the header file is\ngoing away soon, so just remove the #include\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "b1b73d095084e754562961c443aa8f6587a55f8e",
      "tree": "f2927ab364b329175442b6abece86cba3528f969",
      "parents": [
        "c3b79770e51ab1fd4201f3b54edf30113b9ce74f"
      ],
      "author": {
        "name": "Kusanagi Kouichi",
        "email": "slash@ac.auone-net.jp",
        "time": "Mon Dec 19 18:13:19 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 19 11:41:40 2011 +0100"
      },
      "message": "time/clocksource: Fix kernel-doc warnings\n\nFix various KernelDoc build warnings.\n\nSigned-off-by: Kusanagi Kouichi \u003cslash@ac.auone-net.jp\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20111219091320.0D5AF6FC03D@msa105.auone-net.jp\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a54aebf6978e9f296a4d3da3e40af425163c22e",
      "tree": "8217c7114db02d8b69c22fc44880749426949bc3",
      "parents": [
        "067491b7313c41f49607fce782d29344d1472587",
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 15 08:21:21 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 15 08:21:30 2011 +0100"
      },
      "message": "Merge commit \u0027v3.2-rc5\u0027 into sched/core\n\nMerge reason: Pick up the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d369a5d8fc70710236ae2d06a0e42dce483712df",
      "tree": "5f52ec10e01f46e575e358ec21302b3cc56693e2",
      "parents": [
        "15916a123e59b84d2fdfcccac84c99d1777f2a45"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 14 15:28:51 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 14 15:28:51 2011 -0800"
      },
      "message": "clocksource: convert sysdev_class to a regular subsystem\n\nAfter all sysdev classes are ported to regular driver core entities, the\nsysdev implementation will be entirely removed from the kernel.\n\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1268fbc746ea1cd279886a740dcbad4ba5232225",
      "tree": "dc0ff36b4114992a3f67479e25132f5e99f36b9e",
      "parents": [
        "b58bdccaa8d908e0f71dae396468a0d3f7bb3125"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 17 18:48:14 2011 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:57 2011 -0800"
      },
      "message": "nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu()\n\nThose two APIs were provided to optimize the calls of\ntick_nohz_idle_enter() and rcu_idle_enter() into a single\nirq disabled section. This way no interrupt happening in-between would\nneedlessly process any RCU job.\n\nNow we are talking about an optimization for which benefits\nhave yet to be measured. Let\u0027s start simple and completely decouple\nidle rcu and dyntick idle logics to simplify.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2bbb6817c0ac1b5f2a68d720f364f98eeb1ac4fd",
      "tree": "05bb5ba54671a8eaeca4fe4406a75e820317e473",
      "parents": [
        "280f06774afedf849f0b34248ed6aff57d0f6908"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Oct 08 16:01:00 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:36 2011 -0800"
      },
      "message": "nohz: Allow rcu extended quiescent state handling seperately from tick stop\n\nIt is assumed that rcu won\u0027t be used once we switch to tickless\nmode and until we restart the tick. However this is not always\ntrue, as in x86-64 where we dereference the idle notifiers after\nthe tick is stopped.\n\nTo prepare for fixing this, add two new APIs:\ntick_nohz_idle_enter_norcu() and tick_nohz_idle_exit_norcu().\n\nIf no use of RCU is made in the idle loop between\ntick_nohz_enter_idle() and tick_nohz_exit_idle() calls, the arch\nmust instead call the new *_norcu() version such that the arch doesn\u0027t\nneed to call rcu_idle_enter() and rcu_idle_exit().\n\nOtherwise the arch must call tick_nohz_enter_idle() and\ntick_nohz_exit_idle() and also call explicitly:\n\n- rcu_idle_enter() after its last use of RCU before the CPU is put\nto sleep.\n- rcu_idle_exit() before the first use of RCU after the CPU is woken\nup.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "280f06774afedf849f0b34248ed6aff57d0f6908",
      "tree": "62ef683226d0569c0e6c3ba34ab2e6d85b2e047f",
      "parents": [
        "867f236bd12f5091df6dc7cc75f94d7fd982d78a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 07 18:22:06 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:35 2011 -0800"
      },
      "message": "nohz: Separate out irq exit and idle loop dyntick logic\n\nThe tick_nohz_stop_sched_tick() function, which tries to delay\nthe next timer tick as long as possible, can be called from two\nplaces:\n\n- From the idle loop to start the dytick idle mode\n- From interrupt exit if we have interrupted the dyntick\nidle mode, so that we reprogram the next tick event in\ncase the irq changed some internal state that requires this\naction.\n\nThere are only few minor differences between both that\nare handled by that function, driven by the ts-\u003einidle\ncpu variable and the inidle parameter. The whole guarantees\nthat we only update the dyntick mode on irq exit if we actually\ninterrupted the dyntick idle mode, and that we enter in RCU extended\nquiescent state from idle loop entry only.\n\nSplit this function into:\n\n- tick_nohz_idle_enter(), which sets ts-\u003einidle to 1, enters\ndynticks idle mode unconditionally if it can, and enters into RCU\nextended quiescent state.\n\n- tick_nohz_irq_exit() which only updates the dynticks idle mode\nwhen ts-\u003einidle is set (ie: if tick_nohz_idle_enter() has been called).\n\nTo maintain symmetry, tick_nohz_restart_sched_tick() has been renamed\ninto tick_nohz_idle_exit().\n\nThis simplifies the code and micro-optimize the irq exit path (no need\nfor local_irq_save there). This also prepares for the split between\ndynticks and rcu extended quiescent state logics. We\u0027ll need this split to\nfurther fix illegal uses of RCU in extended quiescent states in the idle\nloop.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "9b2e4f1880b789be1f24f9684f7a54b90310b5c0",
      "tree": "1fa922e0616e298837a7079cb49118188a58186c",
      "parents": [
        "b804cb9e91c6c304959c69d4f9daeef4ffdba71c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Sep 30 12:10:22 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:24 2011 -0800"
      },
      "message": "rcu: Track idleness independent of idle tasks\n\nEarlier versions of RCU used the scheduling-clock tick to detect idleness\nby checking for the idle task, but handled idleness differently for\nCONFIG_NO_HZ\u003dy.  But there are now a number of uses of RCU read-side\ncritical sections in the idle task, for example, for tracing.  A more\nfine-grained detection of idleness is therefore required.\n\nThis commit presses the old dyntick-idle code into full-time service,\nso that rcu_idle_enter(), previously known as rcu_enter_nohz(), is\nalways invoked at the beginning of an idle loop iteration.  Similarly,\nrcu_idle_exit(), previously known as rcu_exit_nohz(), is always invoked\nat the end of an idle-loop iteration.  This allows the idle task to\nuse RCU everywhere except between consecutive rcu_idle_enter() and\nrcu_idle_exit() calls, in turn allowing architecture maintainers to\nspecify exactly where in the idle loop that RCU may be used.\n\nBecause some of the userspace upcall uses can result in what looks\nto RCU like half of an interrupt, it is not possible to expect that\nthe irq_enter() and irq_exit() hooks will give exact counts.  This\npatch therefore expands the -\u003edynticks_nesting counter to 64 bits\nand uses two separate bitfields to count process/idle transitions\nand interrupt entry/exit transitions.  It is presumed that userspace\nupcalls do not happen in the idle loop or from usermode execution\n(though usermode might do a system call that results in an upcall).\nThe counter is hard-reset on each process/idle transition, which\navoids the interrupt entry/exit error from accumulating.  Overflow\nis avoided by the 64-bitness of the -\u003edyntick_nesting counter.\n\nThis commit also adds warnings if a non-idle task asks RCU to enter\nidle state (and these checks will need some adjustment before applying\nFrederic\u0027s OS-jitter patches (http://lkml.org/lkml/2011/10/7/246).\nIn addition, validation of -\u003edynticks and -\u003edynticks_nesting is added.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c9c024b3f3e07d087974db4c0dc46217fff3a6c0",
      "tree": "4dd125eef6c2f332d641876fac0e6f522b1d75c5",
      "parents": [
        "d68fb11c3dae75c8331538dcf083a65e697cc034"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 21:20:23 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 06 11:38:32 2011 +0100"
      },
      "message": "alarmtimers: Fix time comparison\n\nThe expiry function compares the timer against current time and does\nnot expire the timer when the expiry time is \u003e\u003d now. That\u0027s wrong. If\nthe timer is set for now, then it must expire.\n\nMake the condition expiry \u003e now for breaking out the loop.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "69e1e811dcc436a6b129dbef273ad9ec22d095ce",
      "tree": "f07179af4989178733727683796927948db9059a",
      "parents": [
        "1c792db7f7957e2e34b9a164f08200e36a25dfd0"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:32 2011 +0100"
      },
      "message": "sched, nohz: Track nr_busy_cpus in the sched_group_power\n\nIntroduce nr_busy_cpus in the struct sched_group_power [Not in sched_group\nbecause sched groups are duplicated for the SD_OVERLAP scheduler domain]\nand for each cpu that enters and exits idle, this parameter will\nbe updated in each scheduler group of the scheduler domain that this cpu\nbelongs to.\n\nTo avoid the frequent update of this state as the cpu enters\nand exits idle, the update of the stat during idle exit is\ndelayed to the first timer tick that happens after the cpu becomes busy.\nThis is done using NOHZ_IDLE flag in the struct rq\u0027s nohz_flags.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20111202010832.555984323@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "40c043b077c6e377c8440d71563c055d0c4f0f0a",
      "tree": "e0c1d672a1156d7840d3ef650ba1aa963c68e13a",
      "parents": [
        "f14aa871c7e1e58a01bf33a562ac314fae64517c",
        "de28f25e8244c7353abed8de0c7792f5f883588c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 05 16:53:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 05 16:53:43 2011 -0800"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  clockevents: Set noop handler in clockevents_exchange_device()\n  tick-broadcast: Stop active broadcast device when replacing it\n  clocksource: Fix bug with max_deferment margin calculation\n  rtc: Fix some bugs that allowed accumulating time drift in suspend/resume\n  rtc: Disable the alarm in the hardware\n"
    },
    {
      "commit": "0518469d0a32be1e6dd8850ff274d52d72cdb52d",
      "tree": "c13038d099e04208feae565947783cf92ceae9ee",
      "parents": [
        "28a00184be261e3dc152ba0d664a067bbe235b6a",
        "f5a54dd7952e9032785cd1ef0dde72cd61025341"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 22:13:49 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 22:13:49 2011 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.3/tip/timers/core\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n"
    },
    {
      "commit": "de28f25e8244c7353abed8de0c7792f5f883588c",
      "tree": "03f94969b51c454f5da2b52cc311e510c28c2080",
      "parents": [
        "c1be84309c58b1e7c6d626e28fba41a22b364c3d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:02:45 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:07:23 2011 +0100"
      },
      "message": "clockevents: Set noop handler in clockevents_exchange_device()\n\nIf a device is shutdown, then there might be a pending interrupt,\nwhich will be processed after we reenable interrupts, which causes the\noriginal handler to be run. If the old handler is the (broadcast)\nperiodic handler the shutdown state might hang the kernel completely.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "c1be84309c58b1e7c6d626e28fba41a22b364c3d",
      "tree": "4d4db4e9ef8ceb5b762d4c2334e68b73858a1b07",
      "parents": [
        "b1f919664d04a8d0ba29cb76673c7ca3325a2006"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 12:34:16 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:06:54 2011 +0100"
      },
      "message": "tick-broadcast: Stop active broadcast device when replacing it\n\nWhen a better rated broadcast device is installed, then the current\nactive device is not disabled, which results in two running broadcast\ndevices.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "b1f919664d04a8d0ba29cb76673c7ca3325a2006",
      "tree": "eeaafc566a9023a794eaefcda8a5201ba7ffa9bc",
      "parents": [
        "6a8943d9ec2567572fca25cf69ad45844d0141a3"
      ],
      "author": {
        "name": "Yang Honggang (Joseph)",
        "email": "eagle.rtlinux@gmail.com",
        "time": "Thu Dec 01 22:22:41 2011 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 01 15:50:00 2011 -0800"
      },
      "message": "clocksource: Fix bug with max_deferment margin calculation\n\nIn order to leave a margin of 12.5% we should \u003e\u003e 3 not \u003e\u003e 5.\n\nCC: stable@kernel.org\nSigned-off-by: Yang Honggang (Joseph) \u003ceagle.rtlinux@gmail.com\u003e\n[jstultz: Modified commit subject]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a13b032776379fa6e2bfccf798969ca51e5fb052",
      "tree": "02d1d63341f5864c7515809e38845a60793619b4",
      "parents": [
        "babf000e62b812a602657bef68aeef75625206f2"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Thu Nov 24 12:27:26 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Nov 29 11:56:49 2011 +0100"
      },
      "message": "clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n\nThere\u0027s no Kconfig symbol GENERIC_CLOCKEVENTS_MIGR, so the check for it\nwill always fail.\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c28800a9c3caaf387d85ac665a25ebe99e480295",
      "tree": "401ba805709a65a9f5c1919b3dc763c70b64b38f",
      "parents": [
        "ce8f55c2a0ff652480c12a4f1f22ff5ce15e3a22",
        "27c9cd7e601632b3794e1c3344d37b86917ffb43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 08:43:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 08:43:52 2011 -0800"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  hrtimer: Fix extra wakeups from __remove_hrtimer()\n  timekeeping: add arch_offset hook to ktime_get functions\n  clocksource: Avoid selecting mult values that might overflow when adjusted\n  time: Improve documentation of timekeeeping_adjust()\n"
    },
    {
      "commit": "3f86f28ffc298e168692ce88791c1d64a03b655b",
      "tree": "0b0c8fa3e63e1f3e41f5da857f64d5395eb0d100",
      "parents": [
        "c9fad429d438fdd736ac6816b75d16c4cd626acd"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Oct 27 17:41:17 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 21 19:00:55 2011 -0800"
      },
      "message": "time: Fix spelling mistakes in new comments\n\nFixup spelling issues caught by Richard\n\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCC: Chen Jie \u003cchenj@lemote.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c9fad429d438fdd736ac6816b75d16c4cd626acd",
      "tree": "165c5edface9e59d4634ff2a5d0e6dd135d9532a",
      "parents": [
        "367177e50189ab0a983b52f3d3f7eb2a1927db71"
      ],
      "author": {
        "name": "Dan McGee",
        "email": "dpmcgee@gmail.com",
        "time": "Mon Oct 17 13:58:43 2011 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 21 19:00:46 2011 -0800"
      },
      "message": "time: fix bogus comment in timekeeping_get_ns_raw\n\nThe whole point of this function is to return a value not touched by\nNTP; unfortunately the comment got copied wholesale without adjustment\nfrom the timekeeping_get_ns function above.\n\nSigned-off-by: Dan McGee \u003cdpmcgee@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "d004e024058a0eaca097513ce62cbcf978913e0a",
      "tree": "94191734e099dd46b8998d813125efaa4a8a37d6",
      "parents": [
        "367177e50189ab0a983b52f3d3f7eb2a1927db71"
      ],
      "author": {
        "name": "Hector Palacios",
        "email": "hector.palacios@digi.com",
        "time": "Mon Nov 14 11:15:25 2011 +0100"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Nov 17 14:57:19 2011 -0800"
      },
      "message": "timekeeping: add arch_offset hook to ktime_get functions\n\nktime_get and ktime_get_ts were calling timekeeping_get_ns()\nbut later they were not calling arch_gettimeoffset() so architectures\nusing this mechanism returned 0 ns when calling these functions.\n\nThis happened for example when running Busybox\u0027s ping which calls\nsyscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts) which eventually\ncalls ktime_get. As a result the returned ping travel time was zero.\n\nCC: stable@kernel.org\nSigned-off-by: Hector Palacios \u003chector.palacios@digi.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "367177e50189ab0a983b52f3d3f7eb2a1927db71",
      "tree": "fed5e93eb35d002e21cb3c2fafbfe38062aaa266",
      "parents": [
        "c2bc11113c50449f23c40b724fe410fc2380a8e9",
        "d65670a78cdbfae94f20a9e05ec705871d7cdf2b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:10:42 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:10:42 2011 +0100"
      },
      "message": "Merge branch \u0027formingo/3.2/tip/timers/core\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n\nConflicts:\n\tkernel/time/timekeeping.c\n"
    },
    {
      "commit": "d65670a78cdbfae94f20a9e05ec705871d7cdf2b",
      "tree": "3c16dedb75fa5ab6c0fdc072cc8d73df01d43a17",
      "parents": [
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Oct 31 17:06:35 2011 -0400"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Nov 10 11:27:08 2011 -0800"
      },
      "message": "clocksource: Avoid selecting mult values that might overflow when adjusted\n\nFor some frequencies, the clocks_calc_mult_shift() function will\nunfortunately select mult values very close to 0xffffffff.  This\nhas the potential to overflow when NTP adjusts the clock, adding\nto the mult value.\n\nThis patch adds a clocksource.maxadj value, which provides\nan approximation of an 11% adjustment(NTP limits adjustments to\n500ppm and the tick adjustment is limited to 10%), which could\nbe made to the clocksource.mult value. This is then used to both\ncheck that the current mult value won\u0027t overflow/underflow, as\nwell as warning us if the timekeeping_adjust() code pushes over\nthat 11% boundary.\n\nv2: Fix max_adjustment calculation, and improve WARN_ONCE\nmessages.\n\nv3: Don\u0027t warn before maxadj has actually been set\n\nCC: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCC: David Daney \u003cddaney.cavm@gmail.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Chen Jie \u003cchenj@lemote.com\u003e\nCC: zhangfx \u003czhangfx@lemote.com\u003e\nCC: stable@kernel.org\nReported-by: Chen Jie \u003cchenj@lemote.com\u003e\nReported-by: zhangfx \u003czhangfx@lemote.com\u003e\nTested-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6e5fdeedca610df600aabc393c4b1f44b128fe49",
      "tree": "52a34c30bef1501f19c691a759b81b6f2603cd32",
      "parents": [
        "bdfa97bf7263657b83bc5b68567a3a60dde84c5b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:05 2011 -0400"
      },
      "message": "kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure\n\nThese files were getting \u003clinux/module.h\u003e via an implicit non-obvious\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "c2bc11113c50449f23c40b724fe410fc2380a8e9",
      "tree": "f5a6a5f9c199d6b3ed7a973dfb7556ad2af2bf5a",
      "parents": [
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Oct 27 18:12:42 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 28 08:57:38 2011 +0200"
      },
      "message": "time: Improve documentation of timekeeeping_adjust()\n\nAfter getting a number of questions in private emails about the\nmath around admittedly very complex timekeeping_adjust() and\ntimekeeping_big_adjust(), I figure the code needs some better\ncomments.\n\nHopefully the explanations are clear enough and don\u0027t muddy the\nwater any worse.\n\nStill needs documentation for ntp_error, but I couldn\u0027t recall\nexactly the full explanation behind the code that\u0027s there\n(although I do recall once working it out when Roman first\nproposed it). Given a bit more time I can probably work it out,\nbut I don\u0027t want to hold back this documentation until then.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Chen Jie \u003cchenj@lemote.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/1319764362-32367-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39adff5f69d6849ca22353a88058c9f8630528c0",
      "tree": "b0c2d2de77ebc5c97fd19c29b81eeb03549553f8",
      "parents": [
        "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)\n  time, s390: Get rid of compile warning\n  dw_apb_timer: constify clocksource name\n  time: Cleanup old CONFIG_GENERIC_TIME references that snuck in\n  time: Change jiffies_to_clock_t() argument type to unsigned long\n  alarmtimers: Fix error handling\n  clocksource: Make watchdog reset lockless\n  posix-cpu-timers: Cure SMP accounting oddities\n  s390: Use direct ktime path for s390 clockevent device\n  clockevents: Add direct ktime programming function\n  clockevents: Make minimum delay adjustments configurable\n  nohz: Remove \"Switched to NOHz mode\" debugging messages\n  proc: Consider NO_HZ when printing idle and iowait times\n  nohz: Make idle/iowait counter update conditional\n  nohz: Fix update_ts_time_stat idle accounting\n  cputime: Clean up cputime_to_usecs and usecs_to_cputime macros\n  alarmtimers: Rework RTC device selection using class interface\n  alarmtimers: Add try_to_cancel functionality\n  alarmtimers: Add more refined alarm state tracking\n  alarmtimers: Remove period from alarm structure\n  alarmtimers: Remove interval cap limit hack\n  ...\n"
    },
    {
      "commit": "19b4a8d520a6e0176dd52aaa429261ad4fcaa545",
      "tree": "6dcf5a780718fc50b9cd79cc803daa7c7e080a02",
      "parents": [
        "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
        "048b718029033af117870d3da47da12995be14a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)\n  rcu: Move propagation of -\u003ecompleted from rcu_start_gp() to rcu_report_qs_rsp()\n  rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent states\n  rcu: Wire up RCU_BOOST_PRIO for rcutree\n  rcu: Make rcu_torture_boost() exit loops at end of test\n  rcu: Make rcu_torture_fqs() exit loops at end of test\n  rcu: Permit rt_mutex_unlock() with irqs disabled\n  rcu: Avoid having just-onlined CPU resched itself when RCU is idle\n  rcu: Suppress NMI backtraces when stall ends before dump\n  rcu: Prohibit grace periods during early boot\n  rcu: Simplify unboosting checks\n  rcu: Prevent early boot set_need_resched() from __rcu_pending()\n  rcu: Dump local stack if cannot dump all CPUs\u0027 stacks\n  rcu: Move __rcu_read_unlock()\u0027s barrier() within if-statement\n  rcu: Improve rcu_assign_pointer() and RCU_INIT_POINTER() documentation\n  rcu: Make rcu_assign_pointer() unconditionally insert a memory barrier\n  rcu: Make rcu_implicit_dynticks_qs() locals be correct size\n  rcu: Eliminate in_irq() checks in rcu_enter_nohz()\n  nohz: Remove nohz_cpu_mask\n  rcu: Document interpretation of RCU-lockdep splats\n  rcu: Allow rcutorture\u0027s stat_interval parameter to be changed at runtime\n  ...\n"
    },
    {
      "commit": "fc0763f53e3ff6a6bfa66934662a3446b9ca6f16",
      "tree": "2671d3f6275c9707a620032658ecb05025e4e9fa",
      "parents": [
        "d7bd2d68aa2ee2738a10c8ad9346b805e4ab2e1c"
      ],
      "author": {
        "name": "Shi, Alex",
        "email": "alex.shi@intel.com",
        "time": "Thu Jul 28 14:56:12 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:38:29 2011 -0700"
      },
      "message": "nohz: Remove nohz_cpu_mask\n\nRCU no longer uses this global variable, nor does anyone else.  This\ncommit therefore removes this variable.  This reduces memory footprint\nand also removes some atomic instructions and memory barriers from\nthe dyntick-idle path.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4523f6ada86853750565c68e17126af2e3df9b8a",
      "tree": "cf43d425a52ef79b73abbeff07524b77cee48364",
      "parents": [
        "9fb60336253edf73dedc527b2aa2bf32eae0d6da"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 14 10:54:29 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 14 10:54:29 2011 +0200"
      },
      "message": "alarmtimers: Fix error handling\n\ncommit 8bc0daf (alarmtimers: Rework RTC device selection using class\ninterface) did not implement required error checks. Add them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2737c49f29a29f3d3645ba0778aa7a8798f32249",
      "tree": "28a56a7f4b31abe2ef79ff535755677781a70c3a",
      "parents": [
        "ddb6c9b58a19edcfac93ac670b066c836ff729f1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 16 16:58:34 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:12:00 2011 +0200"
      },
      "message": "locking, timer_stats: Annotate table_lock as raw\n\nThe table_lock lock can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nReported-by: Andreas Sundebo \u003ckernel@sundebo.dk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Andreas Sundebo \u003ckernel@sundebo.dk\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9fb60336253edf73dedc527b2aa2bf32eae0d6da",
      "tree": "926cb7ca98eaacea06c8b951ee8b3a1330522c82",
      "parents": [
        "e8abccb719377af63cb0f1fed289db405e3def16"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 12 13:32:23 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 13 09:58:29 2011 +0200"
      },
      "message": "clocksource: Make watchdog reset lockless\n\nKGDB needs to trylock watchdog_lock when trying to reset the\nclocksource watchdog after the system has been stopped to avoid a\npotential deadlock. When the trylock fails TSC usually becomes\nunstable.\n\nWe can be more clever by using an atomic counter and checking it in\nthe clocksource_watchdog callback. We restart the watchdog whenever\nthe counter is \u003e 0 and only decrement the counter when we ran through\na full update cycle.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nAcked-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1109121326280.2723@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "65516f8a7c2028381f0dae4c16ddb621c96158cc",
      "tree": "1f6192832c77e25499331b074398e165c1220197",
      "parents": [
        "d1748302f70be7469809809283fe164156a34231"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 23 15:29:43 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:56 2011 +0200"
      },
      "message": "clockevents: Add direct ktime programming function\n\nThere is at least one architecture (s390) with a sane clockevent device\nthat can be programmed with the equivalent of a ktime. No need to create\na delta against the current time, the ktime can be used directly.\n\nA new clock device function \u0027set_next_ktime\u0027 is introduced that is called\nwith the unmodified ktime for the timer if the clock event device has the \nCLOCK_EVT_FEAT_KTIME bit set.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823133142.815350967@de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d1748302f70be7469809809283fe164156a34231",
      "tree": "c81137f4126f2fe1451c28441415c1cd0fa0f7cd",
      "parents": [
        "29c158e81c733ac7d6a75c5ee929f34fb9f92983"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 23 15:29:42 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:56 2011 +0200"
      },
      "message": "clockevents: Make minimum delay adjustments configurable\n\nThe automatic increase of the min_delta_ns of a clockevents device\nshould be done in the clockevents code as the minimum delay is an\nattribute of the clockevents device.\n\nIn addition not all architectures want the automatic adjustment, on a\nmassively virtualized system it can happen that the programming of a\nclock event fails several times in a row because the virtual cpu has\nbeen rescheduled quickly enough. In that case the minimum delay will\nerroneously be increased with no way back. The new config symbol\nGENERIC_CLOCKEVENTS_MIN_ADJUST is used to enable the automatic\nadjustment. The config option is selected only for x86.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823133142.494157493@de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "29c158e81c733ac7d6a75c5ee929f34fb9f92983",
      "tree": "ba15b52ae3474f2451b3c2301413da05606ccdaf",
      "parents": [
        "a25cac5198d4ff2842ccca63b423962848ad24b2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 23 13:20:46 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Remove \"Switched to NOHz mode\" debugging messages\n\nWhen performing cpu hotplug tests the kernel printk log buffer gets flooded\nwith pointless \"Switched to NOHz mode...\" messages. Especially when afterwards\nanalyzing a dump this might have removed more interesting stuff out of the\nbuffer.\nAssuming that switching to NOHz mode simply works just remove the printk.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823112046.GB2540@osiris.boeblingen.de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "09a1d34f8535ecf9a347ea76f7597730c2bc0c8d",
      "tree": "5de69591f64e995737a62cf26d8bb3a927b27d79",
      "parents": [
        "6beea0cda8ce71c01354e688e5735c47e331e84f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Aug 24 09:39:30 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Make idle/iowait counter update conditional\n\nget_cpu_{idle,iowait}_time_us update idle/iowait counters\nunconditionally if the given CPU is in the idle loop.\n\nThis doesn\u0027t work well outside of CPU governors which are singletons\nso nobody (except for IRQ) can race with them.\n\nWe will need to use both functions from /proc/stat handler to properly\nhandle nohz idle/iowait times.\n\nMake the update depend on a non NULL last_update_time argument.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLink: http://lkml.kernel.org/r/11f23179472635ce52e78921d47a20216b872f23.1314172057.git.mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6beea0cda8ce71c01354e688e5735c47e331e84f",
      "tree": "7556787053d608134184d98413cce744d54507fc",
      "parents": [
        "ef0e0f5ed9bde6d1e3376169785a463ad2160e6d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Aug 24 09:37:48 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Fix update_ts_time_stat idle accounting\n\nupdate_ts_time_stat currently updates idle time even if we are in\niowait loop at the moment. The only real users of the idle counter\n(via get_cpu_idle_time_us) are CPU governors and they expect to get\ncumulative time for both idle and iowait times.\nThe value (idle_sleeptime) is also printed to userspace by print_cpu\nbut it prints both idle and iowait times so the idle part is misleading.\n\nLet\u0027s clean this up and fix update_ts_time_stat to account both counters\nproperly and update consumers of idle to consider iowait time as well.\nIf we do this we might use get_cpu_{idle,iowait}_time_us from other\ncontexts as well and we will get expected values.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLink: http://lkml.kernel.org/r/e9c909c221a8da402c4da07e4cd968c3218f8eb1.1314172057.git.mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8bc0dafb5cf38a19484dfb16e2c6d29e85820046",
      "tree": "af2f0000b9cc95567cc4bab5966ef6fd887c6f1f",
      "parents": [
        "9082c465a5403f4a98734193e078552991a2e283"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jul 14 18:35:13 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:30 2011 -0700"
      },
      "message": "alarmtimers: Rework RTC device selection using class interface\n\nThis allows cleaner detection of the RTC device being registered, rather\nthen probing any time someone calls alarmtimer_get_rtcdev.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "9082c465a5403f4a98734193e078552991a2e283",
      "tree": "387e564f326488abe9ee84b0c723294ea573de1e",
      "parents": [
        "a28cde81ab13cc251748a4c4ef06883dd09a10ea"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 12:41:36 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:29 2011 -0700"
      },
      "message": "alarmtimers: Add try_to_cancel functionality\n\nThere\u0027s a number of edge cases when cancelling a alarm, so\nto be sure we accurately do so, introduce try_to_cancel, which\nreturns proper failure errors if it cannot. Also modify cancel\nto spin until the alarm is properly disabled.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a28cde81ab13cc251748a4c4ef06883dd09a10ea",
      "tree": "b38ce180912957731cfe736d1d3f978342d099e1",
      "parents": [
        "9e26476243e438f4534a562660c1296a15a9e202"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 12:30:21 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:27 2011 -0700"
      },
      "message": "alarmtimers: Add more refined alarm state tracking\n\nIn order to allow for functionality like try_to_cancel, add\nmore refined  state tracking (similar to hrtimers).\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "9e26476243e438f4534a562660c1296a15a9e202",
      "tree": "d70609d91f0aab85ad9768500b7e57623d9e3eae",
      "parents": [
        "d77e23accec56bf2ba12187fe77a2f500a511282"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 12:09:24 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:26 2011 -0700"
      },
      "message": "alarmtimers: Remove period from alarm structure\n\nNow that periodic alarmtimers are managed by the handler function,\nremove the period value from the alarm structure and let the handlers\nmanage the interval on their own.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "d77e23accec56bf2ba12187fe77a2f500a511282",
      "tree": "f6d875739df0e4c9b48628ce2eaad8581eb736b1",
      "parents": [
        "dce75a8c71819ed4c7efdcd53c9b6f6356dc8cb5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 11:40:23 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:24 2011 -0700"
      },
      "message": "alarmtimers: Remove interval cap limit hack\n\nNow that the alarmtimers code has been refactored, the interval\ncap limit can be removed.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "dce75a8c71819ed4c7efdcd53c9b6f6356dc8cb5",
      "tree": "76d25888bb83814fc1f9d5f8838483730ca59882",
      "parents": [
        "54da23b720d5d612f8f1669f9ed3744008fb7382"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 11:31:03 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:23 2011 -0700"
      },
      "message": "alarmtimers: Add alarm_forward functionality\n\nIn order to avoid wasting time expiring and re-adding very high freq\nperiodic alarmtimers, introduce alarm_forward() which is similar to\nhrtimer_forward and moves the timer to the next future expiration time\nand returns the number of overruns.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "54da23b720d5d612f8f1669f9ed3744008fb7382",
      "tree": "52bfd90a34c4ad9de858ecb30d212104d0176845",
      "parents": [
        "4b41308d2d0398409620613c7eaaaf52c738b042"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 11:08:07 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:22 2011 -0700"
      },
      "message": "alarmtimers: Push rearming peroidic timers down into alamrtimer handler\n\nThis patch pushes the periodic alarmtimer re-arming down into the alarmtimer\nhandler, mimicking how hrtimers handle this.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "4b41308d2d0398409620613c7eaaaf52c738b042",
      "tree": "47a6becae6272eb9c06e57a0a9d1698b8f1811c8",
      "parents": [
        "6af7e471e5a7746b8024d70b4363d3dfe41d36b8"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:37:59 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:20 2011 -0700"
      },
      "message": "alarmtimers: Change alarmtimer functions to return alarmtimer_restart values\n\nIn order to properly fix the denial of service issue with high freq\nperiodic alarm timers, we need to push the re-arming logic into the\nalarm timer handler, much as the hrtimer code does.\n\nThis patch introduces alarmtimer_restart enum and changes the\nalarmtimer handler declarations to use it as a return value. Further,\nto ease following changes, it extends the alarmtimer handler functions\nto also take the time at expiration. No logic is yet modified.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6af7e471e5a7746b8024d70b4363d3dfe41d36b8",
      "tree": "33b1af81dfadefcc367307939acbb0d28c07c7c1",
      "parents": [
        "ea7802f630d356acaf66b3c0b28c00a945fc35dc"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible denial of service with high freq periodic timers\n\nIts possible to jam up the alarm timers by setting very small interval\ntimers, which will cause the alarmtimer subsystem to spend all of its time\nfiring and restarting timers. This can effectivly lock up a box.\n\nA deeper fix is needed, closely mimicking the hrtimer code, but for now\njust cap the interval to 100us to avoid userland hanging the system.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ea7802f630d356acaf66b3c0b28c00a945fc35dc",
      "tree": "9eb23fe08c124bfab7af964c3a4c614ac61c93aa",
      "parents": [
        "971c90bfa2f0b4fe52d6d9002178d547706f1343"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:51:56 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 07:10:09 2011 -0700"
      },
      "message": "alarmtimers: Memset itimerspec passed into alarm_timer_get\n\nFollowing common_timer_get, zero out the itimerspec passed in.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "971c90bfa2f0b4fe52d6d9002178d547706f1343",
      "tree": "f3075f495780a0ffc5d433ae7cb93aca8a40cf8e",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:25:35 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 07:09:53 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible null pointer traversal\n\nWe don\u0027t check if old_setting is non null before assigning it, so\ncorrect this.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "112ec469663e09ffc815761254b52f3ca787ce83",
      "tree": "18a7d2300dc10b7c2c994107681dffc927589701",
      "parents": [
        "a99a7d1436f9375662f35ccac8f1a1e1b0302a11",
        "cbaa51524b3224813814607177a00c350ee35d12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:52:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:52:18 2011 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  time: Fix stupid KERN_WARN compile issue\n  rtc: Avoid accumulating time drift in suspend/resume\n  time: Avoid accumulating time drift in suspend/resume\n  time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime\n"
    },
    {
      "commit": "cbaa51524b3224813814607177a00c350ee35d12",
      "tree": "34f0fabff444e5dde2ee2b92d841abb97daf41b1",
      "parents": [
        "3dcad5ff08f65ae30832220a0e0ee2eac3502a1a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jul 20 15:42:55 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jul 20 15:42:55 2011 -0700"
      },
      "message": "time: Fix stupid KERN_WARN compile issue\n\nTerribly embarassing. Don\u0027t know how I committed this, but its\nKERN_WARNING not KERN_WARN.\n\nThis fixes the following compile error:\nkernel/time/timekeeping.c: In function ‘__timekeeping_inject_sleeptime’:\nkernel/time/timekeeping.c:608: error: ‘KERN_WARN’ undeclared (first use in this function)\nkernel/time/timekeeping.c:608: error: (Each undeclared identifier is reported only once\nkernel/time/timekeeping.c:608: error: for each function it appears in.)\nkernel/time/timekeeping.c:608: error: expected ‘)’ before string constant\nmake[2]: *** [kernel/time/timekeeping.o] Error 1\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "cb33217b1b2523895eb328a0b13fb3b1c4000969",
      "tree": "f3ce72c0f6cb9a23411c2639acf300f1f453a3c0",
      "parents": [
        "cb5de2f8d0306be38f9b377b8a5c56acca7dbc3d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue May 31 22:53:23 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:55:37 2011 -0700"
      },
      "message": "time: Avoid accumulating time drift in suspend/resume\n\nBecause the read_persistent_clock interface is usually backed by\nonly a second granular interface, each time we read from the persistent\nclock for suspend/resume, we introduce a half second (on average) of error.\n\nIn order to avoid this error accumulating as the system is suspended\nover and over, this patch measures the time delta between the persistent\nclock and the system CLOCK_REALTIME.\n\nIf the delta is less then 2 seconds from the last suspend, we compensate\nby using the previous time delta (keeping it close). If it is larger\nthen 2 seconds, we assume the clock was set or has been changed, so we\ndo no correction and update the delta.\n\nNote: If NTP is running, ths could seem to \"fight\" with the NTP corrected\ntime, where as if the system time was off by 1 second, and NTP slewed the\nvalue in, a suspend/resume cycle could undo this correction, by trying to\nrestore the previous offset from the persistent clock.  However, without\nthis patch, since each read could cause almost a full second worth of\nerror, its possible to get almost 2 seconds of error just from the\nsuspend/resume cycle alone, so this about equal to any offset added by\nthe compensation.\n\nFurther on systems that suspend/resume frequently, this should keep time\ncloser then NTP could compensate for if the errors were allowed to\naccumulate.\n\nCredits to Arve Hjønnevåg for suggesting this solution.\n\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "cb5de2f8d0306be38f9b377b8a5c56acca7dbc3d",
      "tree": "9edd5bd1fd1e41be44026a37b2184200f6f90d50",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 01 18:18:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:55:36 2011 -0700"
      },
      "message": "time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime\n\nArve suggested making sure we catch possible negative sleep time\nintervals that could be passed into timekeeping_inject_sleeptime.\n\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "1c6b39ad3f01514fd8dd84b5b412bafb75c19388",
      "tree": "bd31cf5d3e67acc9ef23c97ddd92c961b73f40c7",
      "parents": [
        "c008ba58af24dc5d0d8e9fe6e59d876910254761"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:47:37 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:32:28 2011 -0700"
      },
      "message": "alarmtimers: Return -ENOTSUPP if no RTC device is present\n\nToralf Förster and Richard Weinberger noted that if there is\nno RTC device, the alarm timers core prints out an annoying\n\"ALARM timers will not wake from suspend\" message.\n\nThis warning has been removed in a previous patch, however\nthe issue still remains:  The original idea was to support\nalarm timers even if there was no rtc device, as long as the\nsystem didn\u0027t go into suspend.\n\nHowever, after further consideration, communicating to the application\nthat alarmtimers are not fully functional seems like the better\nsolution.\n\nSo this patch makes it so we return -ENOTSUPP to any posix _ALARM\nclockid calls if there is no backing RTC device on the system.\n\nFurther this changes the behavior where when there is no rtc device\nwe will check for one on clock_getres, clock_gettime, timer_create,\nand timer_nsleep instead of on suspend.\n\nCC: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: Richard Weinberger \u003crichard@nod.at\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nReported by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c008ba58af24dc5d0d8e9fe6e59d876910254761",
      "tree": "0e718ce49992b6a7dfde619cd6ebf05afe06ae12",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:27:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 15:38:33 2011 -0700"
      },
      "message": "alarmtimers: Handle late rtc module loading\n\nThe alarmtimers code currently picks a rtc device to use at\nlate init time. However, if your rtc driver is loaded as a module,\nit may be registered after the alarmtimers late init code, leaving\nthe alarmtimers nonfunctional.\n\nThis patch moves the the rtcdevice selection to when we actually try\nto use it, allowing us to make use of rtc modules that may have been\nloaded at any point since bootup.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "b5199515c25cca622495eb9c6a8a1d275e775088",
      "tree": "250fc4f3d02c58eddf770e9d040edeafd0012e76",
      "parents": [
        "1123d93963cbd2546449d4d9f0c568e323cb0ac6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 16:22:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 19:30:53 2011 +0200"
      },
      "message": "clocksource: Make watchdog robust vs. interruption\n\nThe clocksource watchdog code is interruptible and it has been\nobserved that this can trigger false positives which disable the TSC.\n\nThe reason is that an interrupt storm or a long running interrupt\nhandler between the read of the watchdog source and the read of the\nTSC brings the two far enough apart that the delta is larger than the\nunstable treshold. Move both reads into a short interrupt disabled\nregion to avoid that.\n\nReported-and-tested-by: Vernon Mauery \u003cvernux@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "1b054b67d3bfc6dca9f634c104780f3f24ff3eec",
      "tree": "af50fb7333001692879c18474e84ac2736f984d1",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "message": "clockevents: Handle empty cpumask gracefully\n\nFor UP it\u0027s stupid to request an initialized cpumask for the clock\nevent devices. Though we need the mask set even on UP to avoid a\nhorrible ifdeffery especially in the broadcast code.\n\nFor SMP we can at least try to survive with a warning and set the\ncpumask of the cpu we\u0027re running on. That gives a decent chance to\nbring the machine up and retrieve the debug info.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\nCc: Lee Jones \u003clee.jones@linaro.org\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5",
      "tree": "c8b370496497b4f96d6a17da906bdd9314e9a090",
      "parents": [
        "f24444b01bf6c51c300fd3ffc73423383d747882"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 13:05:15 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 23 13:59:54 2011 +0200"
      },
      "message": "hrtimers: Avoid touching inactive timer bases\n\nInstead of iterating over all possible timer bases avoid it by marking\nthe active bases in the cpu base.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "250f972d85effad5b6e10da4bbd877e6a4b503b6",
      "tree": "007393a6fc6439af7e0121dd99a6f9f9fb8405bc",
      "parents": [
        "7372b0b122af0f6675f3ab65bfd91c8a438e0480",
        "bbe7b8bef48c567f5ff3f6041c1fb011292e8f12"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 20:06:24 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 20:08:05 2011 +0200"
      },
      "message": "Merge branch \u0027timers/urgent\u0027 into timers/core\n\nReason: Get upstream fixes and kfree_rcu which is necessary for a\nfollow up patch.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c0e299b1a91cbdb21ae08e382a4176200398bc36",
      "tree": "096a6b082fcf1bd816d78654057d11af823361c5",
      "parents": [
        "257313b2a87795e07a0bdf58d0fffbdba8b31051"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 10:50:52 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 10:50:52 2011 +0200"
      },
      "message": "clockevents/source: Use u64 to make 32bit happy\n\nunsigned long is not 64bit on 32bit machine.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "78c4def67e8eebe602655a3dec9aa08f0e2f7c4b",
      "tree": "8c0c756bbff7325f5c2a773f8cc64d8390ebe5b5",
      "parents": [
        "7e6628e4bcb3b3546c625ec63ca724f28ab14f0c",
        "942c3c5c329274fa6de5998cb911cf3d0a42d0b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:45:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:45:08 2011 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimer: Make lookup table const\n  RTC: Disable CONFIG_RTC_CLASS from being built as a module\n  timers: Fix alarmtimer build issues when CONFIG_RTC_CLASS\u003dn\n  timers: Remove delayed irqwork from alarmtimers implementation\n  timers: Improve alarmtimer comments and minor fixes\n  timers: Posix interface for alarm-timers\n  timers: Introduce in-kernel alarm-timer interface\n  timers: Add rb_init_node() to allow for stack allocated rb nodes\n  time: Add timekeeping_inject_sleeptime\n"
    },
    {
      "commit": "7e6628e4bcb3b3546c625ec63ca724f28ab14f0c",
      "tree": "111a94cefa9d800ec5c5e59520f4b5d1880965d0",
      "parents": [
        "0f1bdc1815c4cb29b3cd71a7091b478e426faa0b",
        "ab0e08f15d23628dd8d50bf6ce1a935a8840c7dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:44:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:44:40 2011 -0700"
      },
      "message": "Merge branch \u0027timers-clockevents-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-clockevents-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: hpet: Cleanup the clockevents init and register code\n  x86: Convert PIT to clockevents_config_and_register()\n  clockevents: Provide interface to reconfigure an active clock event device\n  clockevents: Provide combined configure and register function\n  clockevents: Restructure clock_event_device members\n  clocksource: Get rid of the hardcoded 5 seconds sleep time limit\n  clocksource: Restructure clocksource struct members\n"
    },
    {
      "commit": "80b816b736cfa5b9582279127099b20a479ab7d9",
      "tree": "94a2963c05e8e24d6153a0a2fae2f43fe05605bc",
      "parents": [
        "57f0fcbe1dea8a36c9d1673086326059991c5f81"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 18 21:33:42 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 19 14:24:16 2011 +0200"
      },
      "message": "clockevents: Provide interface to reconfigure an active clock event device\n\nSome ARM SoCs have clock event devices which have their frequency\nmodified due to frequency scaling. Provide an interface which allows\nto reconfigure an active device. After reconfiguration reprogram the\ncurrent pending event.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: LAK \u003clinux-arm-kernel@lists.infradead.org\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLink: http://lkml.kernel.org/r/%3C20110518210136.437459958%40linutronix.de%3E\n"
    },
    {
      "commit": "57f0fcbe1dea8a36c9d1673086326059991c5f81",
      "tree": "c56c00307052034a64d2577819fdf21271446ebe",
      "parents": [
        "847b2f42be203f3cff7f243fdd3ee50c1e06c882"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 18 21:33:41 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 19 14:24:15 2011 +0200"
      },
      "message": "clockevents: Provide combined configure and register function\n\nAll clockevent devices have the same open coded initialization\nfunctions. Provide an interface which does all necessary\ninitialization in the core code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLink: http://lkml.kernel.org/r/%3C20110518210136.331975870%40linutronix.de%3E\n"
    },
    {
      "commit": "724ed53e8ac2c5278af8955673049714c1073464",
      "tree": "51762a734e564fb973758014997ee99406693541",
      "parents": [
        "369db4c9524b7487faf1ff89646eee396c1363e1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 18 21:33:40 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 19 14:24:15 2011 +0200"
      },
      "message": "clocksource: Get rid of the hardcoded 5 seconds sleep time limit\n\nSlow clocksources can have a way longer sleep time than 5 seconds and\neven fast ones can easily cope with 600 seconds and still maintain\nproper accuracy.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLink: http://lkml.kernel.org/r/%3C20110518210136.109811585%40linutronix.de%3E\n"
    },
    {
      "commit": "07f4beb0b5bbfaf36a64aa00d59e670ec578a95a",
      "tree": "13c0fbeb4586cd0a9c7cd8258575c39e0481ca7a",
      "parents": [
        "557d97d57446f55d2c4a66593794ea31ffd0a74d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 16 11:07:48 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 16 23:35:41 2011 +0200"
      },
      "message": "tick: Clear broadcast active bit when switching to oneshot\n\nThe first cpu which switches from periodic to oneshot mode switches\nalso the broadcast device into oneshot mode. The broadcast device\nserves as a backup for per cpu timers which stop in deeper\nC-states. To avoid starvation of the cpus which might be in idle and\ndepend on broadcast mode it marks the other cpus as broadcast active\nand sets the brodcast expiry value of those cpus to the next tick.\n\nThe oneshot mode broadcast bit for the other cpus is sticky and gets\nonly cleared when those cpus exit idle. If a cpu was not idle while\nthe bit got set in consequence the bit prevents that the broadcast\ndevice is armed on behalf of that cpu when it enters idle for the\nfirst time after it switched to oneshot mode.\n\nIn most cases that goes unnoticed as one of the other cpus has usually\na timer pending which keeps the broadcast device armed with a short\ntimeout. Now if the only cpu which has a short timer active has the\nbit set then the broadcast device will not be armed on behalf of that\ncpu and will fire way after the expected timer expiry. In the case of\nChristians bug report it took ~145 seconds which is about half of the\nwrap around time of HPET (the limit for that device) due to the fact\nthat all other cpus had no timers armed which expired before the 145\nseconds timeframe.\n\nThe solution is simply to clear the broadcast active bit\nunconditionally when a cpu switches to oneshot mode after the first\ncpu switched the broadcast device over. It\u0027s not idle at that point\notherwise it would not be executing that code.\n\n[ I fundamentally hate that broadcast crap. Why the heck thought some\n  folks that when going into deep idle it\u0027s a brilliant concept to\n  switch off the last device which brings the cpu back from that\n  state? ]\n\nThanks to Christian for providing all the valuable debug information!\n\nReported-and-tested-by: Christian Hoffmann \u003cemail@christianhoffmann.info\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/%3Calpine.LFD.2.02.1105161105170.3078%40ionos%3E\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7372b0b122af0f6675f3ab65bfd91c8a438e0480",
      "tree": "5dcd0f94e0064b76573837da09ca5277b7e5f068",
      "parents": [
        "179eb03268aa1da03d90f1566ea85dc1478d3ae3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed May 04 15:09:27 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 05 17:32:13 2011 +0200"
      },
      "message": "clockevents: Move C3 stop test outside lock\n\nAvoid taking broadcast_lock in the idle path for systems where the\ntimer doesn\u0027t stop in C3.\n\n[ tglx: Removed the stale label and added comment ]\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Dave Kleikamp \u003cdkleikamp@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: lenb@kernel.org\nCc: paulmck@us.ibm.com\nLink: http://lkml.kernel.org/r/%3C20110504234806.GF2925%40one.firstfloor.org%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "e05b2efb82596905ebfe88e8612ee81dec9b6592",
      "tree": "9b688eb473943588adf667729c0ffa3b9f032cac",
      "parents": [
        "5895198c56d131cc696556a45f7ff0ea99ac297b"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Wed May 04 18:16:50 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 05 15:23:26 2011 +0200"
      },
      "message": "clocksource: Install completely before selecting\n\nChristian Hoffmann reported that the command line clocksource override\nwith acpi_pm timer fails:\n\n Kernel command line: \u003cSNIP\u003e clocksource\u003dacpi_pm\n hpet clockevent registered\n Switching to clocksource hpet\n Override clocksource acpi_pm is not HRT compatible.\n Cannot switch while in HRT/NOHZ mode.\n\nThe watchdog code is what enables CLOCK_SOURCE_VALID_FOR_HRES, but we\nactually end up selecting the clocksource before we enqueue it into\nthe watchdog list, so that\u0027s why we see the warning and fail to switch\nto acpi_pm timer as requested. That\u0027s particularly bad when we want to\ndebug timekeeping related problems in early boot.\n\nPut the selection call last.\n\nReported-by: Christian Hoffmann \u003cemail@christianhoffmann.info\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: stable@kernel.org # 32...\nLink: http://lkml.kernel.org/r/%3C1304558210.2943.24.camel%40work-vm%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "179eb03268aa1da03d90f1566ea85dc1478d3ae3",
      "tree": "fda7d48258075bf84f12ce143ab7cd260bbc92e8",
      "parents": [
        "ce788f930b0cdf821de7ee8f84cfe8cf7fcb6311"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 04 08:18:34 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 04 08:18:34 2011 +0200"
      },
      "message": "alarmtimer: Drop device refcount after rtc_open()\n\nclass_find_device() takes a refcount on the rtc device. rtc_open()\ntakes another one, so we can drop it after the rtc_open() call.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ce788f930b0cdf821de7ee8f84cfe8cf7fcb6311",
      "tree": "4f4d451b4e81d6693199fcfb405f6133e6cae61c",
      "parents": [
        "99ee5315dac6211e972fa3f23bcc9a0343ff58c4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 04 08:00:47 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 04 08:18:17 2011 +0200"
      },
      "message": "alarmtimer: Check return value of class_find_device()\n\nalarmtimer_late_init() uses class_find_device() to find a alarm\ncapable rtc device. The match callback stores a pointer to the name in\nthe char pointer handed in from the call site. alarmtimer_late_init()\nchecks the char pointer for NULL, but the pointer is on the stack and\nnot initialized to NULL before the call. So it can have random content\nwhen the match function did not identify a device, which leads to\nrandom access in the following rtc_open() call where the pointer is\ndereferenced\n\nInstead of relying on the char pointer, check the return value of\nclass_find_device. If a device is found then the name pointer is valid\nas well.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "99ee5315dac6211e972fa3f23bcc9a0343ff58c4",
      "tree": "6663d6ceaabcb9bac03193e2781cdbe6a139f70c",
      "parents": [
        "b12a03ce4880bd13786a98db6de494a3e0123129"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 27 14:16:42 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 02 21:39:15 2011 +0200"
      },
      "message": "timerfd: Allow timers to be cancelled when clock was set\n\nSome applications must be aware of clock realtime being set\nbackward. A simple example is a clock applet which arms a timer for\nthe next minute display. If clock realtime is set backward then the\napplet displays a stale time for the amount of time which the clock\nwas set backwards. Due to that applications poll the time because we\ndon\u0027t have an interface.\n\nExtend the timerfd interface by adding a flag which puts the timer\nonto a different internal realtime clock. All timers on this clock are\nexpired whenever the clock was set.\n\nThe timerfd core records the monotonic offset when the timer is\ncreated. When the timer is armed, then the current offset is compared\nto the previous recorded offset. When it has changed, then\ntimerfd_settime returns -ECANCELED. When a timer is read the offset is\ncompared and if it changed -ECANCELED returned to user space. Periodic\ntimers are not rearmed in the cancelation case.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Chris Friesen \u003cchris.friesen@genband.com\u003e\nTested-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nReviewed-by: Alexander Shishkin \u003cvirtuoso@slind.org\u003e\nLink: http://lkml.kernel.org/r/%3Calpine.LFD.2.02.1104271359580.3323%40ionos%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b12a03ce4880bd13786a98db6de494a3e0123129",
      "tree": "2a8f2cf0d1d6749b4a33cc07c9b7839a4a139e9a",
      "parents": [
        "942c3c5c329274fa6de5998cb911cf3d0a42d0b1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 02 16:48:57 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 02 21:37:58 2011 +0200"
      },
      "message": "hrtimers: Prepare for cancel on clock was set timers\n\nMake clock_was_set() unconditional and rename hres_timers_resume to\nhrtimers_resume. This is a preparatory patch for hrtimers which are\ncancelled when clock realtime was set.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "472647dcd7e351dbeda750e5ab3e8f7b06d1199a",
      "tree": "536842fa33d135d4b18e6d1dd5cf573a5b53719c",
      "parents": [
        "7068b7a16270f1e85a8893d74b0f3c58d7826883"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Apr 29 15:03:10 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 02 21:36:57 2011 +0200"
      },
      "message": "timers: Fix alarmtimer build issues when CONFIG_RTC_CLASS\u003dn\n\nIngo pointed out that the alarmtimers won\u0027t build if CONFIG_RTC_CLASS\u003dn.\nThis patch adds proper ifdefs to the alarmtimer code to disable the rtc\nusage if it is not built in.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7068b7a16270f1e85a8893d74b0f3c58d7826883",
      "tree": "114143f4724543c89d93e95bbb7d3f03f1abb5d6",
      "parents": [
        "180bf812ceaf01eb8ac69b86f3be0bd57f697668"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Apr 28 13:29:18 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Apr 28 13:39:18 2011 -0700"
      },
      "message": "timers: Remove delayed irqwork from alarmtimers implementation\n\nThomas asked about the delayed irq work in the alarmtimers code,\nand I realized that it was a legacy from when the alarmtimer base\nlock was a mutex (due to concerns that we\u0027d be interacting with\nthe RTC device, which is protected by mutexes).\n\nSince the alarmtimer base is now protected by a spinlock, we can\nsimply execute alarmtimer functions directly from the hrtimer\ncallback. Should any future alarmtimer functions sleep, they can\nsimply manage scheduling any delayed work themselves.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "180bf812ceaf01eb8ac69b86f3be0bd57f697668",
      "tree": "e61166d1267a15115dc602875ec03835afc1afe7",
      "parents": [
        "9a7adcf5c6dea63d2e47e6f6d2f7a6c9f48b9337"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Apr 28 12:58:11 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Apr 28 13:39:17 2011 -0700"
      },
      "message": "timers: Improve alarmtimer comments and minor fixes\n\nThis patch addresses a number of minor comment improvements and\nother minor issues from Thomas\u0027 review of the alarmtimers code.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "9a7adcf5c6dea63d2e47e6f6d2f7a6c9f48b9337",
      "tree": "151f7fbb135053945fc6eae99c9175e860ad343c",
      "parents": [
        "ff3ead96d17f47ee70c294a5cc2cce9b61e82f0f"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jan 11 09:54:33 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Apr 26 14:01:46 2011 -0700"
      },
      "message": "timers: Posix interface for alarm-timers\n\nThis patch exposes alarm-timers to userland via the posix clock\nand timers interface, using two new clockids: CLOCK_REALTIME_ALARM\nand CLOCK_BOOTTIME_ALARM. Both clockids behave identically to\nCLOCK_REALTIME and CLOCK_BOOTTIME, respectively, but timers\nset against the _ALARM suffixed clockids will wake the system if\nit is suspended.\n\nSome background can be found here:\n\thttps://lwn.net/Articles/429925/\n\nThe concept for Alarm-timers was inspired by the Android Alarm\ndriver (by Arve Hjønnevåg) found in the Android kernel tree.\n\nSee: http://android.git.kernel.org/?p\u003dkernel/common.git;a\u003dblob;f\u003ddrivers/rtc/alarm.c;h\u003d1250edfbdf3302f5e4ea6194847c6ef4bb7beb1c;hb\u003dandroid-2.6.36\n\nWhile the in-kernel interface is pretty similar between\nalarm-timers and Android alarm driver, the user-space interface\nfor the Android alarm driver is via ioctls to a new char device.\nAs mentioned above, I\u0027ve instead chosen to export this functionality\nvia the posix interface, as it seemed a little simpler and avoids\ncreating duplicate interfaces to things like CLOCK_REALTIME and\nCLOCK_MONOTONIC under alternate names (ie:ANDROID_ALARM_RTC and\nANDROID_ALARM_SYSTEMTIME).\n\nThe semantics of the Android alarm driver are different from what\nthis posix interface provides. For instance, threads other then\nthe thread waiting on the Android alarm driver are able to modify\nthe alarm being waited on. Also this interface does not allow\nthe same wakelock semantics that the Android driver provides\n(ie: kernel takes a wakelock on RTC alarm-interupt, and holds it\nthrough process wakeup, and while the process runs, until the\nprocess either closes the char device or calls back in to wait\non a new alarm).\n\nOne potential way to implement similar semantics may be via\nthe timerfd infrastructure, but this needs more research.\n\nThere may also need to be some sort of sysfs system level policy\nhooks that allow alarm timers to be disabled to keep them\nfrom firing at inappropriate times (ie: laptop in a well insulated\nbag, mid-flight).\n\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ff3ead96d17f47ee70c294a5cc2cce9b61e82f0f",
      "tree": "e87fc16e1fc4a80b9591c2b1d02c99459254aa95",
      "parents": [
        "88d19cf37952a7e1e38b2bf87a00f0e857e63180"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jan 11 09:42:13 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Apr 26 14:01:44 2011 -0700"
      },
      "message": "timers: Introduce in-kernel alarm-timer interface\n\nThis provides the in kernel interface and infrastructure for\nalarm-timers.\n\nAlarm-timers are a hybrid style timer, similar to hrtimers,\nbut when the system is suspended, the RTC device is set to\nfire and wake the system for when the soonest alarm-timer\nexpires.\n\nThe concept for Alarm-timers was inspired by the Android Alarm\ndriver (by Arve Hjønnevåg) found in the Android kernel tree.\n\nSee: http://android.git.kernel.org/?p\u003dkernel/common.git;a\u003dblob;f\u003ddrivers/rtc/alarm.c;h\u003d1250edfbdf3302f5e4ea6194847c6ef4bb7beb1c;hb\u003dandroid-2.6.36\n\nThis in-kernel interface should be fairly compatible with the\nAndroid alarm driver in-kernel interface, but has the advantage\nof utilizing the new RTC timerqueue code instead of doing direct\nRTC manipulation.\n\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "304529b1b6f8612ccbb4582e997051b48b94f4a4",
      "tree": "025b53989f39b463621e9a9eb8e903dc54dd87e1",
      "parents": [
        "4175242c0dc1d92e821d2b45bc8fe06d4650a7b5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Apr 01 14:32:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Apr 26 14:01:41 2011 -0700"
      },
      "message": "time: Add timekeeping_inject_sleeptime\n\nSome platforms cannot implement read_persistent_clock, as\ntheir RTC devices are only accessible when interrupts are enabled.\nThis keeps them from being used by the timekeeping code on resume\nto measure the time in suspend.\n\nThe RTC layer tries to work around this, by calling do_settimeofday\non resume after irqs are reenabled to set the time properly. However,\nthis only corrects CLOCK_REALTIME, and does not properly adjust\nthe sleep time value. This causes btime in /proc/stat to be incorrect\nas well as making the new CLOCK_BOTTTIME inaccurate.\n\nThis patch resolves the issue by introducing a new timekeeping hook\nto allow the RTC layer to inject the sleep time on resume.\n\nThe code also checks to make sure that read_persistent_clock is\nnonfunctional before setting the sleep time, so that should the RTC\u0027s\nHCTOSYS option be configured in on a system that does support\nread_persistent_clock we will not increase the total_sleep_time twice.\n\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "1791f881435fab951939ad700e947b66c062e083",
      "tree": "53739cfe3847e425b9bb64f22bc7526da26a9a0c",
      "parents": [
        "a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Wed Mar 30 15:24:21 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Apr 18 10:39:38 2011 +0200"
      },
      "message": "posix clocks: Replace mutex with reader/writer semaphore\n\nA dynamic posix clock is protected from asynchronous removal by a mutex.\nHowever, using a mutex has the unwanted effect that a long running clock\noperation in one process will unnecessarily block other processes.\n\nFor example, one process might call read() to get an external time stamp\ncoming in at one pulse per second. A second process calling clock_gettime\nwould have to wait for almost a whole second.\n\nThis patch fixes the issue by using a reader/writer semaphore instead of\na mutex.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLink: http://lkml.kernel.org/r/%3C20110330132421.GA31771%40riccoc20.at.omicron.at%3E\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "4352d9d44b935e4d000be6ec89ddb55c2bf35f24",
      "tree": "26b9d37f5a41b4c01d800a444ad230eafb48e47a",
      "parents": [
        "b3b896c73b4b04b506816a09994192e3a54f0fef"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Mon Apr 04 08:31:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 04 08:31:23 2011 -0700"
      },
      "message": "ntp: fix non privileged system time shifting\n\nThe ADJ_SETOFFSET bit added in commit 094aa188 (\"ntp: Add ADJ_SETOFFSET\nmode bit\") also introduced a way for any user to change the system time.\nSneaky or buggy calls to adjtimex() could set\n\n    ADJ_OFFSET_SS_READ | ADJ_SETOFFSET\n\nwhich would result in a successful call to timekeeping_inject_offset().\nThis patch fixes the issue by adding the capability check.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "e1a85b2c519551d4792180cdab4074d7e99bf2c9",
      "tree": "ee53aed254043d06a7e30151af6500eab3bf0407",
      "parents": [
        "f3c6ea1b06c71b43f751b36bd99345369fe911af"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:04 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:04 2011 +0100"
      },
      "message": "timekeeping: Use syscore_ops instead of sysdev class and sysdev\n\nThe timekeeping subsystem uses a sysdev class and a sysdev for\nexecuting timekeeping_suspend() after interrupts have been turned off\non the boot CPU (during system suspend) and for executing\ntimekeeping_resume() before turning on interrupts on the boot CPU\n(during system resume).  However, since both of these functions\nignore their arguments, the entire mechanism may be replaced with a\nstruct syscore_ops object which is simpler.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "420c1c572d4ceaa2f37b6311b7017ac6cf049fe2",
      "tree": "df04e6b4b756b7a46d9887462d54a3ad0e1f91d5",
      "parents": [
        "9620639b7ea3843983f4ced8b4c81eb4d8974838",
        "6e6823d17b157f185be09f4c70181299f9273f0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:53:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:53:35 2011 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (62 commits)\n  posix-clocks: Check write permissions in posix syscalls\n  hrtimer: Remove empty hrtimer_init_hres_timer()\n  hrtimer: Update hrtimer-\u003estate documentation\n  hrtimer: Update base[CLOCK_BOOTTIME].offset correctly\n  timers: Export CLOCK_BOOTTIME via the posix timers interface\n  timers: Add CLOCK_BOOTTIME hrtimer base\n  time: Extend get_xtime_and_monotonic_offset() to also return sleep\n  time: Introduce get_monotonic_boottime and ktime_get_boottime\n  hrtimers: extend hrtimer base code to handle more then 2 clockids\n  ntp: Remove redundant and incorrect parameter check\n  mn10300: Switch do_timer() to xtimer_update()\n  posix clocks: Introduce dynamic clocks\n  posix-timers: Cleanup namespace\n  posix-timers: Add support for fd based clocks\n  x86: Add clock_adjtime for x86\n  posix-timers: Introduce a syscall for clock tuning.\n  time: Splitout compat timex accessors\n  ntp: Add ADJ_SETOFFSET mode bit\n  time: Introduce timekeeping_inject_offset\n  posix-timer: Update comment\n  ...\n\nFix up new system-call-related conflicts in\n\tarch/x86/ia32/ia32entry.S\n\tarch/x86/include/asm/unistd_32.h\n\tarch/x86/include/asm/unistd_64.h\n\tarch/x86/kernel/syscall_table_32.S\n(name_to_handle_at()/open_by_handle_at() vs clock_adjtime()), and some\ndue to movement of get_jiffies_64() in:\n\tkernel/time.c\n"
    },
    {
      "commit": "6e6823d17b157f185be09f4c70181299f9273f0b",
      "tree": "8a9009e2d54955c1a9c5a033493c8668915d09f8",
      "parents": [
        "a9e7acfff0a279792918b7b0de74106e576e9988"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Thu Mar 03 18:26:14 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 12 21:27:07 2011 +0100"
      },
      "message": "posix-clocks: Check write permissions in posix syscalls\n\npc_clock_settime() and pc_clock_adjtime() do not check whether the fd\nwas opened in write mode, so a clock can be set with a read only fd.\n\n[ tglx: We deliberately do not return -EPERM as we want this to be\n  \tdistingushable from the capability based permission check ]\n\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nLKML-Reference: \u003c1299173174-348-4-git-send-email-torbenh@gmx.de\u003e\nCc: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3a142a0672b48a853f00af61f184c7341ac9c99d",
      "tree": "e84f2647dc2ae71f2e54f2256ebce87624c11d97",
      "parents": [
        "493f3358cb289ccf716c5a14fa5bb52ab75943e5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 25 22:34:23 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 26 09:45:28 2011 +0100"
      },
      "message": "clockevents: Prevent oneshot mode when broadcast device is periodic\n\nWhen the per cpu timer is marked CLOCK_EVT_FEAT_C3STOP, then we only\ncan switch into oneshot mode, when the backup broadcast device\nsupports oneshot mode as well. Otherwise we would try to switch the\nbroadcast device into an unsupported mode unconditionally. This went\nunnoticed so far as the current available broadcast devices support\noneshot mode. Seth unearthed this problem while debugging and working\naround an hpet related BIOS wreckage.\n\nAdd the necessary check to tick_is_oneshot_available().\n\nReported-and-tested-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1102252231200.2701@localhost6.localdomain6\u003e\nCc: stable@kernel.org # .21 -\u003e\n"
    },
    {
      "commit": "314ac37150011ebb398f522db528d2dbcc611189",
      "tree": "0731fced7713d3889bd783577673068a6bc93796",
      "parents": [
        "abb3a4ea2e0ea7114a4475745da2f32bd9ad5b73"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Feb 14 18:43:08 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Feb 21 12:53:07 2011 -0800"
      },
      "message": "time: Extend get_xtime_and_monotonic_offset() to also return sleep\n\nExtend get_xtime_and_monotonic_offset to\nget_xtime_and_monotonic_and_sleep_offset().\n\nCC: Jamie Lokier \u003cjamie@shareable.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alexander Shishkin \u003cvirtuoso@slind.org\u003e\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "abb3a4ea2e0ea7114a4475745da2f32bd9ad5b73",
      "tree": "ba78d928a1b58faf16c2507777b8430d54666f52",
      "parents": [
        "e06383db9ec591696a06654257474b85bac1f8cb"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Feb 14 17:52:09 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Feb 21 12:53:05 2011 -0800"
      },
      "message": "time: Introduce get_monotonic_boottime and ktime_get_boottime\n\nThis adds new functions that return the monotonic time since boot\n(in other words, CLOCK_MONOTONIC + suspend time).\n\nCC: Jamie Lokier \u003cjamie@shareable.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alexander Shishkin \u003cvirtuoso@slind.org\u003e\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "db1c1cce4a653dcbe6949c72ae7b9f42cab1b929",
      "tree": "c90203be70d8fbe19e462e45f0573e34208a8927",
      "parents": [
        "22b7fcdae562b6792b3f5517e89fd7e0337180ae"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Fri Feb 18 10:07:25 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 18 17:01:12 2011 +0100"
      },
      "message": "ntp: Remove redundant and incorrect parameter check\n\nThe ADJ_SETOFFSET code redundantly checks the range of the nanoseconds\nfield of the time value. This field is checked again in the subsequent\ncall to timekeeping_inject_offset(). Also, as is, the check will not\ndetect whether the number of microseconds is out of range.\n\nLet timekeeping_inject_offset() do the error checking.\n \nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nCc: johnstul@us.ibm.com\nLKML-Reference: \u003c20110218090724.GA2924@riccoc20.at.omicron.at\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "f590308536db432e4747f562b29e5858123938e9",
      "tree": "ece1e37bcd1f62b22801f43e72cd097b2fc1eee9",
      "parents": [
        "d2478521afc20227658a10a8c5c2bf1a2aa615b3"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Fri Feb 11 19:21:25 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 12 14:11:56 2011 +0100"
      },
      "message": "timer debug: Hide kernel addresses via %pK in /proc/timer_list\n\nIn the continuing effort to avoid kernel addresses leaking to\nunprivileged users, this patch switches to %pK for\n/proc/timer_list reporting.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20110212032125.GA23571@outflux.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0606f422b453f76c31ab2b1bd52943ff06a2dcf2",
      "tree": "14f4859e8492f01e97140248a28ab98355c415cf",
      "parents": [
        "527087374faa488776a789375a7d6ea74fda6f71"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Tue Feb 01 13:52:35 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:20 2011 +0100"
      },
      "message": "posix clocks: Introduce dynamic clocks\n\nThis patch adds support for adding and removing posix clocks. The\nclock lifetime cycle is patterned after usb devices. Each clock is\nrepresented by a standard character device. In addition, the driver\nmay optionally implement custom character device operations.\n\nThe posix clock and timer system calls listed below now work with\ndynamic posix clocks, as well as the traditional static clocks.\nThe following system calls are affected:\n\n   - clock_adjtime (brand new syscall)\n   - clock_gettime\n   - clock_getres\n   - clock_settime\n   - timer_create\n   - timer_delete\n   - timer_gettime\n   - timer_settime\n\n[ tglx: Adapted to the posix-timer cleanup. Moved clock_posix_dynamic\n  \tto posix-clock.c and made all referenced functions static ]\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20110201134420.164172635@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "094aa1881fdc1b8889b442eb3511b31f3ec2b762",
      "tree": "2eec808286e2f57eff45178741ba3ea048de7c37",
      "parents": [
        "c528f7c6c208f1fae6b4025957173dec045e5f21"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Tue Feb 01 13:52:20 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:18 2011 +0100"
      },
      "message": "ntp: Add ADJ_SETOFFSET mode bit\n\nThis patch adds a new mode bit into the timex structure. When set, the bit\ninstructs the kernel to add the given time value to the current time.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20110201134320.688829863@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c528f7c6c208f1fae6b4025957173dec045e5f21",
      "tree": "86986bf39f82622ea81179dad3382fc4580875a8",
      "parents": [
        "0061748dd2400d0bcd4d49d258db5d7b5d106ca0"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Feb 01 13:52:17 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:18 2011 +0100"
      },
      "message": "time: Introduce timekeeping_inject_offset\n\nThis adds a kernel-internal timekeeping interface to add or subtract\na fixed amount from CLOCK_REALTIME. This makes it so kernel users or\ninterfaces trying to do so do not have to read the time, then add an\noffset and then call settimeofday(), which adds some extra error in\ncomparision to just simply adding the offset in the kernel timekeeping\ncore.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nLKML-Reference: \u003c20110201134419.584311693@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1e6d767924c74929c0cfe839ae8f37bcee9e544e",
      "tree": "4ace06971e2b3519e556bea2f7e3e999e860eedd",
      "parents": [
        "7cf37e87dd2cfa17a64f28ea7f31eed4525f79e4"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richard.cochran@omicron.at",
        "time": "Tue Feb 01 13:50:58 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:11 2011 +0100"
      },
      "message": "time: Correct the *settime* parameters\n\nBoth settimeofday() and clock_settime() promise with a \u0027const\u0027\nattribute not to alter the arguments passed in. This patch adds the\nmissing \u0027const\u0027 attribute into the various kernel functions\nimplementing these calls.\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20110201134417.545698637@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7cf37e87dd2cfa17a64f28ea7f31eed4525f79e4",
      "tree": "fd802bad0c724185f6cb8e8790fc8d3bf0466494",
      "parents": [
        "e2830b5c1b2b2217894370a3b95af87d4a958401"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 01 09:34:58 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 01 09:46:47 2011 +0100"
      },
      "message": "time: Fix legacy arch fallout\n\nThe xtime/dotimer cleanup broke architectures which do not implement\nclockevents. Time to send out another __do_IRQ threat.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: johnstul@us.ibm.com\nCc: yong.zhang0@gmail.com\nCc: hch@infradead.org\nLKML-Reference: \u003c20110127145905.23248.30458.stgit@localhost\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2830b5c1b2b2217894370a3b95af87d4a958401",
      "tree": "9eec3de82a30fffc32beae7826e4a356220c52f7",
      "parents": [
        "d12b0e24c56c6fb2398609f26858e5278d688840"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Thu Jan 27 16:00:32 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 31 19:26:50 2011 +0100"
      },
      "message": "time: Make do_timer() and xtime_lock local to kernel/time/\n\nAll callers of do_timer() are converted to xtime_update(). The only\nusers of xtime_lock are in kernel/time/. Make both local to\nkernel/time/ and remove them from the global header files.\n\n[ tglx: Reuse tick-internal.h instead of creating another local header\n  \tfile. Massaged changelog ]\n\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: johnstul@us.ibm.com\nCc: yong.zhang0@gmail.com\nCc: hch@infradead.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "f0af911a9dec9de702645182c8d269449e24d24b"
}
