watchdog: via_wdt: replace del_timer by del_timer_sync
authorJulia Lawall <Julia.Lawall@lip6.fr>
Tue, 1 Apr 2014 13:49:19 +0000 (15:49 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Tue, 10 Jun 2014 19:38:25 +0000 (21:38 +0200)
Use del_timer_sync to ensure that the timer is stopped on all CPUs before
the driver exits.

This change was suggested by Thomas Gleixner.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r@
identifier i,t,ex;
@@
struct t i = { .remove = ex, };

@@
identifier r.ex;
@@
ex(...) {
  <...
- del_timer
+ del_timer_sync
    (...)
  ...>
}
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/via_wdt.c

index d2cd9f0bcb9a2df915472446f295139f04fc0ede..56369c4f1961d0c2001094f680a6c7ed81c54ca2 100644 (file)
@@ -232,7 +232,7 @@ err_out_disable_device:
 static void wdt_remove(struct pci_dev *pdev)
 {
        watchdog_unregister_device(&wdt_dev);
-       del_timer(&timer);
+       del_timer_sync(&timer);
        iounmap(wdt_mem);
        release_mem_region(mmio, VIA_WDT_MMIO_LEN);
        release_resource(&wdt_res);