aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/watchdog/pcwd_pci.c
diff options
context:
space:
mode:
authorWim Van Sebroeck <wim@iguana.be>2007-01-07 15:57:03 -0500
committerWim Van Sebroeck <wim@iguana.be>2007-01-07 15:57:03 -0500
commit045798b56f59d02beef84d5aa7137786c50912c2 (patch)
tree2f8d96ad0870a5d8f2b54028e2eb686b60d5e8d7 /drivers/char/watchdog/pcwd_pci.c
parent39e3a0556a1e2d33f9491d43bae9fdaa09b0308a (diff)
[WATCHDOG] pcwd_pci.c - spinlock fixes
the keepalive and get_temperature functions should use spinlocks also. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/char/watchdog/pcwd_pci.c')
-rw-r--r--drivers/char/watchdog/pcwd_pci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/char/watchdog/pcwd_pci.c b/drivers/char/watchdog/pcwd_pci.c
index 059ac9f12de7..95ddcd8c1db2 100644
--- a/drivers/char/watchdog/pcwd_pci.c
+++ b/drivers/char/watchdog/pcwd_pci.c
@@ -298,7 +298,9 @@ static int pcipcwd_stop(void)
298static int pcipcwd_keepalive(void) 298static int pcipcwd_keepalive(void)
299{ 299{
300 /* Re-trigger watchdog by writing to port 0 */ 300 /* Re-trigger watchdog by writing to port 0 */
301 spin_lock(&pcipcwd_private.io_lock);
301 outb_p(0x42, pcipcwd_private.io_addr); /* send out any data */ 302 outb_p(0x42, pcipcwd_private.io_addr); /* send out any data */
303 spin_unlock(&pcipcwd_private.io_lock);
302 304
303 if (debug >= DEBUG) 305 if (debug >= DEBUG)
304 printk(KERN_DEBUG PFX "Watchdog keepalive signal send\n"); 306 printk(KERN_DEBUG PFX "Watchdog keepalive signal send\n");
@@ -385,7 +387,9 @@ static int pcipcwd_get_temperature(int *temperature)
385 if (!pcipcwd_private.supports_temp) 387 if (!pcipcwd_private.supports_temp)
386 return -ENODEV; 388 return -ENODEV;
387 389
390 spin_lock(&pcipcwd_private.io_lock);
388 *temperature = inb_p(pcipcwd_private.io_addr); 391 *temperature = inb_p(pcipcwd_private.io_addr);
392 spin_unlock(&pcipcwd_private.io_lock);
389 393
390 /* 394 /*
391 * Convert celsius to fahrenheit, since this was 395 * Convert celsius to fahrenheit, since this was
@@ -814,6 +818,8 @@ static int __init pcipcwd_init_module(void)
814static void __exit pcipcwd_cleanup_module(void) 818static void __exit pcipcwd_cleanup_module(void)
815{ 819{
816 pci_unregister_driver(&pcipcwd_driver); 820 pci_unregister_driver(&pcipcwd_driver);
821
822 printk(KERN_INFO PFX "Watchdog Module Unloaded.\n");
817} 823}
818 824
819module_init(pcipcwd_init_module); 825module_init(pcipcwd_init_module);