Re: [PATCH] prevent timespec/timeval to ktime_t overflow

Andrew Morton
2006-09-01T09:04:15Z

On Fri, 01 Sep 2006 10:56:19 +0200
Thomas Gleixner <tglx@linutronix.de> wrote:

> On Thu, 2006-08-31 at 20:46 -0700, Andrew Morton wrote:
> > > * ktime_t definitions when using the 64-bit scalar representation:
> > > @@ -73,6 +74,10 @@ typedef union {
> > > */
> > > static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
> > > {
> > > +#if (BITS_PER_LONG == 64)
> > > + if (unlikely(secs >= KTIME_SEC_MAX))
> > > + return (ktime_t){ .tv64 = KTIME_MAX };
> > > +#endif
> > > return (ktime_t) { .tv64 = (s64)secs * NSEC_PER_SEC + (s64)nsecs };
> > > }
> > >
> >
> > This makes my FC3 x86_64 testbox hang during udev startup. sysrq-T trace at
> > http://www.zip.com.au/~akpm/linux/patches/stuff/log-x.
>
> Does not help much.
>
> > I had a quick look at the args to hrtimer_nanosleep and all seems to be in
> > order.
>
> Hmm. I can not reproduce that on any one of my boxen. Can you please try
> with this debug variant, so we have a chance to figure out what's wrong.
>

With that patch the machine emits 88 bigabytes of stuff then locks up.
Something a little less aggressive is needed, methinks.