[PATCH] ACPI-based PCI resources: PCMCIA bugfix, but resources missing in trees
Don't auto-configure yenta sockets for PCMCIA devices if it is connected to the root PCI bus on the x86 or x86_64 architectures. Previously, this was handled by the "ioport_resource"/"iomem_resource" check a few lines below, but with the new ACPI-based resource handling this doesn't catch all cases any longer. pci-yenta-cardbus-fix.patch and this patch should solve the initialization time trouble. However, the ACPI-based PCI resource handling is badly broken, IMHO: - many resources of devices don't show up in the resource trees ( /proc/iomem and /proc/ioports) any longer. This means that PCMCIA, but also possibly other subsystems (ISA, PnP, ...) do not know which resources it cannot use. - verify_root_windows() should fail if there are no iomem _or_ ioport resources, not only if there are no iomem _and_ ioport resources. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
3248ff43f8
commit
b6d00f0de9
1 changed files with 11 additions and 0 deletions
|
@ -779,6 +779,17 @@ static int nonstatic_autoadd_resources(struct pcmcia_socket *s)
|
|||
if (!s->cb_dev || !s->cb_dev->bus)
|
||||
return -ENODEV;
|
||||
|
||||
#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
|
||||
/* If this is the root bus, the risk of hitting
|
||||
* some strange system devices which aren't protected
|
||||
* by either ACPI resource tables or properly requested
|
||||
* resources is too big. Therefore, don't do auto-adding
|
||||
* of resources at the moment.
|
||||
*/
|
||||
if (s->cb_dev->bus->number == 0)
|
||||
return -EINVAL;
|
||||
#endif
|
||||
|
||||
for (i=0; i < PCI_BUS_NUM_RESOURCES; i++) {
|
||||
res = s->cb_dev->bus->resource[i];
|
||||
if (!res)
|
||||
|
|
Loading…
Reference in a new issue