staging: dgnc: remove struct member magic numbers
authorTobin C. Harding <me@tobin.cc>
Mon, 27 Mar 2017 23:28:38 +0000 (10:28 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Mar 2017 07:37:10 +0000 (09:37 +0200)
Driver uses magic number members within structs, this is an antiquated
method of catching data errors. We don't do things that way any more.

Remove magic number struct members. Remove all checks to magic
numbers.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dgnc/dgnc_cls.c
drivers/staging/dgnc/dgnc_driver.c
drivers/staging/dgnc/dgnc_driver.h
drivers/staging/dgnc/dgnc_mgmt.c
drivers/staging/dgnc/dgnc_neo.c
drivers/staging/dgnc/dgnc_tty.c

index 4862c9d095f8f6c052c5d5b329c0dc39b7611e94..9639035fddd169ae3377ab877163269baf11f3c2 100644 (file)
@@ -282,7 +282,7 @@ static inline void cls_clear_break(struct channel_t *ch, int force)
 {
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -314,7 +314,7 @@ static void cls_copy_data_from_uart_to_queue(struct channel_t *ch)
        ushort tail;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -386,7 +386,7 @@ static void cls_assert_modem_signals(struct channel_t *ch)
 {
        unsigned char out;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        out = ch->ch_mostat;
@@ -409,7 +409,7 @@ static void cls_copy_data_from_queue_to_uart(struct channel_t *ch)
        uint len_written = 0;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -479,7 +479,7 @@ static void cls_parse_modem(struct channel_t *ch, unsigned char signals)
        unsigned char msignals = signals;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        /*
@@ -551,8 +551,6 @@ static inline void cls_parse_isr(struct dgnc_board *brd, uint port)
                return;
 
        ch = brd->channels[port];
-       if (ch->magic != DGNC_CHANNEL_MAGIC)
-               return;
 
        /* Here we try to figure out what caused the interrupt to happen */
        while (1) {
@@ -582,7 +580,7 @@ static inline void cls_parse_isr(struct dgnc_board *brd, uint port)
 /* Channel lock MUST be held before calling this function! */
 static void cls_flush_uart_write(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_XMIT),
@@ -597,7 +595,7 @@ static void cls_flush_uart_write(struct channel_t *ch)
 /* Channel lock MUST be held before calling this function! */
 static void cls_flush_uart_read(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        /*
@@ -627,19 +625,19 @@ static void cls_param(struct tty_struct *tty)
        struct channel_t *ch;
        struct un_t   *un;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = (struct un_t *)tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        /* If baud rate is zero, flush queues, and set mval to drop DTR. */
@@ -858,7 +856,7 @@ static void cls_tasklet(unsigned long data)
        int state = 0;
        int ports = 0;
 
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&bd->bd_lock, flags);
@@ -914,7 +912,7 @@ static irqreturn_t cls_intr(int irq, void *voidbrd)
        unsigned char poll_reg;
        unsigned long flags;
 
-       if (!brd || brd->magic != DGNC_BOARD_MAGIC)
+       if (!brd)
                return IRQ_NONE;
 
        spin_lock_irqsave(&brd->bd_intr_lock, flags);
@@ -961,15 +959,15 @@ static int cls_drain(struct tty_struct *tty, uint seconds)
        struct channel_t *ch;
        struct un_t *un;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -ENXIO;
 
        un = (struct un_t *)tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -ENXIO;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -ENXIO;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -986,7 +984,7 @@ static int cls_drain(struct tty_struct *tty, uint seconds)
 
 static void cls_send_start_character(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        if (ch->ch_startc != _POSIX_VDISABLE) {
@@ -997,7 +995,7 @@ static void cls_send_start_character(struct channel_t *ch)
 
 static void cls_send_stop_character(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        if (ch->ch_stopc != _POSIX_VDISABLE) {
@@ -1056,7 +1054,7 @@ static uint cls_get_uart_bytes_left(struct channel_t *ch)
        unsigned char left = 0;
        unsigned char lsr = 0;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return 0;
 
        lsr = readb(&ch->ch_cls_uart->lsr);
@@ -1080,7 +1078,7 @@ static uint cls_get_uart_bytes_left(struct channel_t *ch)
  */
 static void cls_send_break(struct channel_t *ch, int msecs)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        /* If we receive a time of 0, this means turn off the break. */
@@ -1119,7 +1117,7 @@ static void cls_send_break(struct channel_t *ch, int msecs)
  */
 static void cls_send_immediate_char(struct channel_t *ch, unsigned char c)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        writeb(c, &ch->ch_cls_uart->txrx);
index 91c4fab1cd894e3885545f1ad6e2f5f92760e067..253f38b25a540db1915822248fdc9fc7adfd93cf 100644 (file)
@@ -110,7 +110,6 @@ static struct dgnc_board *dgnc_found_board(struct pci_dev *pdev, int id)
                return ERR_PTR(-ENOMEM);
 
        /* store the info for the board we've found */
-       brd->magic = DGNC_BOARD_MAGIC;
        brd->boardnum = dgnc_num_boards;
        brd->vendor = dgnc_pci_tbl[id].vendor;
        brd->device = dgnc_pci_tbl[id].device;
@@ -444,7 +443,7 @@ static void dgnc_cleanup_board(struct dgnc_board *brd)
 {
        int i = 0;
 
-       if (!brd || brd->magic != DGNC_BOARD_MAGIC)
+       if (!brd)
                return;
 
        switch (brd->device) {
index a25801d76095f0fa623eb649234f0489f9a7515e..980410fc48018000672c97ee18479781cae6e34c 100644 (file)
 #define        MAXPORTS        8
 #define MAXTTYNAMELEN  200
 
-/* Our 3 magic numbers for our board, channel and unit structs */
-#define DGNC_BOARD_MAGIC       0x5c6df104
-#define DGNC_CHANNEL_MAGIC     0x6c6df104
-#define DGNC_UNIT_MAGIC                0x7c6df104
-
 /* Serial port types */
 #define DGNC_SERIAL            0
 #define DGNC_PRINT             1
@@ -120,7 +115,6 @@ struct board_ops {
 
 /**
  * struct dgnc_board - Per board information.
- * @magic: Board magic number.
  * @boardnum: Board number (0 - 32).
  *
  * @type: Type of board.
@@ -163,7 +157,6 @@ struct board_ops {
  * @dgnc_board_table: Proc/<board> entry
  */
 struct dgnc_board {
-       int             magic;
        int             boardnum;
 
        int             type;
@@ -245,7 +238,6 @@ struct device;
 
 /**
  * struct un_t - terminal or printer unit
- * @magic: Unit magic number.
  * @un_open_count: Counter of opens to port.
  * @un_tty: Pointer to unit tty structure.
  * @un_flags: Unit flags.
@@ -253,7 +245,6 @@ struct device;
  * @un_dev: Minor device number.
  */
 struct un_t {
-       int     magic;
        struct  channel_t *un_ch;
        ulong   un_time;
        uint    un_type;
@@ -295,7 +286,6 @@ struct un_t {
 
 /**
  * struct channel_t - Channel information.
- * @magic: Channel magic number.
  * @dgnc_board: Pointer to board structure.
  * @ch_bd: Transparent print structure.
  * @ch_tun: Terminal unit information.
@@ -348,7 +338,6 @@ struct un_t {
  * @dgnc_channel_table: Proc/<board>/<channel> entry.
  */
 struct channel_t {
-       int magic;
        struct dgnc_board *ch_bd;
        struct digi_t   ch_digi;
        struct un_t     ch_tun;
index 9e45ac8e0005d531f94aead6b3f8358eff4b7363..3ca473b47daf049eff42fcfb6f67d258bcc48cf4 100644 (file)
@@ -175,7 +175,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
                ch = dgnc_board[board]->channels[channel];
 
-               if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+               if (!ch)
                        return -ENODEV;
 
                memset(&ni, 0, sizeof(ni));
index 8febe4f1436fd76852d25570552eb0018255457a..b478bb44339f67e8005e6c25400272cb39654118 100644 (file)
@@ -392,7 +392,7 @@ static inline void neo_parse_isr(struct dgnc_board *brd, uint port)
        unsigned long flags;
 
        ch = brd->channels[port];
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        /* Here we try to figure out what caused the interrupt to happen */
@@ -505,14 +505,14 @@ static inline void neo_parse_lsr(struct dgnc_board *brd, uint port)
        int linestatus;
        unsigned long flags;
 
-       if (!brd || brd->magic != DGNC_BOARD_MAGIC)
+       if (!brd)
                return;
 
        if (port >= brd->maxports)
                return;
 
        ch = brd->channels[port];
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        linestatus = readb(&ch->ch_neo_uart->lsr);
@@ -579,19 +579,19 @@ static void neo_param(struct tty_struct *tty)
        struct channel_t *ch;
        struct un_t   *un;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = (struct un_t *)tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        /* If baud rate is zero, flush queues, and set mval to drop DTR. */
@@ -822,7 +822,7 @@ static void neo_tasklet(unsigned long data)
        int state = 0;
        int ports = 0;
 
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&bd->bd_lock, flags);
@@ -839,9 +839,7 @@ static void neo_tasklet(unsigned long data)
        if ((state == BOARD_READY) && (ports > 0)) {
                for (i = 0; i < ports; i++) {
                        ch = bd->channels[i];
-
-                       /* Just being careful... */
-                       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+                       if (!ch)
                                continue;
 
                        /*
@@ -888,7 +886,7 @@ static irqreturn_t neo_intr(int irq, void *voidbrd)
        unsigned long flags;
        unsigned long flags2;
 
-       if (!brd || brd->magic != DGNC_BOARD_MAGIC)
+       if (!brd)
                return IRQ_NONE;
 
        /* Lock out the slow poller from running on this board. */
@@ -1023,7 +1021,7 @@ static void neo_copy_data_from_uart_to_queue(struct channel_t *ch)
        ushort tail;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1195,15 +1193,15 @@ static int neo_drain(struct tty_struct *tty, uint seconds)
        struct un_t *un;
        int rc = 0;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -ENXIO;
 
        un = (struct un_t *)tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -ENXIO;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -ENXIO;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1227,7 +1225,7 @@ static void neo_flush_uart_write(struct channel_t *ch)
        unsigned char tmp = 0;
        int i = 0;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_XMIT),
@@ -1258,7 +1256,7 @@ static void neo_flush_uart_read(struct channel_t *ch)
        unsigned char tmp = 0;
        int i = 0;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        writeb(UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR,
@@ -1288,7 +1286,7 @@ static void neo_copy_data_from_queue_to_uart(struct channel_t *ch)
        uint len_written = 0;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1425,7 +1423,7 @@ static void neo_parse_modem(struct channel_t *ch, unsigned char signals)
 {
        unsigned char msignals = signals;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        /*
@@ -1482,7 +1480,7 @@ static void neo_assert_modem_signals(struct channel_t *ch)
 {
        unsigned char out;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        out = ch->ch_mostat;
@@ -1499,7 +1497,7 @@ static void neo_assert_modem_signals(struct channel_t *ch)
 
 static void neo_send_start_character(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        if (ch->ch_startc != _POSIX_VDISABLE) {
@@ -1512,7 +1510,7 @@ static void neo_send_start_character(struct channel_t *ch)
 
 static void neo_send_stop_character(struct channel_t *ch)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        if (ch->ch_stopc != _POSIX_VDISABLE) {
@@ -1619,7 +1617,7 @@ static void neo_send_break(struct channel_t *ch, int msecs)
  */
 static void neo_send_immediate_char(struct channel_t *ch, unsigned char c)
 {
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        writeb(c, &ch->ch_neo_uart->txrx);
@@ -1672,7 +1670,7 @@ static void neo_vpd(struct dgnc_board *brd)
        unsigned int i = 0;
        unsigned int a;
 
-       if (!brd || brd->magic != DGNC_BOARD_MAGIC)
+       if (!brd)
                return;
 
        if (!brd->re_map_membase)
index 6376f62c436e5448ec5db2c50517d9651d5055d1..9e98781ca6fefcd9523d2c87d15fe5cc6242131d 100644 (file)
@@ -264,14 +264,10 @@ int dgnc_tty_init(struct dgnc_board *brd)
        for (i = 0; i < brd->nasync; i++, ch = brd->channels[i]) {
                spin_lock_init(&ch->ch_lock);
 
-               /* Store all our magic numbers */
-               ch->magic = DGNC_CHANNEL_MAGIC;
-               ch->ch_tun.magic = DGNC_UNIT_MAGIC;
                ch->ch_tun.un_ch = ch;
                ch->ch_tun.un_type = DGNC_SERIAL;
                ch->ch_tun.un_dev = i;
 
-               ch->ch_pun.magic = DGNC_UNIT_MAGIC;
                ch->ch_pun.un_ch = ch;
                ch->ch_pun.un_type = DGNC_PRINT;
                ch->ch_pun.un_dev = i + 128;
@@ -351,7 +347,7 @@ static void dgnc_wmove(struct channel_t *ch, char *buf, uint n)
        int     remain;
        uint    head;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        head = ch->ch_w_head & WQUEUEMASK;
@@ -401,13 +397,13 @@ void dgnc_input(struct channel_t *ch)
        int s = 0;
        int i = 0;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        tp = ch->ch_tun.un_tty;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -424,7 +420,7 @@ void dgnc_input(struct channel_t *ch)
         * If the device is not open, or CREAD is off,
         * flush input data and return immediately.
         */
-       if (!tp || (tp->magic != TTY_MAGIC) ||
+       if (!tp ||
            !(ch->ch_tun.un_flags & UN_ISOPEN) ||
            !C_CREAD(tp) ||
            (ch->ch_tun.un_flags & UN_CLOSING)) {
@@ -547,7 +543,7 @@ void dgnc_carrier(struct channel_t *ch)
        int virt_carrier = 0;
        int phys_carrier = 0;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        if (ch->ch_mistat & UART_MSR_DCD)
@@ -771,7 +767,7 @@ void dgnc_wakeup_writes(struct channel_t *ch)
        int qlen = 0;
        unsigned long flags;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1163,7 +1159,7 @@ static int dgnc_block_til_ready(struct tty_struct *tty,
 /* Hangup the port.  Like a close, but don't wait for output to drain. */
 static void dgnc_tty_hangup(struct tty_struct *tty)
 {
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        /* flush the transmit queues */
@@ -1177,19 +1173,19 @@ static void dgnc_tty_close(struct tty_struct *tty, struct file *file)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1322,11 +1318,11 @@ static int dgnc_tty_chars_in_buffer(struct tty_struct *tty)
                return 0;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return 0;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return 0;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1398,11 +1394,11 @@ static int dgnc_tty_write_room(struct tty_struct *tty)
                return 0;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return 0;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return 0;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1469,11 +1465,11 @@ static int dgnc_tty_write(struct tty_struct *tty,
                return 0;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return 0;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return 0;
 
        if (!count)
@@ -1584,15 +1580,15 @@ static int dgnc_tty_tiocmget(struct tty_struct *tty)
        unsigned char mstat = 0;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -EIO;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -EIO;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -EIO;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1628,19 +1624,19 @@ static int dgnc_tty_tiocmset(struct tty_struct *tty,
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -EIO;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -EIO;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -EIO;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return -EIO;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1672,19 +1668,19 @@ static int dgnc_tty_send_break(struct tty_struct *tty, int msec)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -EIO;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -EIO;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -EIO;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return -EIO;
 
        if (msec < 0)
@@ -1706,19 +1702,19 @@ static void dgnc_tty_wait_until_sent(struct tty_struct *tty, int timeout)
        struct channel_t *ch;
        struct un_t *un;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        bd->bd_ops->drain(tty, 0);
@@ -1732,19 +1728,19 @@ static void dgnc_tty_send_xchar(struct tty_struct *tty, char c)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1759,7 +1755,7 @@ static inline int dgnc_get_mstat(struct channel_t *ch)
        unsigned long flags;
        int rc;
 
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -ENXIO;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -1864,15 +1860,15 @@ static int dgnc_tty_digigeta(struct tty_struct *tty,
        if (!retinfo)
                return -EFAULT;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -EFAULT;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -EFAULT;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -EFAULT;
 
        memset(&tmp, 0, sizeof(tmp));
@@ -1897,19 +1893,19 @@ static int dgnc_tty_digiseta(struct tty_struct *tty,
        struct digi_t new_digi;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -EFAULT;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -EFAULT;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -EFAULT;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return -EFAULT;
 
        if (copy_from_user(&new_digi, new_info, sizeof(new_digi)))
@@ -1973,19 +1969,19 @@ static void dgnc_tty_set_termios(struct tty_struct *tty,
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2009,15 +2005,15 @@ static void dgnc_tty_throttle(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2033,15 +2029,15 @@ static void dgnc_tty_unthrottle(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2058,19 +2054,19 @@ static void dgnc_tty_start(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2087,19 +2083,19 @@ static void dgnc_tty_stop(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2127,19 +2123,19 @@ static void dgnc_tty_flush_chars(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2156,15 +2152,15 @@ static void dgnc_tty_flush_buffer(struct tty_struct *tty)
        struct un_t *un;
        unsigned long flags;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return;
 
        spin_lock_irqsave(&ch->ch_lock, flags);
@@ -2210,19 +2206,19 @@ static int dgnc_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
        unsigned long flags;
        void __user *uarg = (void __user *)arg;
 
-       if (!tty || tty->magic != TTY_MAGIC)
+       if (!tty)
                return -ENODEV;
 
        un = tty->driver_data;
-       if (!un || un->magic != DGNC_UNIT_MAGIC)
+       if (!un)
                return -ENODEV;
 
        ch = un->un_ch;
-       if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
+       if (!ch)
                return -ENODEV;
 
        bd = ch->ch_bd;
-       if (!bd || bd->magic != DGNC_BOARD_MAGIC)
+       if (!bd)
                return -ENODEV;
 
        ch_bd_ops = bd->bd_ops;