Re: [PATCH 22/76] serial: Make uart_port's ioport "unsigned long".

Josh Boyer
2008-10-06T12:55:10Z

On Sun, Oct 05, 2008 at 05:07:41PM +0100, Alan Cox wrote:
>From: David Miller <davem@davemloft.net>
>
>Otherwise the top 32-bits of the resource value get chopped
>off on 64-bit systems, and the resulting I/O accesses go to
>random places.
>
>Thanks to testing and debugging by Josip Rodin, which helped
>track this down.
>
>Signed-off-by: David S. Miller <davem@davemloft.net>
>Signed-off-by: Alan Cox <alan@redhat.com>
>---
>
> include/linux/serial_core.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
>diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
>index 3b2f6c0..e27f216 100644
>--- a/include/linux/serial_core.h
>+++ b/include/linux/serial_core.h
>@@ -241,7 +241,7 @@ typedef unsigned int __bitwise__ upf_t;
>
> struct uart_port {
> spinlock_t lock; /* port lock */
>- unsigned int iobase; /* in/out[bwl] */
>+ unsigned long iobase; /* in/out[bwl] */

Does using resource_size_t make more sense here? There are
32-bit CPUs that have 64-bit address spaces. (Perhaps not
that use iobase, but it might be cleaner in general.)

josh