From: Greg Kroah-Hartman Date: Tue, 11 Feb 2014 18:12:02 +0000 (-0800) Subject: 3.4-stable patches X-Git-Tag: v3.4.80~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c71a32904ec6371fe582d4c4c8fe2c4bf68aac0e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: 3.4.y-timekeeping-fix-32-bit-overflow-in-get_monotonic_boottime.patch --- diff --git a/queue-3.4/3.4.y-timekeeping-fix-32-bit-overflow-in-get_monotonic_boottime.patch b/queue-3.4/3.4.y-timekeeping-fix-32-bit-overflow-in-get_monotonic_boottime.patch new file mode 100644 index 00000000000..f1bef367443 --- /dev/null +++ b/queue-3.4/3.4.y-timekeeping-fix-32-bit-overflow-in-get_monotonic_boottime.patch @@ -0,0 +1,38 @@ +From john.stultz@linaro.org Tue Feb 11 10:07:48 2014 +From: John Stultz +Date: Mon, 10 Feb 2014 13:16:29 -0800 +Subject: 3.4.y: timekeeping: fix 32-bit overflow in get_monotonic_boottime +To: stable +Cc: Colin Cross , John Stultz +Message-ID: <1392066989-5113-4-git-send-email-john.stultz@linaro.org> + +From: Colin Cross + +fixed upstream in v3.6 by ec145babe754f9ea1079034a108104b6001e001c + +get_monotonic_boottime adds three nanonsecond values stored +in longs, followed by an s64. If the long values are all +close to 1e9 the first three additions can overflow and +become negative when added to the s64. Cast the first +value to s64 so that all additions are 64 bit. + +Signed-off-by: Colin Cross +[jstultz: Fished this out of the AOSP commong.git tree. This was +fixed upstream in v3.6 by ec145babe754f9ea1079034a108104b6001e001c] +Signed-off-by: John Stultz +Signed-off-by: Greg Kroah-Hartman +--- + kernel/time/timekeeping.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/time/timekeeping.c ++++ b/kernel/time/timekeeping.c +@@ -1197,7 +1197,7 @@ void get_monotonic_boottime(struct times + } while (read_seqretry(&timekeeper.lock, seq)); + + set_normalized_timespec(ts, ts->tv_sec + tomono.tv_sec + sleep.tv_sec, +- ts->tv_nsec + tomono.tv_nsec + sleep.tv_nsec + nsecs); ++ (s64)ts->tv_nsec + tomono.tv_nsec + sleep.tv_nsec + nsecs); + } + EXPORT_SYMBOL_GPL(get_monotonic_boottime); + diff --git a/queue-3.4/series b/queue-3.4/series index 420754671b5..0ba60b1c5d6 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -27,3 +27,4 @@ sched-unthrottle-rt-runqueues-in-__disable_runtime.patch sched-rt-avoid-updating-rt-entry-timeout-twice-within-one.patch rtc-cmos-add-an-alarm-disable-quirk.patch timekeeping-avoid-possible-deadlock-from-clock_was_set_delayed.patch +3.4.y-timekeeping-fix-32-bit-overflow-in-get_monotonic_boottime.patch