From: tip-bot for John Stultz <john.stultz@linaro.org>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, john.stultz@linaro.org,
hpa@zytor.com, mingo@kernel.org, schwab@linux-m68k.org,
tglx@linutronix.de, prarit@redhat.com
Subject: [tip:timers/urgent] time: Avoid potential shift overflow with large shift values
Date: Wed, 22 Aug 2012 01:52:04 -0700 [thread overview]
Message-ID: <tip-6ea565a9be32a3c8d1092017686f183b6d8c4514@git.kernel.org> (raw)
In-Reply-To: <1345595449-34965-4-git-send-email-john.stultz@linaro.org>
Commit-ID: 6ea565a9be32a3c8d1092017686f183b6d8c4514
Gitweb: http://git.kernel.org/tip/6ea565a9be32a3c8d1092017686f183b6d8c4514
Author: John Stultz <john.stultz@linaro.org>
AuthorDate: Tue, 21 Aug 2012 20:30:48 -0400
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 22 Aug 2012 10:42:13 +0200
time: Avoid potential shift overflow with large shift values
Andreas Schwab noticed that the 1 << tk->shift could overflow if the
shift value was greater than 30, since 1 would be a 32bit long on
32bit architectures. This issue was introduced by 1e75fa8be (time:
Condense timekeeper.xtime into xtime_sec)
Use 1ULL instead to ensure we don't overflow on the shift.
Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1345595449-34965-4-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
kernel/time/timekeeping.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 1dbf80e..a5a9389 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1184,9 +1184,9 @@ static void update_wall_time(void)
* the vsyscall implementations are converted to use xtime_nsec
* (shifted nanoseconds), this can be killed.
*/
- remainder = tk->xtime_nsec & ((1 << tk->shift) - 1);
+ remainder = tk->xtime_nsec & ((1ULL << tk->shift) - 1);
tk->xtime_nsec -= remainder;
- tk->xtime_nsec += 1 << tk->shift;
+ tk->xtime_nsec += 1ULL << tk->shift;
tk->ntp_error += remainder << tk->ntp_error_shift;
/*
next prev parent reply other threads:[~2012-08-22 8:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 0:30 [PATCH 0/4] Time fixes for 3.6 John Stultz
2012-08-22 0:30 ` [PATCH 1/4] time: Ensure we normalize the timekeeper in tk_xtime_add John Stultz
2012-08-22 8:50 ` [tip:timers/urgent] " tip-bot for John Stultz
2012-08-22 0:30 ` [PATCH 2/4] time: Fix casting issue in timekeeping_forward_now John Stultz
2012-08-22 8:51 ` [tip:timers/urgent] " tip-bot for Andreas Schwab
2012-08-22 0:30 ` [PATCH 3/4] time: Avoid potential shift-overflow with large shift values John Stultz
2012-08-22 8:11 ` Geert Uytterhoeven
2012-08-22 8:52 ` tip-bot for John Stultz [this message]
2012-08-22 0:30 ` [PATCH 4/4] time: Avoid making adjustments if we havne't accumulated anything John Stultz
2012-08-22 8:52 ` [tip:timers/urgent] time: Avoid making adjustments if we haven' t " tip-bot for John Stultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-6ea565a9be32a3c8d1092017686f183b6d8c4514@git.kernel.org \
--to=john.stultz@linaro.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=prarit@redhat.com \
--cc=schwab@linux-m68k.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.