Hi flags should be long, not int. build/drivers/sgi/char/sgiserial.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff -puN build/drivers/sgi/char/sgiserial.c~sgserial_flags build/drivers/sgi/char/sgiserial.c --- 24/build/drivers/sgi/char/sgiserial.c~sgserial_flags 2003-03-22 01:37:45.000000000 +0100 +++ 24-quintela/build/drivers/sgi/char/sgiserial.c 2003-03-22 01:43:17.000000000 +0100 @@ -886,7 +886,8 @@ static void zs_cons_put_char(char ch) { struct sgi_zschannel *chan = zs_conschan; volatile unsigned char junk; - int flags, loops = 0; + unsigned long flags; + int loops = 0; save_flags(flags); cli(); while(((junk = chan->control) & Tx_BUF_EMP)==0 && loops < 10000) { @@ -911,7 +912,8 @@ static void rs_put_char(struct tty_struc struct sgi_zschannel *chan = ((struct sgi_serial *)tty->driver_data)->zs_channel; volatile unsigned char junk; - int flags, loops = 0; + unsigned long flags; + int loops = 0; save_flags(flags); cli(); while(((junk = chan->control) & Tx_BUF_EMP)==0 && loops < 10000) { @@ -1854,7 +1856,8 @@ volatile int test_done; /* rs_init inits the driver */ int rs_init(void) { - int chip, channel, i, flags; + unsigned long flags; + int chip, channel, i; struct sgi_serial *info; _ -- In theory, practice and theory are the same, but in practice they are different -- Larry McVoy