Make all it87 drivers SMP safe.
PATCH 1/3 Make all it87 drivers SMP safe.
01 - Adds relevant lock files.
Signed-off-by Nat Gurumoorthy <[email protected]>
---
drivers/watchdog/Kconfig +14 -0
@@ -2,6 +2,18 @@ # Watchdog device configuration # +# This has to come before the WATCHDOG menuconfig +# because it can be selected by drivers/hwmon/it87.c +config IT87_LOCK + bool + default n + ---help--- + This defines the global lock needed by all IT87 drivers that + touch the Super I/0 chipset used on many motherboards. This + is needed to serialize access to the registers in SMP + systems. All it87 drivers will select this Kconfig option to compile + the lock into the kernel. + menuconfig WATCHDOG bool "Watchdog Timer Support" ---help---
@@ -565,6 +577,7 @@ config ITCO_VENDOR_SUPPORT config IT8712F_WDT tristate "IT8712F (Smart Guardian) Watchdog Timer" depends on X86 + select IT87_LOCK ---help--- This is the driver for the built-in watchdog timer on the IT8712F Super I/0 chipset used on many motherboards.
@@ -578,6 +591,7 @@ config IT8712F_WDT config IT87_WDT tristate "IT87 Watchdog Timer" depends on X86 && EXPERIMENTAL + select IT87_LOCK ---help--- This is the driver for the hardware watchdog on the ITE IT8702, IT8712, IT8716, IT8718, IT8720, IT8726, IT8712 Super I/O chips.
drivers/watchdog/Makefile +1 -0
@@ -81,6 +81,7 @@ obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o ifeq ($(CONFIG_ITCO_VENDOR_SUPPORT),y) obj-$(CONFIG_ITCO_WDT) += iTCO_vendor_support.o endif +obj-$(CONFIG_IT87_LOCK) += it87_lock.o obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o obj-$(CONFIG_IT87_WDT) += it87_wdt.o obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o
drivers/watchdog/it87_lock.c new file +27 -0
@@ -0,0 +1,27 @@ +/* +* IT87xxx super IO chipset access lock +* +* Copyright (c) 2011 Nat Gurumoorthy <[email protected]> +* +* Based on info and code taken from: +* +* drivers/char/watchdog/scx200_wdt.c +* drivers/hwmon/it87.c +* IT8712F EC-LPC I/O Preliminary Specification 0.8.2 +* IT8712F EC-LPC I/O Preliminary Specification 0.9.3 +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of the +* License, or (at your option) any later version. +* +* The author(s) of this software shall not be held liable for damages +* of any nature resulting due to the use of this software. This +* software is provided AS-IS with no warranties. +*/ + +#include <linux/module.h> +#include <linux/spinlock.h> + +DEFINE_SPINLOCK (it87_io_lock); +EXPORT_SYMBOL (it87_io_lock);
include/linux/it87_lock.h new file +28 -0
@@ -0,0 +1,28 @@ +/* +* IT87xxx super IO chipset access lock +* +* Copyright (c) 2011 Nat Gurumoorthy <[email protected]> +* +* Based on info and code taken from: +* +* drivers/char/watchdog/scx200_wdt.c +* drivers/hwmon/it87.c +* IT8712F EC-LPC I/O Preliminary Specification 0.8.2 +* IT8712F EC-LPC I/O Preliminary Specification 0.9.3 +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of the +* License, or (at your option) any later version. +* +* The author(s) of this software shall not be held liable for damages +* of any nature resulting due to the use of this software. This +* software is provided AS-IS with no warranties. +*/ + +#include <linux/spinlock.h> + +/* +* Global lock used by all it87 drivers to serialize access to hardware. +*/ +extern spinlock_t it87_io_lock;
---
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors