Re: [PATCH] serial: serial_txx9 driver update

From: Andrew Morton
Date: Sun Jan 22 2006 - 03:31:54 EST


Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
>
> On Sat, Jan 21, 2006 at 11:36:49PM -0800, Andrew Morton wrote:
> > Atsushi Nemoto <anemo@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/