From 0c295e44dea607be5f4cc2d19ce98afbd77e2619 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Wed, 26 Mar 2014 22:33:39 +0100 Subject: [PATCH] isdn: replace del_timer by del_timer_sync Use del_timer_sync to ensure that the timer is stopped on all CPUs before the driver exists. This change was suggested by Thomas Gleixner. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @r@ declarer name module_exit; identifier ex; @@ module_exit(ex); @@ identifier r.ex; @@ ex(...) { <... - del_timer + del_timer_sync (...) ...> } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller --- drivers/isdn/act2000/module.c | 2 +- drivers/isdn/i4l/isdn_common.c | 2 +- drivers/isdn/sc/init.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/isdn/act2000/module.c b/drivers/isdn/act2000/module.c index b4147c0b14b7..c3a1b061838d 100644 --- a/drivers/isdn/act2000/module.c +++ b/drivers/isdn/act2000/module.c @@ -796,7 +796,7 @@ static void __exit act2000_exit(void) act2000_card *last; while (card) { unregister_card(card); - del_timer(&card->ptimer); + del_timer_sync(&card->ptimer); card = card->next; } card = cards; diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index 130f21643154..9b856e1890d1 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c @@ -2381,7 +2381,7 @@ static void __exit isdn_exit(void) } isdn_tty_exit(); unregister_chrdev(ISDN_MAJOR, "isdn"); - del_timer(&dev->timer); + del_timer_sync(&dev->timer); /* call vfree with interrupts enabled, else it will hang */ vfree(dev); printk(KERN_NOTICE "ISDN-subsystem unloaded\n"); diff --git a/drivers/isdn/sc/init.c b/drivers/isdn/sc/init.c index 92acc81f844d..d6f19b168e8a 100644 --- a/drivers/isdn/sc/init.c +++ b/drivers/isdn/sc/init.c @@ -390,8 +390,8 @@ static void __exit sc_exit(void) /* * kill the timers */ - del_timer(&(sc_adapter[i]->reset_timer)); - del_timer(&(sc_adapter[i]->stat_timer)); + del_timer_sync(&(sc_adapter[i]->reset_timer)); + del_timer_sync(&(sc_adapter[i]->stat_timer)); /* * Tell I4L we're toast -- 2.11.0