From d0b34f15c4ffad63ed04b457726436cf18de4b5f Mon Sep 17 00:00:00 2001
From: =?utf8?q?S=2E=C3=87a=C4=9Flar=20Onur?= <caglar@cs.princeton.edu>
Date: Thu, 31 Dec 2009 13:42:08 +0000
Subject: [PATCH] merge the fix

---
 linux-2.6-710-avoid-64bits-addr-pcmcia.patch | 77 +++++++++-----------
 1 file changed, 34 insertions(+), 43 deletions(-)

diff --git a/linux-2.6-710-avoid-64bits-addr-pcmcia.patch b/linux-2.6-710-avoid-64bits-addr-pcmcia.patch
index dfb3f6ae0..16ac9138d 100644
--- a/linux-2.6-710-avoid-64bits-addr-pcmcia.patch
+++ b/linux-2.6-710-avoid-64bits-addr-pcmcia.patch
@@ -1,7 +1,8 @@
-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;
@@ -9,7 +10,7 @@ diff -Naur linux-source-2.6.29-orig/drivers/pci/bus.c linux-source-2.6.29/driver
  
  	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;
  
@@ -26,44 +27,34 @@ diff -Naur linux-source-2.6.29-orig/drivers/pci/bus.c linux-source-2.6.29/driver
  					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
-*** 430,444 ****
-        if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
-                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[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;
-        } else {
-                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;
-        }
-  }
-  
---- 430,444 ----
-        if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
-                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 | 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 | IORESOURCE_PCI_32BIT;
-        } else {
-                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 | 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/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 = 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 = 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 = 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 --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 */
-- 
2.47.0