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/