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

From: Guenter Roeck
Date: Fri Apr 15 2011 - 02:00:09 EST


On Thu, Apr 14, 2011 at 11:14:32PM -0400, Natarajan Gurumoorthy wrote:
> On Thu, Apr 14, 2011 at 7:40 PM, Guenter Roeck
> <guenter.roeck@xxxxxxxxxxxx> wrote:
> > Unless I am missing something, the problem is that there is another driver
> > calling request_region() instead of request_muxed_region().
> >
> > w83697hf_check_wdt() (and other drivers doing the same) should call
> > request_muxed_region(). Otherwise, the same problem could happen with the
> > caller(s) of request_region() - those calls could fail as well.
> > Plus, other callers of request_muxed_reason() not implementing
> > your retry code could end up with the same problem, ie with spurious failures.
> >
> > I think we will have to find a solution which does not require retries
> > when calling request_muxed_region(). On the other side, others know
> > this code much better than I do, so maybe someone has a better solution.
> >
> Guenter,
> Your conclusion is on the money. request_muxed_region will fail if
> someone else called request_region for the same region. The knife cuts
> both ways and reguest_region will fail when a request_muxed_region
> calll has been made for the same zone. I am not sure what happens
> when the second driver calls request_muxed_region for only part of the
> region that has been reserved by another driver. This is of course one
> of the problems. The other problem is that there are drivers which
> don't call either of those 2 interfaces and just go ahead and clobber
> the 0x2e 0x2f zone because they think they own all of it. I created a
> list drivers in hwmon and watchdog directories that need to be fixed
> in one of my earlier emails. John Delvare replied that are other
> drivers in parport that all need fixing. I got started on this because
> we use 2 different it87 drivers (hwmon/it87.c and
> watchdog/it8712f_wdt.c) concurrently and had to solve this problem.
>
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.

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/