Hi!
> > On 8/7/06, Pavel Machek <[email protected]> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]