Re: [PATCH] Make all it87 drivers SMP safe.
From: Guenter Roeck
Date: Tue Apr 05 2011 - 20:44:04 EST
On Tue, Apr 05, 2011 at 08:13:50PM -0400, Natarajan Gurumoorthy wrote:
> Guenter,
> How would you partition it out? Are you suggesting that we do
> the following:
>
> Patch1:
> drivers/hwmon/Kconfig | 1 +
> drivers/hwmon/it87.c | 14 ++++++++++++-
>
> Patch2:
> drivers/watchdog/Kconfig | 12 +++++++++++
> drivers/watchdog/Makefile | 1 +
> drivers/watchdog/it8712f_wdt.c | 10 ++++----
> drivers/watchdog/it87_lock.c | 27 +++++++++++++++++++++++++
> drivers/watchdog/it87_wdt.c | 42 ++++++---------------------------------
>
> Patch3:
> include/linux/it87_lock.h | 28 ++++++++++++++++++++++++++
>
No, not really. The include file is part of the locking code, and the sequence is wrong.
I personally would introduce the lock in the 1st patch.
This would affect
drivers/watchdog/it87_lock.c
include/linux/it87_lock.h
drivers/watchdog/Makefile
drivers/watchdog/Kconfig
The second patch would update the watchdog driver, affecting
drivers/watchdog/Kconfig
drivers/watchdog/it8712f_wdt.c
and the last patch would update the hwmon driver.
drivers/hwmon/Kconfig
drivers/hwmon/it87.c
Others may argue that patch 1 and 2 (introducing the lock and updating
the watchdog driver) should be in a single patch, since the lock alone
does not do anything without being used. This is a matter of opinion
and really depends on the maintainer of the watchdog subsystem.
Note that your patch has practical problems. If I disable WATCHDOG but enable
the IT87 hwmon driver, I get:
warning: (SENSORS_IT87) selects IT87_LOCK which has unmet direct dependencies (WATCHDOG)
during configuration, and undefined references to it87_io_lock when linking.
So it looks like you might want to consider moving the locking code to a location
outside the watchdog code.
Thanks,
Guenter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/