Xunlei, On Tue, Dec 02, 2014 at 11:00:26PM +0800, Xunlei Pang wrote: > On 2 December 2014 at 17:32, Jeremiah Mahler <jmmah...@gmail.com> wrote: > > John, > > > > On Mon, Nov 24, 2014 at 08:35:45PM -0800, John Stultz wrote: > >> In commit 6067dc5a8c2b ("time: Avoid possible NTP adjustment mult > >> @@ -1330,7 +1330,7 @@ static __always_inline void > >> timekeeping_apply_adjustment(struct timekeeper *tk, [...] > >> * > >> * XXX - TODO: Doc ntp_error calculation. > >> */ > >> - if (tk->tkr.mult + mult_adj < mult_adj) { > >> + if ((mult_adj > 0) && (tk->tkr.mult + mult_adj < mult_adj)) { > >> /* NTP adjustment caused clocksource mult overflow */ > >> WARN_ON_ONCE(1); > >> return; > > > > This change does quiet the warning but I think it does so for the wrong > > reason. > > > > mult_adj is a signed number and tk->tkr.mult is an unsigned number. > > Adding the check that (mult_adj > 0) limits the test to only positive > > numbers. A positive number plus a positive number will never be less > > than either of the two positive numbers. The test is always false. > > Hi Jeremiah, > > The result of a positive number plus a positive number may overflow, > for example, u32 (0xFFFF_FFF0 + 0x20) will be 0x10, > that's what this patch is dealing with. > > Thanks, > Xunlei > > > > -- > > - Jeremiah Mahler
Oh, got it. That makes sense now. Thanks :) -- - Jeremiah Mahler -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/