Re: [bug] pcwd_init_module(): WARNING: at lib/kref.c:33 kref_get()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

> On Sun, 22 Jul 2007 20:23:20 +0530,
> "Satyam Sharma" <[email protected]> wrote:
> 
> > On 7/22/07, Ingo Molnar <[email protected]> wrote:
> > >
> > > enabling CONFIG_PCWATCHDOG=y crashes bzImage bootup, see below. Tested
> > > on latest -git.
...
> 
> Might be some ordering problem (bus not registered yet). Is the isa bus
> already up? Changing link order or initcall levels might help.

See below fix. Please test it.
Thanks in advance,
Wim.

[WATCHDOG] Fix pcwd_init_module crash

Fix for the problem detected by Ingo Molnar:
enabling CONFIG_PCWATCHDOG=y crashes bzImage bootup.

The reason for this can be found in drivers/makefile
We first do:
obj-y                           += char/
and later we do:
obj-y                           += base/ block/ misc/ mfd/ net/ media/

So if we put a platform or isa or usb bus driver in char/watchdog
(which is called from the Makefile in drivers/char/Makefile)
then we didn't have the different device drivers initialized yet
(they are in drivers/base and drivers/usb and ...)

This fix makes sure that we compile the watchdog drivers after
drivers/base, drivers/misc, drivers/pci and drivers/usb.
We also do the compile after hwmon because in the future the
watchdog temperature support will use the hwmon system.

Signed-off-by: Wim Van Sebroeck <[email protected]>

diff --git a/drivers/Makefile b/drivers/Makefile
index a9e4c5f..f0878b2 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -66,6 +66,7 @@ obj-y				+= i2c/
 obj-$(CONFIG_W1)		+= w1/
 obj-$(CONFIG_POWER_SUPPLY)	+= power/
 obj-$(CONFIG_HWMON)		+= hwmon/
+obj-$(CONFIG_WATCHDOG)		+= char/watchdog/
 obj-$(CONFIG_PHONE)		+= telephony/
 obj-$(CONFIG_MD)		+= md/
 obj-$(CONFIG_BT)		+= bluetooth/
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index 8fecaf4..2bc3a55 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -97,7 +97,6 @@ obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
 obj-$(CONFIG_GPIO_TB0219)	+= tb0219.o
 obj-$(CONFIG_TELCLOCK)		+= tlclk.o
 
-obj-$(CONFIG_WATCHDOG)		+= watchdog/
 obj-$(CONFIG_MWAVE)		+= mwave/
 obj-$(CONFIG_AGP)		+= agp/
 obj-$(CONFIG_DRM)		+= drm/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux