[lm-sensors] [PATCH v6 1/2] Use "request_muxed_region" in it87 watchdog drivers
natg at google.com
Fri Apr 15 05:14:32 CEST 2011
On Thu, Apr 14, 2011 at 7:40 PM, Guenter Roeck
<guenter.roeck at ericsson.com> 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.
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.
Nat Gurumoorthy AB6SJ
More information about the lm-sensors