From: Oleg Nesterov Date: Tue, 22 Aug 2006 17:22:13 +0000 (+0400) Subject: elv_unregister: fix possible crash on module unload X-Git-Tag: v2.6.18-rc5~70 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d8f613160ed303f5fe310f21bba334a4b074fa5;p=linux-2.6 elv_unregister: fix possible crash on module unload An exiting task or process which didn't do I/O yet have no io context, elv_unregister() should check it is not NULL. Signed-off-by: Oleg Nesterov Acked-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- diff --git a/block/elevator.c b/block/elevator.c index bc7baeec0d..9b72dc7c8a 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -765,7 +765,8 @@ void elv_unregister(struct elevator_type *e) read_lock(&tasklist_lock); do_each_thread(g, p) { task_lock(p); - e->ops.trim(p->io_context); + if (p->io_context) + e->ops.trim(p->io_context); task_unlock(p); } while_each_thread(g, p); read_unlock(&tasklist_lock);