On Tue, 2010-03-23 at 19:02 +0100, Dominik Brodowski wrote: > > If you make PCMCIA smart enough to avoid these low ports, do we still > > need these &ioport_resource and &iomem_resource checks? Having two > > mechanisms will lead to more complicated behavior and more special > > cases. > > Well, it aren't only the low ports (<0x100) I'm concerned about, it's also > (and especially on pre-2008 systems) ports in higher areas > (0x100 < x < 0xffff). If we don't use _CRS, we need to be more careful to > avoid accidentally hitting wrong I/O-ports. > From: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> > Date: Tue, 23 Mar 2010 16:05:00 +0100 > Subject: [PATCH] pcmcia: do not use ioports < 0x100 on x86 > > On x86 systems using ACPI _CRS information -- now the default for > post-2008 systems -- the PCI root bus no longer pretends to be > offering the root ioport_resource. To avoid accidentally hitting > some platform / system device, use only I/O ports >= 0x100 for > PCMCIA devices on x86. > > Reported-by: Komuro <komurojun-mbn@xxxxxxxxx> > CC: Bjorn Helgaas <bjorn.helgaas@xxxxxx> > Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> > > diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c > index 4663b3f..dcc6021 100644 > --- a/drivers/pcmcia/rsrc_nonstatic.c > +++ b/drivers/pcmcia/rsrc_nonstatic.c > @@ -810,6 +810,13 @@ static int adjust_io(struct pcmcia_socket *s, unsigned int action, unsigned long > unsigned long size = end - start + 1; > int ret = 0; > > +#if defined(CONFIG_X86) > + /* on x86, avoid anything < 0x100 for it is often used for > + * legacy platform devices */ > + if (start < 0x100) > + start = 0x100; > +#endif This looks OK to me (but we've already established that I don't know anything about PCMCIA :)). I do wonder whether we should have a generic mechanism to define areas we should avoid, along the lines of PCIBIOS_MIN_IO and PCIBIOS_MIN_CARDBUS_IO. PNP should probably avoid the same areas. Which reminds me, what little I gleaned from the MindShare PCMCIA book suggests that PCMCIA devices are similar to PNPBIOS devices in some ways -- you get a list of possible resource assignments from CIS, sometimes those assignments are fixed, other times they're programmable, and then you pick something that works. I wonder if there'd be any point in integrating PNP and PCMCIA somehow. Bjorn > if (end < start) > return -EINVAL; > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html