-diff -Naur linux-source-2.6.29-orig/drivers/pci/bus.c linux-source-2.6.29/drivers/pci/bus.c
---- linux-source-2.6.29-orig/drivers/pci/bus.c 2009-03-24 00:12:14.000000000 +0100
-+++ linux-source-2.6.29/drivers/pci/bus.c 2009-04-06 11:04:41.000000000 +0200
-@@ -41,6 +41,7 @@
+diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
+index 9e5ea07..db1206b 100644
+--- a/drivers/pci/bus.c
++++ b/drivers/pci/bus.c
+@@ -41,6 +41,7 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
void *alignf_data)
{
int i, ret = -ENOMEM;
type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
-@@ -59,10 +60,15 @@
+@@ -59,10 +60,15 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
!(res->flags & IORESOURCE_PREFETCH))
continue;
alignf, alignf_data);
if (ret == 0)
break;
-diff -Naur linux-source-2.6.29-orig/drivers/pci/setup-bus.c linux-source-2.6.29/drivers/pci/setup-bus.c
---- linux-source-2.6.29-orig/drivers/pci/setup-bus.c 2009-03-24 00:12:14.000000000 +0100
-+++ linux-source-2.6.29/drivers/pci/setup-bus.c 2009-04-06 11:04:41.000000000 +0200
-@@ -429,19 +429,23 @@
- * If we have prefetchable memory support, allocate
- * two regions. Otherwise, allocate one region of
- * twice the size.
-+ * Avoid 64bit address space, as cardbus devices can't handle it.
- */
+diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
+index 5ec297d..24b1ddc 100644
+--- a/drivers/pci/setup-bus.c
++++ b/drivers/pci/setup-bus.c
+@@ -430,15 +430,15 @@ pci_bus_size_cardbus(struct pci_bus *bus)
if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
- b_res[2].start = 0;
- b_res[2].end = pci_cardbus_mem_size - 1;
-- b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_SIZEALIGN;
-+ b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH |
-+ IORESOURCE_SIZEALIGN | IORESOURCE_PCI_32BIT;
+ b_res[2].start = pci_cardbus_mem_size;
+ b_res[2].end = b_res[2].start + pci_cardbus_mem_size - 1;
+- b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH;
++ b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_PCI_32BIT;
- b_res[3].start = 0;
- b_res[3].end = pci_cardbus_mem_size - 1;
-- b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
-+ b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN |
-+ IORESOURCE_PCI_32BIT;
+ b_res[3].start = pci_cardbus_mem_size;
+ b_res[3].end = b_res[3].start + pci_cardbus_mem_size - 1;
+- b_res[3].flags |= IORESOURCE_MEM;
++ b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_PCI_32BIT;
} else {
- b_res[3].start = 0;
- b_res[3].end = pci_cardbus_mem_size * 2 - 1;
-- b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN;
-+ b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_SIZEALIGN |
-+ IORESOURCE_PCI_32BIT;
+ b_res[3].start = pci_cardbus_mem_size * 2;
+ b_res[3].end = b_res[3].start + pci_cardbus_mem_size * 2 - 1;
+- b_res[3].flags |= IORESOURCE_MEM;
++ b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_PCI_32BIT;
}
}
-diff -Naur linux-source-2.6.29-orig/include/linux/ioport.h linux-source-2.6.29/include/linux/ioport.h
---- linux-source-2.6.29-orig/include/linux/ioport.h 2009-03-24 00:12:14.000000000 +0100
-+++ linux-source-2.6.29/include/linux/ioport.h 2009-04-06 11:04:41.000000000 +0200
-@@ -103,6 +103,7 @@
+diff --git a/include/linux/ioport.h b/include/linux/ioport.h
+index 71ea923..f45930d 100644
+--- a/include/linux/ioport.h
++++ b/include/linux/ioport.h
+@@ -93,6 +93,7 @@ struct resource_list {
/* PCI control bits. Shares IORESOURCE_BITS with above PCI ROM. */
#define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */