From: Rusty Russell From: Andrea Arcangeli Turns out parport can do request_module from its exit function. We should drop lock anyway, because too many module exit functions oops or hang anyway, rendering all module ops useless. --- kernel/module.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN kernel/module.c~module_exit-deadlock-fix kernel/module.c --- 25/kernel/module.c~module_exit-deadlock-fix 2004-02-17 20:30:11.000000000 -0800 +++ 25-akpm/kernel/module.c 2004-02-17 20:30:11.000000000 -0800 @@ -596,7 +596,9 @@ sys_delete_module(const char __user *nam wait_for_zero_refcount(mod); /* Final destruction now noone is using it. */ + up(&module_mutex); mod->exit(); + down(&module_mutex); free_module(mod); out: _