lkml.org 
[lkml]   [2006]   [Jan]   [22]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 22 Jan 2006 00:33:07 -0800
FromAndrew Morton <>
SubjectRe: [PATCH] serial: serial_txx9 driver update
Russell King <rmk+lkml@arm.linux.org.uk> wrote:
>
> On Sat, Jan 21, 2006 at 11:36:49PM -0800, Andrew Morton wrote:
> > Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote:
> > >
> > >  serial_txx9_verify_port(struct uart_port *port, struct serial_struct *ser)
> > >   {
> > >  -	if (ser->irq < 0 ||
> > >  -	    ser->baud_base < 9600 || ser->type != PORT_TXX9)
> > >  +	unsigned long new_port = (unsigned long)ser->port +
> > >  +		((unsigned long)ser->port_high << ((sizeof(long) - sizeof(int)) * 8));
> > 
> > Are you sure about this part?  Shifting something left by sizeof(something)
> > seems very strange.  It'll give different results on 64-bit machines for
> > the same hardware.  Are you sure it wasn't supposed to be an addition?
> 
> There is a definition for that constant - it's called HIGH_BITS_OFFSET.

There are two definitions, actually.  drivers/serial/serial_core.c and
drivers/serial/8250.h.

> No need to try to buggily recreate it.

Where's the bug in the proposed code?

Can you tell us what HIGH_BITS_OFFSET actually does?  Stuffing the port
address into the upper 32-bits of a ulong on 64-bit machines.  Am consumed
by curiosity.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-01-22 09:35    [from the cache]
©2003-2008