f34d9d2dcb
This fixes a number of problems associated with network interface hotplug. The userspace initialization function can fail in some cases, but the failure was never passed back to eth_configure, which proceeded with the configuration. This results in a zombie device that is present, but can't work. This is fixed by allowing the initialization routines to return an error, which is checked, and the configuration aborted on failure. eth_configure failed to check for many failures. Even when it did check, it didn't undo whatever initializations has already happened, so a present, but partially initialized and non-working device could result. It now checks everything that can fail, and bails out, undoing whatever had been done. The return value of eth_configure was always ignored, so it is now just void. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
drivers | ||
include | ||
skas | ||
sys-i386 | ||
sys-x86_64 | ||
aio.c | ||
elf_aux.c | ||
execvp.c | ||
file.c | ||
helper.c | ||
irq.c | ||
main.c | ||
Makefile | ||
mem.c | ||
process.c | ||
sigio.c | ||
signal.c | ||
start_up.c | ||
time.c | ||
tls.c | ||
trap.c | ||
tt.c | ||
tty_log.c | ||
tty.c | ||
uaccess.c | ||
umid.c | ||
user_syms.c | ||
util.c |