Messages in this thread | | | Date | Tue, 8 Aug 2006 01:30:20 +0200 | From | Pavel Machek <> | Subject | timeout nonsense [was Re: [PATCH 04/12] hdaps: Correct readout and remove nonsensical attributes] |
| |
Hi!
> > On 8/7/06, Pavel Machek <pavel@suse.cz> wrote: > > >> + int total, ret; > > >> + for (total=READ_TIMEOUT_MSECS; total>0; total-=RETRY_MSECS) { > > > > > >Could we go from 0 to timeout, not the other way around? > > > > Sure. > > (That's actually vanilla hdapsd code, moved around...) > > Maybe you could convert that to sth. like this along the way? > > int ret; > unsigned long timeout = jiffies + msec_to_jiffies(READ_TIMEOUT_MSECS); > for (;;) { > ret = thinkpad_ec_lock(); > if (ret) > return ret; > ret = __hdaps_update(0); > thinkpad_ec_unlock(); > > if (ret != -EBUSY) > return ret;
[imagine TIMEOUT_MSEC pause here, SMM does its job?]
> if (time_after(timeout, jiffies)) > break; > msleep(RETRY_MSECS); > } > return ret; > > Rationale: http://lkml.org/lkml/2005/7/14/133 - it's also listed on the > kerneljanitors todo list.
Please don't. New variant is _wrong_. Someone should tell kerneljanitors :-) ... aha, and Linus.
Minimal fix would be to run one more iteration after timeout. Pavel
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |