* [PATCH] sc1200_wdt: Fix oops
@ 2013-12-04 15:31 Alan
2013-12-04 16:31 ` Guenter Roeck
0 siblings, 1 reply; 4+ messages in thread
From: Alan @ 2013-12-04 15:31 UTC (permalink / raw)
To: wim, linux-watchdog
If loaded with isapnp = 0 the driver explodes. This is catching
people out now and then. What should happen in the working case is
a complete mystery and the code appears terminally confused, but we
can at least make the error path work properly.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991
---
drivers/watchdog/sc1200wdt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/watchdog/sc1200wdt.c b/drivers/watchdog/sc1200wdt.c
index 3b9fff9..131193a 100644
--- a/drivers/watchdog/sc1200wdt.c
+++ b/drivers/watchdog/sc1200wdt.c
@@ -409,8 +409,9 @@ static int __init sc1200wdt_init(void)
#if defined CONFIG_PNP
/* now that the user has specified an IO port and we haven't detected
* any devices, disable pnp support */
+ if (isapnp)
+ pnp_unregister_driver(&scl200wdt_pnp_driver);
isapnp = 0;
- pnp_unregister_driver(&scl200wdt_pnp_driver);
#endif
if (!request_region(io, io_len, SC1200_MODULE_NAME)) {
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] sc1200_wdt: Fix oops
2013-12-04 15:31 [PATCH] sc1200_wdt: Fix oops Alan
@ 2013-12-04 16:31 ` Guenter Roeck
2013-12-05 0:15 ` One Thousand Gnomes
0 siblings, 1 reply; 4+ messages in thread
From: Guenter Roeck @ 2013-12-04 16:31 UTC (permalink / raw)
To: Alan; +Cc: wim, linux-watchdog
On Wed, Dec 04, 2013 at 03:31:52PM +0000, Alan wrote:
> If loaded with isapnp = 0 the driver explodes. This is catching
> people out now and then. What should happen in the working case is
> a complete mystery and the code appears terminally confused, but we
Looks like it uses the pnp infrastructure only to auto-detect the
"io" address, and assumes that pnp_register_driver() calls the
pnp probe function immediately. Afterwards it unregisters and
works (or is supposed to work) outside the pnp subsystem. Brr.
> can at least make the error path work properly.
>
> Signed-off-by: Alan Cox <alan@linux.intel.com>
> Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991
Actually, I think it fully resolves it, because the other part (sc520 driver
not working on SC1100 CPU) isn't a bug. It isn't working on an ARM or PPC CPU
either, nor on any Intel CPU.
Anyway,
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/watchdog/sc1200wdt.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/sc1200wdt.c b/drivers/watchdog/sc1200wdt.c
> index 3b9fff9..131193a 100644
> --- a/drivers/watchdog/sc1200wdt.c
> +++ b/drivers/watchdog/sc1200wdt.c
> @@ -409,8 +409,9 @@ static int __init sc1200wdt_init(void)
> #if defined CONFIG_PNP
> /* now that the user has specified an IO port and we haven't detected
> * any devices, disable pnp support */
> + if (isapnp)
> + pnp_unregister_driver(&scl200wdt_pnp_driver);
> isapnp = 0;
> - pnp_unregister_driver(&scl200wdt_pnp_driver);
> #endif
>
> if (!request_region(io, io_len, SC1200_MODULE_NAME)) {
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] sc1200_wdt: Fix oops
2013-12-04 16:31 ` Guenter Roeck
@ 2013-12-05 0:15 ` One Thousand Gnomes
2013-12-05 2:46 ` Guenter Roeck
0 siblings, 1 reply; 4+ messages in thread
From: One Thousand Gnomes @ 2013-12-05 0:15 UTC (permalink / raw)
To: Guenter Roeck; +Cc: wim, linux-watchdog
On Wed, 4 Dec 2013 08:31:18 -0800
Guenter Roeck <linux@roeck-us.net> wrote:
> On Wed, Dec 04, 2013 at 03:31:52PM +0000, Alan wrote:
> > If loaded with isapnp = 0 the driver explodes. This is catching
> > people out now and then. What should happen in the working case is
> > a complete mystery and the code appears terminally confused, but we
>
> Looks like it uses the pnp infrastructure only to auto-detect the
> "io" address, and assumes that pnp_register_driver() calls the
> pnp probe function immediately. Afterwards it unregisters and
> works (or is supposed to work) outside the pnp subsystem. Brr.
>
> > can at least make the error path work properly.
> >
> > Signed-off-by: Alan Cox <alan@linux.intel.com>
> > Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991
>
> Actually, I think it fully resolves it, because the other part (sc520 driver
> not working on SC1100 CPU) isn't a bug. It isn't working on an ARM or PPC CPU
> either, nor on any Intel CPU.
As far as I can tell the fact it fails on the sc1100 is also a bug - but
the mess of idefs around PNP is impossible to figure out without some
actual docs, time and real hardware.
Alan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] sc1200_wdt: Fix oops
2013-12-05 0:15 ` One Thousand Gnomes
@ 2013-12-05 2:46 ` Guenter Roeck
0 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2013-12-05 2:46 UTC (permalink / raw)
To: One Thousand Gnomes; +Cc: wim, linux-watchdog
On 12/04/2013 04:15 PM, One Thousand Gnomes wrote:
> On Wed, 4 Dec 2013 08:31:18 -0800
> Guenter Roeck <linux@roeck-us.net> wrote:
>
>> On Wed, Dec 04, 2013 at 03:31:52PM +0000, Alan wrote:
>>> If loaded with isapnp = 0 the driver explodes. This is catching
>>> people out now and then. What should happen in the working case is
>>> a complete mystery and the code appears terminally confused, but we
>>
>> Looks like it uses the pnp infrastructure only to auto-detect the
>> "io" address, and assumes that pnp_register_driver() calls the
>> pnp probe function immediately. Afterwards it unregisters and
>> works (or is supposed to work) outside the pnp subsystem. Brr.
>>
>>> can at least make the error path work properly.
>>>
>>> Signed-off-by: Alan Cox <alan@linux.intel.com>
>>> Partially-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=53991
>>
>> Actually, I think it fully resolves it, because the other part (sc520 driver
>> not working on SC1100 CPU) isn't a bug. It isn't working on an ARM or PPC CPU
>> either, nor on any Intel CPU.
>
> As far as I can tell the fact it fails on the sc1100 is also a bug - but
> the mess of idefs around PNP is impossible to figure out without some
> actual docs, time and real hardware.
>
... unless isapnp was set to 0 via module parameter, or if SC1100 is not compatible
with SC1200. But I agree, hard to say w/o datasheet and hw.
Either case, seems to me the driver is screaming for a substantial overhaul.
Guenter
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-12-05 2:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-04 15:31 [PATCH] sc1200_wdt: Fix oops Alan
2013-12-04 16:31 ` Guenter Roeck
2013-12-05 0:15 ` One Thousand Gnomes
2013-12-05 2:46 ` Guenter Roeck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.