diff options
author | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2007-07-23 21:43:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-24 15:24:58 -0400 |
commit | 4f640efb3170dbcf99a37a3cc99060647b95428c (patch) | |
tree | b600b237e4efc1c7dab2b362eae23e076e5ce8f9 /include/linux | |
parent | f695baf2df9e0413d3521661070103711545207a (diff) |
Use resource_size_t for serial port IO addresses
At present, various parts of the serial code use unsigned long to define
resource addresses. This is a problem, because some 32-bit platforms have
physical addresses larger than 32-bits, and have mmio serial uarts located
above the 4GB point.
This patch changes the type of mapbase in both struct uart_port and struct
plat_serial8250_port to resource_size_t, which can be configured to be 64
bits on such platforms. The mapbase in serial_struct can't safely be
changed, because that structure is user visible.
Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/serial_8250.h | 2 | ||||
-rw-r--r-- | include/linux/serial_core.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h index 8518fa2a6f89..afe0f6d9b9bc 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h | |||
@@ -20,7 +20,7 @@ | |||
20 | struct plat_serial8250_port { | 20 | struct plat_serial8250_port { |
21 | unsigned long iobase; /* io base address */ | 21 | unsigned long iobase; /* io base address */ |
22 | void __iomem *membase; /* ioremap cookie or NULL */ | 22 | void __iomem *membase; /* ioremap cookie or NULL */ |
23 | unsigned long mapbase; /* resource base */ | 23 | resource_size_t mapbase; /* resource base */ |
24 | unsigned int irq; /* interrupt number */ | 24 | unsigned int irq; /* interrupt number */ |
25 | unsigned int uartclk; /* UART clock rate */ | 25 | unsigned int uartclk; /* UART clock rate */ |
26 | unsigned char regshift; /* register shift */ | 26 | unsigned char regshift; /* register shift */ |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 773d8d8828ad..09d17b06bf02 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -288,7 +288,7 @@ struct uart_port { | |||
288 | const struct uart_ops *ops; | 288 | const struct uart_ops *ops; |
289 | unsigned int custom_divisor; | 289 | unsigned int custom_divisor; |
290 | unsigned int line; /* port index */ | 290 | unsigned int line; /* port index */ |
291 | unsigned long mapbase; /* for ioremap */ | 291 | resource_size_t mapbase; /* for ioremap */ |
292 | struct device *dev; /* parent device */ | 292 | struct device *dev; /* parent device */ |
293 | unsigned char hub6; /* this should be in the 8250 driver */ | 293 | unsigned char hub6; /* this should be in the 8250 driver */ |
294 | unsigned char unused[3]; | 294 | unsigned char unused[3]; |