Eh? ide_timer_expiry is the timer handler called if a interrupt timeout
occurs.
> However for cd-rom there are commands, which can
> take quite a long time. Therefore there is the possiblity there
> to provide a polling function, which will be engaged after the
> interrupt happens in the above function:
>
> /* continue */
> if ((wait = expiry(drive)) != 0) {
[snip]
That's nonsense too. I added the expiry hook to let lower levels decide
what should happen when an interrupt timeout occurs. So there's been
_no_ interrupt if we enter this from the timer handler.
> And plase guess whot? CD-ROM is the only driver which is using
> this facility. Please have a look at the last
Right, it was added to handle long commands like format unit etc.
> argument of ide_set_handler(). The second argument is the
> interrutp handler for a command. The third is supposed to be
> the poll timerout function. But if you look at the
> actual poll function found in ide-cd.c (and only there).
> You may as well feel to try to just execute its commands directly in
> ide_timer_expiry, thus reducing tons of possible races ind the
> overall intr handling found currently there.
I don't know what tangent you are going off on here, I think you should
re-read this code a lot more carefully. There's no polling going on
here.
-- Jens Axboe- 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/