The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Linus Torvalds <torvalds@transmeta.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] export e820 table on x86
Date: Fri, 22 Nov 2002 14:37:07 -0800	[thread overview]
Message-ID: <3DDEB193.1000706@us.ibm.com> (raw)
In-Reply-To: m17kf5zfqj.fsf@frodo.biederman.org

[-- Attachment #1: Type: text/plain, Size: 2145 bytes --]

Here's take one of the 64-bit resources.  resource->flags seems to be 
used often to mask out things in resource->start/end, so I think it 
needs to be u64 too.  But, Is it all right to let things like 
pcibios_update_resource() truncate the resource addresses like they do?

With my config, it has no more warnings than it did before.

Here's /proc/iomem from a 16-gig ia32 box with the patch:

0000000000000000-000000000009c7ff : System RAM
000000000009c800-000000000009ffff : reserved
00000000000a0000-00000000000bffff : Video RAM area
00000000000c0000-00000000000c7fff : Video ROM
00000000000c8000-00000000000cc7ff : Extension ROM
00000000000cc800-00000000000d47ff : Extension ROM
00000000000d4800-00000000000d5fff : Extension ROM
00000000000f0000-00000000000fffff : System ROM
0000000000100000-00000000efff64ff : System RAM
   0000000000100000-000000000029fe78 : Kernel code
   000000000029fe79-0000000000395d7f : Kernel data
00000000efff6500-00000000efffffff : ACPI Tables
00000000f8000000-00000000fbffffff : S3 Inc. Trio 64 3D
00000000fc1e0000-00000000fc1effff : PCI device 1014:00dc (IBM)
00000000fc1fd000-00000000fc1fdfff : Adaptec AIC-7896U2/7897U2 (#2)
   00000000fc1fd000-00000000fc1fdfff : aic7xxx
00000000fc1fe000-00000000fc1fefff : Adaptec AIC-7896U2/7897U2
   00000000fc1fe000-00000000fc1fefff : aic7xxx
00000000fc1ffc00-00000000fc1ffcff : PCI device 1014:00dc (IBM)
00000000fd7c0000-00000000fd7dffff : Intel Corp. 82557/8/9 [Ethernet
00000000fd7fcc00-00000000fd7fcc7f : Digital Equipment Co DECchip 21140
   00000000fd7fcc00-00000000fd7fcc7f : tulip
00000000fd7fd000-00000000fd7fdfff : Intel Corp. 82557/8/9 [Ethernet
   00000000fd7fd000-00000000fd7fdfff : eepro100
00000000fd7fe000-00000000fd7fffff : IBM Netfinity ServeRAID
   00000000fd7fe000-00000000fd7fffff : ips
00000000fe1c0000-00000000fe1dffff : Intel Corp. 82546EB Gigabit Ethe
   00000000fe1c0000-00000000fe1dffff : e1000
00000000fe1e0000-00000000fe1fffff : Intel Corp. 82546EB Gigabit Ethe
   00000000fe1e0000-00000000fe1fffff : e1000
00000000fffb0000-00000000ffffffff : reserved
0000000100000000-00000003ffffffff : System RAM



-- 
Dave Hansen
haveblue@us.ibm.com

[-- Attachment #2: 64-bit-resource-2.5.49-0.patch --]
[-- Type: text/plain, Size: 34877 bytes --]

diff -Nru a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c
--- a/arch/alpha/kernel/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/alpha/kernel/pci.c	Fri Nov 22 14:32:09 2002
@@ -149,12 +149,12 @@
 
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	struct pci_dev *dev = data;
 	struct pci_controller *hose = dev->sysdata;
-	unsigned long alignto;
-	unsigned long start = res->start;
+	u64 alignto;
+	u64 start = res->start;
 
 	if (res->flags & IORESOURCE_IO) {
 		/* Make sure we start at our min on all hoses */
diff -Nru a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
--- a/arch/arm/kernel/bios32.c	Fri Nov 22 14:32:09 2002
+++ b/arch/arm/kernel/bios32.c	Fri Nov 22 14:32:09 2002
@@ -268,7 +268,7 @@
 	int reg;
 
 	if (debug_pci)
-		printk("PCI: Assigning %3s %08lx to %s\n",
+		printk("PCI: Assigning %3s %016Lx to %s\n",
 			res->flags & IORESOURCE_IO ? "IO" : "MEM",
 			res->start, dev->dev.name);
 
@@ -585,9 +585,9 @@
  * which might be mirrored at 0x0100-0x03ff..
  */
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
-	unsigned long start = res->start;
+	u64 start = res->start;
 
 	if (res->flags & IORESOURCE_IO && start & 0x300)
 		start = (start + 0x3ff) & ~0x3ff;
diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
--- a/arch/i386/kernel/setup.c	Fri Nov 22 14:32:10 2002
+++ b/arch/i386/kernel/setup.c	Fri Nov 22 14:32:10 2002
@@ -798,15 +798,18 @@
 	probe_roms();
 	for (i = 0; i < e820.nr_map; i++) {
 		struct resource *res;
-		if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL)
-			continue;
+		
+		//if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL)
+		//	continue;
+	
 		res = alloc_bootmem_low(sizeof(struct resource));
 		switch (e820.map[i].type) {
-		case E820_RAM:	res->name = "System RAM"; break;
-		case E820_ACPI:	res->name = "ACPI Tables"; break;
-		case E820_NVS:	res->name = "ACPI Non-volatile Storage"; break;
-		default:	res->name = "reserved";
+		case E820_RAM:	res->name = "System RAM e820"; break;
+		case E820_ACPI:	res->name = "ACPI Tables e820"; break;
+		case E820_NVS:	res->name = "ACPI Non-volatile Storage e820"; break;
+		default:	res->name = "reserved e820";
 		}
+		res->type = e820.map[i].type;
 		res->start = e820.map[i].addr;
 		res->end = res->start + e820.map[i].size - 1;
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
diff -Nru a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c
--- a/arch/i386/pci/i386.c	Fri Nov 22 14:32:09 2002
+++ b/arch/i386/pci/i386.c	Fri Nov 22 14:32:09 2002
@@ -76,10 +76,10 @@
  */
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		if (start & 0x300) {
 			start = (start + 0x3ff) & ~0x3ff;
@@ -167,7 +167,7 @@
 			else
 				disabled = !(command & PCI_COMMAND_MEMORY);
 			if (pass == disabled) {
-				DBG("PCI: Resource %08lx-%08lx (f=%lx, d=%d, p=%d)\n",
+				DBG("PCI: Resource %016Lx-%016Lx (f=%Lx, d=%d, p=%d)\n",
 				    r->start, r->end, r->flags, disabled, pass);
 				pr = pci_find_parent_resource(dev, r);
 				if (!pr || request_resource(pr, r) < 0) {
diff -Nru a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
--- a/arch/ia64/pci/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/ia64/pci/pci.c	Fri Nov 22 14:32:09 2002
@@ -151,7 +151,8 @@
 pcibios_update_resource (struct pci_dev *dev, struct resource *root,
 			 struct resource *res, int resource)
 {
-	unsigned long where, size;
+	unsigned long where
+	u64 size;
 	u32 reg;
 
 	where = PCI_BASE_ADDRESS_0 + (resource * 4);
@@ -229,7 +230,7 @@
 
 void
 pcibios_align_resource (void *data, struct resource *res,
-		        unsigned long size, unsigned long align)
+		        u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/mips/ddb5074/pci.c b/arch/mips/ddb5074/pci.c
--- a/arch/mips/ddb5074/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/ddb5074/pci.c	Fri Nov 22 14:32:10 2002
@@ -373,12 +373,12 @@
 }
 
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 	struct pci_dev *dev = data;
 
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		/* We need to avoid collisions with `mirrored' VGA ports
 		   and other strange ISA hardware, so we always want the
diff -Nru a/arch/mips/ddb5476/pci.c b/arch/mips/ddb5476/pci.c
--- a/arch/mips/ddb5476/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/mips/ddb5476/pci.c	Fri Nov 22 14:32:09 2002
@@ -431,12 +431,12 @@
 }
 
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 	struct pci_dev *dev = data;
 
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		/* We need to avoid collisions with `mirrored' VGA ports
 		   and other strange ISA hardware, so we always want the
diff -Nru a/arch/mips/ddb5xxx/common/pci.c b/arch/mips/ddb5xxx/common/pci.c
--- a/arch/mips/ddb5xxx/common/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/ddb5xxx/common/pci.c	Fri Nov 22 14:32:10 2002
@@ -165,7 +165,7 @@
 
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	/* this should not be called */
 	MIPS_ASSERT(1 == 0);
diff -Nru a/arch/mips/gt64120/common/pci.c b/arch/mips/gt64120/common/pci.c
--- a/arch/mips/gt64120/common/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/gt64120/common/pci.c	Fri Nov 22 14:32:10 2002
@@ -819,12 +819,12 @@
 }
 
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 	struct pci_dev *dev = data;
 
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		/* We need to avoid collisions with `mirrored' VGA ports
 		   and other strange ISA hardware, so we always want the
diff -Nru a/arch/mips/ite-boards/generic/it8172_pci.c b/arch/mips/ite-boards/generic/it8172_pci.c
--- a/arch/mips/ite-boards/generic/it8172_pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/ite-boards/generic/it8172_pci.c	Fri Nov 22 14:32:10 2002
@@ -183,7 +183,7 @@
 
 void __init
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
     printk("pcibios_align_resource\n");
 }
diff -Nru a/arch/mips/kernel/pci.c b/arch/mips/kernel/pci.c
--- a/arch/mips/kernel/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/kernel/pci.c	Fri Nov 22 14:32:10 2002
@@ -162,7 +162,7 @@
 
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	/* this should not be called */
 }
diff -Nru a/arch/mips/mips-boards/generic/pci.c b/arch/mips/mips-boards/generic/pci.c
--- a/arch/mips/mips-boards/generic/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/mips/mips-boards/generic/pci.c	Fri Nov 22 14:32:09 2002
@@ -232,7 +232,7 @@
 
 void __init
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/mips/sni/pci.c b/arch/mips/sni/pci.c
--- a/arch/mips/sni/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips/sni/pci.c	Fri Nov 22 14:32:10 2002
@@ -180,7 +180,7 @@
 
 void __init
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/mips64/mips-boards/generic/pci.c b/arch/mips64/mips-boards/generic/pci.c
--- a/arch/mips64/mips-boards/generic/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/mips64/mips-boards/generic/pci.c	Fri Nov 22 14:32:09 2002
@@ -291,7 +291,7 @@
 
 void __init
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/mips64/sgi-ip27/ip27-pci.c b/arch/mips64/sgi-ip27/ip27-pci.c
--- a/arch/mips64/sgi-ip27/ip27-pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips64/sgi-ip27/ip27-pci.c	Fri Nov 22 14:32:10 2002
@@ -249,7 +249,7 @@
 
 void __init
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/mips64/sgi-ip32/ip32-pci.c b/arch/mips64/sgi-ip32/ip32-pci.c
--- a/arch/mips64/sgi-ip32/ip32-pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/mips64/sgi-ip32/ip32-pci.c	Fri Nov 22 14:32:10 2002
@@ -329,7 +329,7 @@
 }
 
 void __init pcibios_align_resource (void *data, struct resource *res,
-				    unsigned long size, unsigned long align)
+				    u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/parisc/kernel/pci.c b/arch/parisc/kernel/pci.c
--- a/arch/parisc/kernel/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/parisc/kernel/pci.c	Fri Nov 22 14:32:09 2002
@@ -392,11 +392,11 @@
 */
 void __devinit
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long alignment)
+		       u64 size, u64 alignment)
 {
-	unsigned long mask, align;
+	u64 mask, align;
 
-	DBG_RES("pcibios_align_resource(%s, (%p) [%lx,%lx]/%x, 0x%lx, 0x%lx)\n",
+	DBG_RES("pcibios_align_resource(%s, (%p) [%Lx,%Lx]/%Lx, 0x%Lx, 0x%Lx)\n",
 		((struct pci_dev *) data)->slot_name,
 		res->parent, res->start, res->end,
 		(int) res->flags, size, alignment);
diff -Nru a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c
--- a/arch/ppc/kernel/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/ppc/kernel/pci.c	Fri Nov 22 14:32:09 2002
@@ -128,7 +128,7 @@
 		       "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
 		       new, check);
 	}
-	printk(KERN_INFO "PCI: moved device %s resource %d (%lx) to %x\n",
+	printk(KERN_INFO "PCI: moved device %s resource %d (%Lx) to %x\n",
 	       dev->slot_name, resource, res->flags,
 	       new & ~PCI_REGION_FLAG_MASK);
 }
@@ -149,7 +149,7 @@
 		if (!res->flags)
 			continue;
 		if (!res->start || res->end == 0xffffffff) {
-			DBG("PCI:%s Resource %d [%08lx-%08lx] is unassigned\n",
+			DBG("PCI:%s Resource %d [%016Lx-%016Lx] is unassigned\n",
 			    dev->slot_name, i, res->start, res->end);
 			res->end -= res->start;
 			res->start = 0;
@@ -167,7 +167,7 @@
 			res->start += offset;
 			res->end += offset;
 #ifdef DEBUG
-			printk("Fixup res %d (%lx) of dev %s: %lx -> %lx\n",
+			printk("Fixup res %d (%Lx) of dev %s: %Lx -> %Lx\n",
 			       i, res->flags, dev->slot_name,
 			       res->start - offset, res->start);
 #endif
@@ -230,17 +230,17 @@
  * which might have be mirrored at 0x0100-0x03ff..
  */
 void
-pcibios_align_resource(void *data, struct resource *res, unsigned long size,
-		       unsigned long align)
+pcibios_align_resource(void *data, struct resource *res, u64 size,
+		       u64 align)
 {
 	struct pci_dev *dev = data;
 
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		if (size > 0x100) {
-			printk(KERN_ERR "PCI: I/O Region %s/%d too large"
-			       " (%ld bytes)\n", dev->slot_name,
+			printk(KERN_ERR "PCI: I/O Region %s/%Ld too large"
+			       " (%Ld bytes)\n", dev->slot_name,
 			       dev->resource - res, size);
 		}
 
@@ -314,7 +314,7 @@
 				}
 			}
 
-			DBG("PCI: bridge rsrc %lx..%lx (%lx), parent %p\n",
+			DBG("PCI: bridge rsrc %Lx..%Lx (%Lx), parent %p\n",
 			    res->start, res->end, res->flags, pr);
 			if (pr) {
 				if (request_resource(pr, res) == 0)
@@ -419,12 +419,12 @@
 		try = conflict->start - 1;
 	}
 	if (request_resource(pr, res)) {
-		DBG(KERN_ERR "PCI: huh? couldn't move to %lx..%lx\n",
+		DBG(KERN_ERR "PCI: huh? couldn't move to %Lx..%Lx\n",
 		    res->start, res->end);
 		return -1;		/* "can't happen" */
 	}
 	update_bridge_base(bus, i);
-	printk(KERN_INFO "PCI: bridge %d resource %d moved to %lx..%lx\n",
+	printk(KERN_INFO "PCI: bridge %d resource %d moved to %Lx..%Lx\n",
 	       bus->number, i, res->start, res->end);
 	return 0;
 }
@@ -485,7 +485,8 @@
 	u8 io_base_lo, io_limit_lo;
 	u16 mem_base, mem_limit;
 	u16 cmd;
-	unsigned long start, end, off;
+	u64 start, end;
+	unsigned long off;
 	struct pci_dev *dev = bus->self;
 	struct pci_controller *hose = dev->sysdata;
 
@@ -530,7 +531,7 @@
 		pci_write_config_word(dev, PCI_PREF_MEMORY_LIMIT, mem_limit);
 
 	} else {
-		DBG(KERN_ERR "PCI: ugh, bridge %s res %d has flags=%lx\n",
+		DBG(KERN_ERR "PCI: ugh, bridge %s res %d has flags=%Lx\n",
 		    dev->slot_name, i, res->flags);
 	}
 	pci_write_config_word(dev, PCI_COMMAND, cmd);
@@ -540,14 +541,14 @@
 {
 	struct resource *pr, *r = &dev->resource[idx];
 
-	DBG("PCI:%s: Resource %d: %08lx-%08lx (f=%lx)\n",
+	DBG("PCI:%s: Resource %d: %016Lx-%016Lx (f=%Lx)\n",
 	    dev->slot_name, idx, r->start, r->end, r->flags);
 	pr = pci_find_parent_resource(dev, r);
 	if (!pr || request_resource(pr, r) < 0) {
 		printk(KERN_ERR "PCI: Cannot allocate resource region %d"
 		       " of device %s\n", idx, dev->slot_name);
 		if (pr)
-			DBG("PCI:  parent is %p: %08lx-%08lx (f=%lx)\n",
+			DBG("PCI:  parent is %p: %016Lx-%016Lx (f=%Lx)\n",
 			    pr, pr->start, pr->end, pr->flags);
 		/* We'll assign a new address later */
 		r->flags |= IORESOURCE_UNSET;
diff -Nru a/arch/ppc64/kernel/pci.c b/arch/ppc64/kernel/pci.c
--- a/arch/ppc64/kernel/pci.c	Fri Nov 22 14:32:10 2002
+++ b/arch/ppc64/kernel/pci.c	Fri Nov 22 14:32:10 2002
@@ -178,15 +178,15 @@
  */
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	struct pci_dev *dev = data;
 
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		if (size > 0x100) {
-			printk(KERN_ERR "PCI: Can not align I/O Region %s %s because size %ld is too large.\n",
+			printk(KERN_ERR "PCI: Can not align I/O Region %s %s because size %Ld is too large.\n",
                                         dev->slot_name, res->name, size);
 		}
 
diff -Nru a/arch/sh/kernel/pcibios.c b/arch/sh/kernel/pcibios.c
--- a/arch/sh/kernel/pcibios.c	Fri Nov 22 14:32:09 2002
+++ b/arch/sh/kernel/pcibios.c	Fri Nov 22 14:32:09 2002
@@ -61,10 +61,10 @@
  * modulo 0x400.
  */
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		if (start & 0x300) {
 			start = (start + 0x3ff) & ~0x3ff;
diff -Nru a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
--- a/arch/sparc/kernel/pcic.c	Fri Nov 22 14:32:10 2002
+++ b/arch/sparc/kernel/pcic.c	Fri Nov 22 14:32:10 2002
@@ -861,7 +861,7 @@
 }
 
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
--- a/arch/sparc64/kernel/pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/sparc64/kernel/pci.c	Fri Nov 22 14:32:09 2002
@@ -485,7 +485,7 @@
 }
 
 void pcibios_align_resource(void *data, struct resource *res,
-			    unsigned long size, unsigned long align)
+			    u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c
--- a/arch/sparc64/kernel/pci_common.c	Fri Nov 22 14:32:09 2002
+++ b/arch/sparc64/kernel/pci_common.c	Fri Nov 22 14:32:09 2002
@@ -270,7 +270,7 @@
 			    ap->phys_hi, ap->phys_mid, ap->phys_lo,
 			    ap->size_hi, ap->size_lo);
 	if (res)
-		prom_printf("PCI: RES[%016lx-->%016lx:(%lx)]\n",
+		prom_printf("PCI: RES[%016lx-->%016lx:(%Lx)]\n",
 			    res->start, res->end, res->flags);
 	prom_printf("Please email this information to davem@redhat.com\n");
 	if (do_prom_halt)
@@ -403,7 +403,7 @@
 			 */
 			if ((res->start >> 32) != 0UL) {
 				printk(KERN_ERR "PCI: OBP assigns out of range MEM address "
-				       "%016lx for region %ld on device %s\n",
+				       "%016Lx for region %ld on device %s\n",
 				       res->start, (res - &pdev->resource[0]), pdev->dev.name);
 				continue;
 			}
diff -Nru a/arch/v850/kernel/rte_mb_a_pci.c b/arch/v850/kernel/rte_mb_a_pci.c
--- a/arch/v850/kernel/rte_mb_a_pci.c	Fri Nov 22 14:32:09 2002
+++ b/arch/v850/kernel/rte_mb_a_pci.c	Fri Nov 22 14:32:09 2002
@@ -339,7 +339,7 @@
 
 void
 pcibios_align_resource (void *data, struct resource *res,
-			unsigned long size, unsigned long align)
+			u64 size, u64 align)
 {
 }
 
diff -Nru a/arch/x86_64/pci/x86-64.c b/arch/x86_64/pci/x86-64.c
--- a/arch/x86_64/pci/x86-64.c	Fri Nov 22 14:32:10 2002
+++ b/arch/x86_64/pci/x86-64.c	Fri Nov 22 14:32:10 2002
@@ -76,10 +76,10 @@
  */
 void
 pcibios_align_resource(void *data, struct resource *res,
-		       unsigned long size, unsigned long align)
+		       u64 size, u64 align)
 {
 	if (res->flags & IORESOURCE_IO) {
-		unsigned long start = res->start;
+		u64 start = res->start;
 
 		if (start & 0x300) {
 			start = (start + 0x3ff) & ~0x3ff;
@@ -167,7 +167,7 @@
 			else
 				disabled = !(command & PCI_COMMAND_MEMORY);
 			if (pass == disabled) {
-				DBG("PCI: Resource %08lx-%08lx (f=%lx, d=%d, p=%d)\n",
+				DBG("PCI: Resource %016Lx-%016Lx (f=%Lx, d=%d, p=%d)\n",
 				    r->start, r->end, r->flags, disabled, pass);
 				pr = pci_find_parent_resource(dev, r);
 				if (!pr || request_resource(pr, r) < 0) {
diff -Nru a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c
--- a/drivers/ide/pci/aec62xx.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/ide/pci/aec62xx.c	Fri Nov 22 14:32:10 2002
@@ -413,7 +413,7 @@
 
 	if (dev->resource[PCI_ROM_RESOURCE].start) {
 		pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-		printk("%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
+		printk("%s: ROM enabled at 0x%016Lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
 	}
 
 #if defined(DISPLAY_AEC62XX_TIMINGS) && defined(CONFIG_PROC_FS)
diff -Nru a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c
--- a/drivers/ide/pci/cmd64x.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/ide/pci/cmd64x.c	Fri Nov 22 14:32:10 2002
@@ -606,7 +606,7 @@
 #ifdef __i386__
 	if (dev->resource[PCI_ROM_RESOURCE].start) {
 		pci_write_config_byte(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-		printk("%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
+		printk("%s: ROM enabled at 0x%016Lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
 	}
 #endif
 
diff -Nru a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c
--- a/drivers/ide/pci/hpt34x.c	Fri Nov 22 14:32:09 2002
+++ b/drivers/ide/pci/hpt34x.c	Fri Nov 22 14:32:09 2002
@@ -249,7 +249,7 @@
 		if (pci_resource_start(dev, PCI_ROM_RESOURCE)) {
 			pci_write_config_byte(dev, PCI_ROM_ADDRESS,
 				dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-			printk(KERN_INFO "HPT345: ROM enabled at 0x%08lx\n",
+			printk(KERN_INFO "HPT345: ROM enabled at 0x%016Lx\n",
 				dev->resource[PCI_ROM_RESOURCE].start);
 		}
 		pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0xF0);
diff -Nru a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c
--- a/drivers/ide/pci/pdc202xx_new.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/ide/pci/pdc202xx_new.c	Fri Nov 22 14:32:10 2002
@@ -538,7 +538,7 @@
 	if (dev->resource[PCI_ROM_RESOURCE].start) {
 		pci_write_config_dword(dev, PCI_ROM_ADDRESS,
 			dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-		printk("%s: ROM enabled at 0x%08lx\n",
+		printk("%s: ROM enabled at 0x%016Lx\n",
 			name, dev->resource[PCI_ROM_RESOURCE].start);
 	}
 
diff -Nru a/drivers/ide/pci/pdc202xx_old.c b/drivers/ide/pci/pdc202xx_old.c
--- a/drivers/ide/pci/pdc202xx_old.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/ide/pci/pdc202xx_old.c	Fri Nov 22 14:32:10 2002
@@ -718,7 +718,7 @@
 	if (dev->resource[PCI_ROM_RESOURCE].start) {
 		pci_write_config_dword(dev, PCI_ROM_ADDRESS,
 			dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
-		printk("%s: ROM enabled at 0x%08lx\n",
+		printk("%s: ROM enabled at 0x%016Lx\n",
 			name, dev->resource[PCI_ROM_RESOURCE].start);
 	}
 
diff -Nru a/drivers/net/e100/e100_main.c b/drivers/net/e100/e100_main.c
--- a/drivers/net/e100/e100_main.c	Fri Nov 22 14:32:09 2002
+++ b/drivers/net/e100/e100_main.c	Fri Nov 22 14:32:09 2002
@@ -2986,7 +2986,7 @@
 	bdp->scb = (scb_t *) ioremap_nocache(dev->mem_start, sizeof (scb_t));
 
 	if (!bdp->scb) {
-		printk(KERN_ERR "e100: %s: Failed to map PCI address 0x%lX\n",
+		printk(KERN_ERR "e100: %s: Failed to map PCI address 0x%LX\n",
 		       dev->name, pci_resource_start(pcid, 0));
 		rc = -ENOMEM;
 		goto err_region;
diff -Nru a/drivers/net/eepro100.c b/drivers/net/eepro100.c
--- a/drivers/net/eepro100.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/net/eepro100.c	Fri Nov 22 14:32:10 2002
@@ -621,12 +621,12 @@
 	ioaddr = (unsigned long)ioremap(pci_resource_start(pdev, 0),
 									pci_resource_len(pdev, 0));
 	if (!ioaddr) {
-		printk (KERN_ERR "eepro100: cannot remap MMIO region %lx @ %lx\n",
+		printk (KERN_ERR "eepro100: cannot remap MMIO region %Lx @ %Lx\n",
 				pci_resource_len(pdev, 0), pci_resource_start(pdev, 0));
 		goto err_out_free_mmio_region;
 	}
 	if (DEBUG & NETIF_MSG_PROBE)
-		printk("Found Intel i82557 PCI Speedo, MMIO at %#lx, IRQ %d.\n",
+		printk("Found Intel i82557 PCI Speedo, MMIO at %#Lx, IRQ %d.\n",
 			   pci_resource_start(pdev, 0), irq);
 #endif
 
diff -Nru a/drivers/net/tc35815.c b/drivers/net/tc35815.c
--- a/drivers/net/tc35815.c	Fri Nov 22 14:32:09 2002
+++ b/drivers/net/tc35815.c	Fri Nov 22 14:32:09 2002
@@ -499,7 +499,7 @@
 
 	        pci_memaddr = pci_resource_start (pdev, 1);
 
-	        printk(KERN_INFO "    pci_memaddr=%#08lx  resource_flags=%#08lx\n", pci_memaddr, pci_resource_flags (pdev, 0));
+	        printk(KERN_INFO "    pci_memaddr=%#016Lx  resource_flags=%#016Lx\n", pci_memaddr, pci_resource_flags (pdev, 0));
 
 		if (!pci_memaddr) {
 			printk(KERN_WARNING "no PCI MEM resources, aborting\n");
diff -Nru a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
--- a/drivers/net/tulip/tulip_core.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/net/tulip/tulip_core.c	Fri Nov 22 14:32:10 2002
@@ -1361,7 +1361,7 @@
 	}
 
 	if (pci_resource_len (pdev, 0) < tulip_tbl[chip_idx].io_size) {
-		printk (KERN_ERR PFX "%s: I/O region (0x%lx@0x%lx) too small, "
+		printk (KERN_ERR PFX "%s: I/O region (0x%Lx@0x%Lx) too small, "
 			"aborting\n", pdev->slot_name,
 			pci_resource_len (pdev, 0),
 			pci_resource_start (pdev, 0));
diff -Nru a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
--- a/drivers/parisc/ccio-dma.c	Fri Nov 22 14:32:09 2002
+++ b/drivers/parisc/ccio-dma.c	Fri Nov 22 14:32:09 2002
@@ -1438,7 +1438,7 @@
 	res->name = name;
 	result = request_resource(&iomem_resource, res);
 	if (result < 0) {
-		printk(KERN_ERR "%s: failed to claim CCIO bus address space (%08lx,%08lx)\n", 
+		printk(KERN_ERR "%s: failed to claim CCIO bus address space (%016Lx,%016Lx)\n", 
 		       __FILE__, res->start, res->end);
 	}
 }
diff -Nru a/drivers/pci/pci.c b/drivers/pci/pci.c
--- a/drivers/pci/pci.c	Fri Nov 22 14:32:09 2002
+++ b/drivers/pci/pci.c	Fri Nov 22 14:32:09 2002
@@ -500,7 +500,7 @@
 	return 0;
 
 err_out:
-	printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%lx@%lx for device %s\n",
+	printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%Lx@%Lx for device %s\n",
 		pci_resource_flags(pdev, bar) & IORESOURCE_IO ? "I/O" : "mem",
 		bar + 1, /* PCI BAR # */
 		pci_resource_len(pdev, bar), pci_resource_start(pdev, bar),
@@ -549,7 +549,7 @@
 	return 0;
 
 err_out:
-	printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%lx@%lx for device %s\n",
+	printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%Lx@%Lx for device %s\n",
 		pci_resource_flags(pdev, i) & IORESOURCE_IO ? "I/O" : "mem",
 		i + 1, /* PCI BAR # */
 		pci_resource_len(pdev, i), pci_resource_start(pdev, i),
diff -Nru a/drivers/pci/proc.c b/drivers/pci/proc.c
--- a/drivers/pci/proc.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/pci/proc.c	Fri Nov 22 14:32:10 2002
@@ -299,11 +299,7 @@
 #endif /* HAVE_PCI_MMAP */
 };
 
-#if BITS_PER_LONG == 32
-#define LONG_FORMAT "\t%08lx"
-#else
-#define LONG_FORMAT "\t%16lx"
-#endif
+#define LONG_FORMAT "\t%016Lx"
 
 /* iterator */
 static void *pci_seq_start(struct seq_file *m, loff_t *pos)
diff -Nru a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
--- a/drivers/pci/setup-res.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/pci/setup-res.c	Fri Nov 22 14:32:10 2002
@@ -46,7 +46,7 @@
 		err = request_resource(root, res);
 
 	if (err) {
-		printk(KERN_ERR "PCI: %s region %d of %s %s [%lx:%lx]\n",
+		printk(KERN_ERR "PCI: %s region %d of %s %s [%Lx:%Lx]\n",
 		       root ? "Address space collision on" :
 			      "No parent found for",
 		       resource, dtype, dev->slot_name, res->start, res->end);
@@ -63,12 +63,12 @@
 static int pci_assign_bus_resource(const struct pci_bus *bus,
 	struct pci_dev *dev,
 	struct resource *res,
-	unsigned long size,
-	unsigned long min,
-	unsigned int type_mask,
+	u64 size,
+	u64 min,
+	u64 type_mask,
 	int resno)
 {
-	unsigned long align;
+	u64 align;
 	int i;
 
 	type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
@@ -123,13 +123,13 @@
 		 * window (it will just not perform as well).
 		 */
 		if (!(res->flags & IORESOURCE_PREFETCH) || pci_assign_bus_resource(bus, dev, res, size, min, 0, i) < 0) {
-			printk(KERN_ERR "PCI: Failed to allocate resource %d(%lx-%lx) for %s\n",
+			printk(KERN_ERR "PCI: Failed to allocate resource %d(%Lx-%Lx) for %s\n",
 			       i, res->start, res->end, dev->slot_name);
 			return -EBUSY;
 		}
 	}
 
-	DBGC((KERN_ERR "  got res[%lx:%lx] for resource %d of %s\n", res->start,
+	DBGC((KERN_ERR "  got res[%Lx:%Lx] for resource %d of %s\n", res->start,
 						res->end, i, dev->dev.name));
 
 	return 0;
@@ -153,7 +153,7 @@
 			continue;
 		if (!r_align) {
 			printk(KERN_WARNING "PCI: Ignore bogus resource %d "
-					    "[%lx:%lx] of %s\n",
+					    "[%Lx:%Lx] of %s\n",
 					    i, r->start, r->end, dev->dev.name);
 			continue;
 		}
diff -Nru a/drivers/video/clgenfb.c b/drivers/video/clgenfb.c
--- a/drivers/video/clgenfb.c	Fri Nov 22 14:32:10 2002
+++ b/drivers/video/clgenfb.c	Fri Nov 22 14:32:10 2002
@@ -2690,7 +2690,7 @@
 		info->fbmem_phys = board_addr + 16777216;
 		info->fbmem = ioremap (info->fbmem_phys, 16777216);
 	} else {
-		printk (" REG at $%lx\n", (unsigned long) z2->resource.start);
+		printk (" REG at $%Lx\n", (unsigned long) z2->resource.start);
 
 		info->fbmem_phys = board_addr;
 		if (board_addr > 0x01000000)
diff -Nru a/include/linux/ioport.h b/include/linux/ioport.h
--- a/include/linux/ioport.h	Fri Nov 22 14:32:09 2002
+++ b/include/linux/ioport.h	Fri Nov 22 14:32:09 2002
@@ -5,6 +5,8 @@
  * Authors:	Linus Torvalds
  */
 
+#include <asm/types.h>
+
 #ifndef _LINUX_IOPORT_H
 #define _LINUX_IOPORT_H
 
@@ -14,8 +16,9 @@
  */
 struct resource {
 	const char *name;
-	unsigned long start, end;
-	unsigned long flags;
+	u64 start, end;
+	u64 flags;
+	unsigned long type;
 	struct resource *parent, *sibling, *child;
 };
 
@@ -28,23 +31,23 @@
 /*
  * IO resources have these defined flags.
  */
-#define IORESOURCE_BITS		0x000000ff	/* Bus-specific bits */
+#define IORESOURCE_BITS		0x00000000000000ff	/* Bus-specific bits */
 
-#define IORESOURCE_IO		0x00000100	/* Resource type */
-#define IORESOURCE_MEM		0x00000200
-#define IORESOURCE_IRQ		0x00000400
-#define IORESOURCE_DMA		0x00000800
-
-#define IORESOURCE_PREFETCH	0x00001000	/* No side effects */
-#define IORESOURCE_READONLY	0x00002000
-#define IORESOURCE_CACHEABLE	0x00004000
-#define IORESOURCE_RANGELENGTH	0x00008000
-#define IORESOURCE_SHADOWABLE	0x00010000
-#define IORESOURCE_BUS_HAS_VGA	0x00080000
-
-#define IORESOURCE_UNSET	0x20000000
-#define IORESOURCE_AUTO		0x40000000
-#define IORESOURCE_BUSY		0x80000000	/* Driver has marked this resource busy */
+#define IORESOURCE_IO		0x0000000000000100	/* Resource type */
+#define IORESOURCE_MEM		0x0000000000000200
+#define IORESOURCE_IRQ		0x0000000000000400
+#define IORESOURCE_DMA		0x0000000000000800
+
+#define IORESOURCE_PREFETCH	0x0000000000001000	/* No side effects */
+#define IORESOURCE_READONLY	0x0000000000002000
+#define IORESOURCE_CACHEABLE	0x0000000000004000
+#define IORESOURCE_RANGELENGTH	0x0000000000008000
+#define IORESOURCE_SHADOWABLE	0x0000000000010000
+#define IORESOURCE_BUS_HAS_VGA	0x0000000000080000
+
+#define IORESOURCE_UNSET	0x0000000020000000
+#define IORESOURCE_AUTO		0x0000000040000000
+#define IORESOURCE_BUSY		0x0000000080000000	/* Driver has marked this resource busy */
 
 /* ISA PnP IRQ specific bits (IORESOURCE_BITS) */
 #define IORESOURCE_IRQ_HIGHEDGE		(1<<0)
@@ -88,18 +91,18 @@
 extern int request_resource(struct resource *root, struct resource *new);
 extern int release_resource(struct resource *new);
 extern int allocate_resource(struct resource *root, struct resource *new,
-			     unsigned long size,
-			     unsigned long min, unsigned long max,
-			     unsigned long align,
+			     u64 size,
+			     u64 min, u64 max,
+			     u64 align,
 			     void (*alignf)(void *, struct resource *,
-					    unsigned long, unsigned long),
+					    u64, u64),
 			     void *alignf_data);
 
 /* Convenience shorthand with allocation */
 #define request_region(start,n,name)	__request_region(&ioport_resource, (start), (n), (name))
 #define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))
 
-extern struct resource * __request_region(struct resource *, unsigned long start, unsigned long n, const char *name);
+extern struct resource * __request_region(struct resource *, u64 start, u64 n, const char *name);
 
 /* Compatibility cruft */
 #define check_region(start,n)	__check_region(&ioport_resource, (start), (n))
@@ -107,8 +110,8 @@
 #define check_mem_region(start,n)	__check_region(&iomem_resource, (start), (n))
 #define release_mem_region(start,n)	__release_region(&iomem_resource, (start), (n))
 
-extern int __check_region(struct resource *, unsigned long, unsigned long);
-extern void __release_region(struct resource *, unsigned long, unsigned long);
+extern int __check_region(struct resource *, u64, u64);
+extern void __release_region(struct resource *, u64, u64);
 
 #define get_ioport_list(buf)	get_resource_list(&ioport_resource, buf, PAGE_SIZE)
 #define get_mem_list(buf)	get_resource_list(&iomem_resource, buf, PAGE_SIZE)
diff -Nru a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h	Fri Nov 22 14:32:09 2002
+++ b/include/linux/pci.h	Fri Nov 22 14:32:09 2002
@@ -511,7 +511,7 @@
 
 /* Used only when drivers/pci/setup.c is used */
 void pcibios_align_resource(void *, struct resource *,
-			    unsigned long, unsigned long);
+			    u64, u64);
 void pcibios_update_resource(struct pci_dev *, struct resource *,
 			     struct resource *, int);
 void pcibios_update_irq(struct pci_dev *, int irq);
diff -Nru a/kernel/resource.c b/kernel/resource.c
--- a/kernel/resource.c	Fri Nov 22 14:32:10 2002
+++ b/kernel/resource.c	Fri Nov 22 14:32:10 2002
@@ -16,7 +16,7 @@
 #include <asm/io.h>
 
 struct resource ioport_resource = { "PCI IO", 0x0000, IO_SPACE_LIMIT, IORESOURCE_IO };
-struct resource iomem_resource = { "PCI mem", 0x00000000, 0xffffffff, IORESOURCE_MEM };
+struct resource iomem_resource = { "PCI mem", 0x0000000000000000, 0xffffffffffffffff, IORESOURCE_MEM };
 
 static rwlock_t resource_lock = RW_LOCK_UNLOCKED;
 
@@ -30,7 +30,7 @@
 
 	while (entry) {
 		const char *name = entry->name;
-		unsigned long from, to;
+		u64 from, to;
 
 		if ((int) (end-buf) < 80)
 			return buf;
@@ -39,7 +39,7 @@
 		to = entry->end;
 		if (!name)
 			name = "<BAD>";
-
+		
 		buf += sprintf(buf, fmt + offset, from, to, name);
 		if (entry->child)
 			buf = do_resource_list(entry->child, fmt, offset-2, buf, end);
@@ -54,9 +54,9 @@
 	char *fmt;
 	int retval;
 
-	fmt = "        %08lx-%08lx : %s\n";
+	fmt = "        %016Lx-%016Lx : %s\n";
 	if (root->end < 0x10000)
-		fmt = "        %04lx-%04lx : %s\n";
+		fmt = "        %04Lx-%04Lx : %s\n";
 	read_lock(&resource_lock);
 	retval = do_resource_list(root->child, fmt, 8, buf, buf + size) - buf;
 	read_unlock(&resource_lock);
@@ -66,8 +66,8 @@
 /* Return the conflict entry if you can't request it */
 static struct resource * __request_resource(struct resource *root, struct resource *new)
 {
-	unsigned long start = new->start;
-	unsigned long end = new->end;
+	u64 start = new->start;
+	u64 end = new->end;
 	struct resource *tmp, **p;
 
 	if (end < start)
@@ -135,11 +135,11 @@
  * Find empty slot in the resource tree given range and alignment.
  */
 static int find_resource(struct resource *root, struct resource *new,
-			 unsigned long size,
-			 unsigned long min, unsigned long max,
-			 unsigned long align,
+			 u64 size,
+			 u64 min, u64 max,
+			 u64 align,
 			 void (*alignf)(void *, struct resource *,
-					unsigned long, unsigned long),
+					u64, u64),
 			 void *alignf_data)
 {
 	struct resource *this = root->child;
@@ -173,11 +173,11 @@
  * Allocate empty slot in the resource tree given range and alignment.
  */
 int allocate_resource(struct resource *root, struct resource *new,
-		      unsigned long size,
-		      unsigned long min, unsigned long max,
-		      unsigned long align,
+		      u64 size,
+		      u64 min, u64 max,
+		      u64 align,
 		      void (*alignf)(void *, struct resource *,
-				     unsigned long, unsigned long),
+				     u64, u64),
 		      void *alignf_data)
 {
 	int err;
@@ -202,7 +202,7 @@
  *
  * Release-region releases a matching busy region.
  */
-struct resource * __request_region(struct resource *parent, unsigned long start, unsigned long n, const char *name)
+struct resource * __request_region(struct resource *parent, u64 start, u64 n, const char *name)
 {
 	struct resource *res = kmalloc(sizeof(*res), GFP_KERNEL);
 
@@ -237,7 +237,7 @@
 	return res;
 }
 
-int __check_region(struct resource *parent, unsigned long start, unsigned long n)
+int __check_region(struct resource *parent, u64 start, u64 n)
 {
 	struct resource * res;
 
@@ -250,10 +250,10 @@
 	return 0;
 }
 
-void __release_region(struct resource *parent, unsigned long start, unsigned long n)
+void __release_region(struct resource *parent, u64 start, u64 n)
 {
 	struct resource **p;
-	unsigned long end;
+	u64 end;
 
 	p = &parent->child;
 	end = start + n - 1;
@@ -276,7 +276,7 @@
 		}
 		p = &res->sibling;
 	}
-	printk(KERN_WARNING "Trying to free nonexistent resource <%08lx-%08lx>\n", start, end);
+	printk(KERN_WARNING "Trying to free nonexistent resource <%016Lx-%016Lx>\n", start, end);
 }
 
 /*

      reply	other threads:[~2002-11-22 22:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-21  2:00 [PATCH] export e820 table on x86 Dave Hansen
2002-11-21  2:09 ` Christoph Hellwig
2002-11-21 21:01   ` Dave Hansen
2002-11-21 22:50 ` Linus Torvalds
2002-11-21 23:46   ` Dave Hansen
2002-11-22  0:04     ` Linus Torvalds
2002-11-22  0:53       ` H. Peter Anvin
2002-11-22  6:20       ` Eric W. Biederman
2002-11-22  7:50       ` Dave Hansen
2002-11-22  8:00         ` Linus Torvalds
2002-11-22 17:17           ` Eric W. Biederman
2002-11-22 22:37             ` Dave Hansen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3DDEB193.1000706@us.ibm.com \
    --to=haveblue@us.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox