Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails

From: Bjorn Helgaas
Date: Mon Dec 17 2007 - 12:15:05 EST


On Sunday 16 December 2007 06:59:39 pm Shaohua Li wrote:
> On Sun, 2007-12-09 at 23:02 -0500, Mike Houston wrote:
> > On Mon, 10 Dec 2007 10:31:27 +0800
> > Shaohua Li <shaohua.li@xxxxxxxxx> wrote:
> > > This should exist in previous kernel (before we remove acpi
> > > motherboard driver) too. Basically it's a broken BIOS. Could below
> > > patch work around it?
> > >
> > > Thanks,
> > > Shaohua
> > >
> > > Index: linux/drivers/pnp/system.c
> > > ===================================================================
> > > --- linux.orig/drivers/pnp/system.c 2007-12-10
> > > 10:17:46.000000000 +0800 +++ linux/drivers/pnp/system.c
> >
> > Thanks Shaohua, I tested this as well and it appears to have worked
> > around the issue for me.
> >
> > Now, in dmesg, I get:
> >
> > system 00:01: ioport range 0x290-0x29f has been reserved
> > (...)
> > system 00:01: ioport range 0x290-0x294 could not be reserved
> >
> > In /proc/ioports I see:
> >
> > 0290-029f : pnp 00:01
> > 0290-0297 : it87
> > 0290-0297 : it87
> Unfortunately this can't solve all such issues.
>
> Adam & Bjorn,
> Could we just reserve IO ports >= 0x1000 in pnp system driver? The
> purpose of the driver is to avoid resource conflict with PCI device, and
> PCI device can't user io port < 0x1000.

The purpose of the PNP system driver is to avoid conflicts with
*all* devices. And if the PNP core were a little smarter, we
wouldn't need the system driver at all. We don't have one for
PCI -- the PCI core manages resources for all PCI devices, even
ones that have no driver.

Why is 0x1000 a magic number? drivers/acpi/motherboard.c used to
ignore IO port ranges that ended below PCIBIOS_MIN_IO (== 0x1000 for
most architectures). I don't think Linux will assign IO ports below
PCIBIOS_MIN_IO to a PCI device, but the BIOS could, and I've seen
CardBus devices below PCIBIOS_MIN_IO.

I think having drivers/pnp/system.c ignore resources below
PCIBIOS_MIN_IO would be a hack that happens to cover up problems
like this without understanding the real cause.

Bjorn
--
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/