Re: [PATCH v6 1/2] Use "request_muxed_region" in it87 watchdogdrivers

From: Guenter Roeck
Date: Fri Apr 15 2011 - 07:06:23 EST


On Fri, Apr 15, 2011 at 04:46:04AM -0400, Natarajan Gurumoorthy wrote:
> On Thu, Apr 14, 2011 at 10:58 PM, Guenter Roeck
> <guenter.roeck@xxxxxxxxxxxx> wrote:
> > I have seen the list. I don't think you should fix everything in one go.
> > First step might be to get the w83697hf and it87 to work together, then
> > go from there.
> >
> > Is there a reason for loading (or trying to load) both the it87 and
> > the w83697hf driver at the same time ? Those drivers are usually only
> > loaded if the respective chip is known to exist. If there is no reason
> > to try loading both drivers, a simple workaround would be to not do it.
> >
> Guenter,
> I agree the above should never happen. The only way the 2
> drivers will be loaded at the same time is a misconfigured kernel
> where these 2 drivers get built and the rc scripts end up loading them
> too. If we are agreed that I suggest we make the superio_enter routine
> be the following:
>
> static inline void
> superio_enter(void)
> {
> /*
> * Reserve REG and REG + 1 for exclusive access.
> */
> while (!request_muxed_region(REG, 2, WATCHDOG_NAME))
> continue;
>
At least for my part, I would not agree to that. If another driver misbehaves
and does not release the region, one of your CPU cores will be stuck
in an endless loop.

> outb(0x87, REG);
> outb(0x01, REG);
> outb(0x55, REG);
> outb(0x55, REG);
> }
>
> What I am suggesting is not returning an error and instead keep
> calling "request_muxed_region" till it succeeds. If superio_enter
> returns an error then we will have to rewrite a large chunk of
> it8712f_wdt to deal with it. There are 8-9 calls to superio_enter. We
> will have supreio_enter returning errors at awkward places in the
> driver where the current logic has no code to deal with errors.
>
Can't help it. I browsed through it earlier and didn't think it was that bad.
Just pass the error on to the next level until you can return it.

Guenter

> In case of properly written drivers the while loop will eventually
> exit. I agree this is ugly as sin but it limits the perturbation of
> the driver. Feedback please.
>
> Regards
> Nat
>
>
> > Thanks,
> > Guenter
> >
> >
>
>
>
> --
> Regards
> Nat Gurumoorthy AB6SJ
--
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/