pcmcia: do not use ioports < 0x100 on x86
authorDominik Brodowski <linux@dominikbrodowski.net>
Tue, 23 Mar 2010 15:05:00 +0000 (16:05 +0100)
committerDominik Brodowski <linux@dominikbrodowski.net>
Tue, 23 Mar 2010 17:55:23 +0000 (18:55 +0100)
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@nifty.com>
CC: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
drivers/pcmcia/rsrc_nonstatic.c

index 4663b3f..dcc6021 100644 (file)
@@ -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
+
        if (end < start)
                return -EINVAL;