Re: most users of msleep_interruptible are broken

From: Pavel Machek
Date: Wed Oct 11 2006 - 16:31:27 EST


Hi!

> > > +++ linux-2.6.19-rc1/drivers/mmc/mmc.c 2006-10-11 17:57:02.000000000 +0530
> > > @@ -454,7 +454,7 @@ static void mmc_deselect_cards(struct mm
> > > static inline void mmc_delay(unsigned int ms)
> > > {
> > > if (ms < HZ / 1000) {
> > > - yield();
> > > + cond_resched();
> > > mdelay(ms);
> >
> >
> > this probably wants msleep(), especially with hrtimers comming up; there
> > the sleeps are always exact...
>
> They clearly don't care about exactness; they msleep_interruptible and
> throw away the return value, so they don't know how long they slept
> before they got a signal.
>
> __must_check treatment for msleep_interruptible, anyone? On the one hand,
> that's 136 new warnings. On the other hand, that's 136 places wheree
> we may as well *delete the call* to msleep_interruptible. Since it can
> return immediately, the code must be prepared to deal with that ... right?

Well, it must work, but it may busyloop instead of sleeping. This does
not look like must_check to me.
Pavel

--
Thanks for all the (sleeping) penguins.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/