| Date | Mon, 6 Oct 2008 08:53:34 -0400 | From | Josh Boyer <> | Subject | Re: [PATCH 22/76] serial: Make uart_port's ioport "unsigned long". |
| |
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
|