diff -ur alsa-driver-0.9.2.orig/drivers/serialmidi.c alsa-driver-0.9.2/drivers/serialmidi.c --- alsa-driver-0.9.2.orig/drivers/serialmidi.c 2003-02-22 09:37:11.000000000 +0000 +++ alsa-driver-0.9.2/drivers/serialmidi.c 2003-04-25 00:13:17.000000000 +0100 @@ -33,6 +33,7 @@ #define SNDRV_GET_ID #include #include +#include #define SNDRV_SERIAL_MAX_OUTS 16 /* min 16 */ #define TX_BUF_SIZE 256 @@ -155,7 +156,11 @@ retval = -EIO; goto __end; } - if (tty->count > 1) { + /* tty->count may have changed from int to atomic_t. */ + /* There is no preprocessor test, so use an ugly cast as a */ + /* temporary workaround. */ + /* Warning: Assumes int and atomic_t are bit-identical! */ + if (atomic_read((atomic_t *)&tty->count) > 1) { snd_printk(KERN_ERR "tty %s is already used", serial->sdev); retval = -EBUSY; goto __end;