<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/time, branch v3.0.37</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/time?h=v3.0.37</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/time?h=v3.0.37'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-04-22T23:21:25Z</updated>
<entry>
<title>nohz: Fix stale jiffies update in tick_nohz_restart()</title>
<updated>2012-04-22T23:21:25Z</updated>
<author>
<name>Neal Cardwell</name>
<email>ncardwell@google.com</email>
</author>
<published>2012-03-27T19:09:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2ca8877b566438c293e4e54d39c959a9a847a77b'/>
<id>urn:sha1:2ca8877b566438c293e4e54d39c959a9a847a77b</id>
<content type='text'>
commit 6f103929f8979d2638e58d7f7fda0beefcb8ee7e upstream.

Fix tick_nohz_restart() to not use a stale ktime_t "now" value when
calling tick_do_update_jiffies64(now).

If we reach this point in the loop it means that we crossed a tick
boundary since we grabbed the "now" timestamp, so at this point "now"
refers to a time in the old jiffy, so using the old value for "now" is
incorrect, and is likely to give us a stale jiffies value.

In particular, the first time through the loop the
tick_do_update_jiffies64(now) call is always a no-op, since the
caller, tick_nohz_restart_sched_tick(), will have already called
tick_do_update_jiffies64(now) with that "now" value.

Note that tick_nohz_stop_sched_tick() already uses the correct
approach: when we notice we cross a jiffy boundary, grab a new
timestamp with ktime_get(), and *then* update jiffies.

Signed-off-by: Neal Cardwell &lt;ncardwell@google.com&gt;
Cc: Ben Segall &lt;bsegall@google.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Link: http://lkml.kernel.org/r/1332875377-23014-1-git-send-email-ncardwell@google.com
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ntp: Fix integer overflow when setting time</title>
<updated>2012-04-02T16:27:09Z</updated>
<author>
<name>Sasha Levin</name>
<email>levinsasha928@gmail.com</email>
</author>
<published>2012-03-15T16:36:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d16d493a1c1079e4e065ee6070b2413add846719'/>
<id>urn:sha1:d16d493a1c1079e4e065ee6070b2413add846719</id>
<content type='text'>
commit a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33 upstream.

'long secs' is passed as divisor to div_s64, which accepts a 32bit
divisor. On 64bit machines that value is trimmed back from 8 bytes
back to 4, causing a divide by zero when the number is bigger than
(1 &lt;&lt; 32) - 1 and all 32 lower bits are 0.

Use div64_long() instead.

Signed-off-by: Sasha Levin &lt;levinsasha928@gmail.com&gt;
Cc: johnstul@us.ibm.com
Link: http://lkml.kernel.org/r/1331829374-31543-2-git-send-email-levinsasha928@gmail.com
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "clockevents: Set noop handler in clockevents_exchange_device()"</title>
<updated>2012-01-03T18:42:00Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-12-30T21:24:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ef7386b5de11f6269eaf072c5ef522d2a43172c2'/>
<id>urn:sha1:ef7386b5de11f6269eaf072c5ef522d2a43172c2</id>
<content type='text'>
commit 3b87487ac5008072f138953b07505a7e3493327f upstream.

This reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.

It results in resume problems for various people. See for example

  http://thread.gmane.org/gmane.linux.kernel/1233033
  http://thread.gmane.org/gmane.linux.kernel/1233389
  http://thread.gmane.org/gmane.linux.kernel/1233159
  http://thread.gmane.org/gmane.linux.kernel/1227868/focus=1230877

and the fedora and ubuntu bug reports

  https://bugzilla.redhat.com/show_bug.cgi?id=767248
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569

which got bisected down to the stable version of this commit.

Reported-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Reported-by: Phil Miller &lt;mille121@illinois.edu&gt;
Reported-by: Philip Langdale &lt;philipl@overt.org&gt;
Reported-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>alarmtimers: Fix time comparison</title>
<updated>2011-12-21T20:57:34Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-12-05T20:20:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=612e5dbc550f30c787e40b958d351720e72091c6'/>
<id>urn:sha1:612e5dbc550f30c787e40b958d351720e72091c6</id>
<content type='text'>
commit c9c024b3f3e07d087974db4c0dc46217fff3a6c0 upstream.

The expiry function compares the timer against current time and does
not expire the timer when the expiry time is &gt;= now. That's wrong. If
the timer is set for now, then it must expire.

Make the condition expiry &gt; now for breaking out the loop.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>clockevents: Set noop handler in clockevents_exchange_device()</title>
<updated>2011-12-09T16:52:53Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-12-02T15:02:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b01b383bbd04e9dcf7d9fe6ca3751b77ccdc533c'/>
<id>urn:sha1:b01b383bbd04e9dcf7d9fe6ca3751b77ccdc533c</id>
<content type='text'>
commit de28f25e8244c7353abed8de0c7792f5f883588c upstream.

If a device is shutdown, then there might be a pending interrupt,
which will be processed after we reenable interrupts, which causes the
original handler to be run. If the old handler is the (broadcast)
periodic handler the shutdown state might hang the kernel completely.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>clocksource: Fix bug with max_deferment margin calculation</title>
<updated>2011-12-09T16:52:52Z</updated>
<author>
<name>Yang Honggang (Joseph)</name>
<email>eagle.rtlinux@gmail.com</email>
</author>
<published>2011-12-02T03:22:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4078977c46f627f553ed2d8ea047b9bf25dee48d'/>
<id>urn:sha1:4078977c46f627f553ed2d8ea047b9bf25dee48d</id>
<content type='text'>
commit b1f919664d04a8d0ba29cb76673c7ca3325a2006 upstream.

In order to leave a margin of 12.5% we should &gt;&gt; 3 not &gt;&gt; 5.

Signed-off-by: Yang Honggang (Joseph) &lt;eagle.rtlinux@gmail.com&gt;
[jstultz: Modified commit subject]
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>tick-broadcast: Stop active broadcast device when replacing it</title>
<updated>2011-12-09T16:52:48Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-12-02T11:34:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d80dee54533aa4bfe29def921edb31715fdba214'/>
<id>urn:sha1:d80dee54533aa4bfe29def921edb31715fdba214</id>
<content type='text'>
commit c1be84309c58b1e7c6d626e28fba41a22b364c3d upstream.

When a better rated broadcast device is installed, then the current
active device is not disabled, which results in two running broadcast
devices.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>timekeeping: add arch_offset hook to ktime_get functions</title>
<updated>2011-12-09T16:52:28Z</updated>
<author>
<name>Hector Palacios</name>
<email>hector.palacios@digi.com</email>
</author>
<published>2011-11-14T10:15:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e1ef77bdad527601e9e47b377cbef5bee9df8248'/>
<id>urn:sha1:e1ef77bdad527601e9e47b377cbef5bee9df8248</id>
<content type='text'>
commit d004e024058a0eaca097513ce62cbcf978913e0a upstream.

ktime_get and ktime_get_ts were calling timekeeping_get_ns()
but later they were not calling arch_gettimeoffset() so architectures
using this mechanism returned 0 ns when calling these functions.

This happened for example when running Busybox's ping which calls
syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts) which eventually
calls ktime_get. As a result the returned ping travel time was zero.

Signed-off-by: Hector Palacios &lt;hector.palacios@digi.com&gt;
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>alarmtimers: Avoid possible denial of service with high freq periodic timers</title>
<updated>2011-10-03T18:40:07Z</updated>
<author>
<name>John Stultz</name>
<email>john.stultz@linaro.org</email>
</author>
<published>2011-08-10T17:26:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c3a44b4d23f4cb1b3eafb8c2c74d88f452d50a6d'/>
<id>urn:sha1:c3a44b4d23f4cb1b3eafb8c2c74d88f452d50a6d</id>
<content type='text'>
commit 6af7e471e5a7746b8024d70b4363d3dfe41d36b8 upstream.

Its possible to jam up the alarm timers by setting very small interval
timers, which will cause the alarmtimer subsystem to spend all of its time
firing and restarting timers. This can effectivly lock up a box.

A deeper fix is needed, closely mimicking the hrtimer code, but for now
just cap the interval to 100us to avoid userland hanging the system.

CC: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>alarmtimers: Memset itimerspec passed into alarm_timer_get</title>
<updated>2011-10-03T18:40:07Z</updated>
<author>
<name>John Stultz</name>
<email>john.stultz@linaro.org</email>
</author>
<published>2011-08-04T14:51:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0898dd1603e1dec711217b85329c031b30f81710'/>
<id>urn:sha1:0898dd1603e1dec711217b85329c031b30f81710</id>
<content type='text'>
commit ea7802f630d356acaf66b3c0b28c00a945fc35dc upstream.

Following common_timer_get, zero out the itimerspec passed in.

CC: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
</feed>
