Thanks, Jussi - I'll crunch on this, merge the bits I agree with :)
As Arjan points out, the eepro100 change will cause deadlocks on SMP,
and general badness on uniprocessor. But I've done a heap of testing
on a eepro100 machine and it hasn't been a problem. I expect that
wait_for_cmd_done() is only a problem during device startup and shutdown.
And possibly in error recovery.
I take the position that device driver startup and shutdown functions
are a complete basket case, and they are on the "don't do that" list.
Generally, this is OK. Latency-critical applications should be
careful to ensure that all required kernel modules are loaded beforehand,
and that the cron jobs which reap idle kernel modules be disabled.
Maybe, they should also ensure that any device-special files are held
open across the life of the application.
I used to take the same position on fileystem mount and unmount, however
things like autofs and some applciations which poll cdrom drives made this
impractical, so filesystem mounts and unmounts are on the "do do that"
list. I hope.
-
-
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/