X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fchar%2Fisicom.c;h=e9ebabaf8cb03184e9990ea272cc91fa733f6a21;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=d4f6361a161630519ae1aaa432c83c472dfa575c;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c index d4f6361a1..e9ebabaf8 100644 --- a/drivers/char/isicom.c +++ b/drivers/char/isicom.c @@ -245,7 +245,7 @@ static int lock_card(struct isi_board *card) printk(KERN_WARNING "ISICOM: Failed to lock Card (0x%lx)\n", card->base); - return 0; /* Failed to acquire the card! */ + return 0; /* Failed to aquire the card! */ } static int lock_card_at_interrupt(struct isi_board *card) @@ -262,7 +262,7 @@ static int lock_card_at_interrupt(struct isi_board *card) spin_unlock_irqrestore(&card->card_lock, card->flags); } /* Failing in interrupt is an acceptable event */ - return 0; /* Failed to acquire the card! */ + return 0; /* Failed to aquire the card! */ } static void unlock_card(struct isi_board *card) @@ -1062,12 +1062,11 @@ static void isicom_shutdown_port(struct isi_port *port) static void isicom_close(struct tty_struct *tty, struct file *filp) { struct isi_port *port = tty->driver_data; - struct isi_board *card; + struct isi_board *card = port->card; unsigned long flags; if (!port) return; - card = port->card; if (isicom_paranoia_check(port, tty->name, "isicom_close")) return; @@ -1146,7 +1145,7 @@ static int isicom_write(struct tty_struct *tty, const unsigned char *buf, if (isicom_paranoia_check(port, tty->name, "isicom_write")) return 0; - if (!port->xmit_buf) + if (!tty || !port->xmit_buf) return 0; spin_lock_irqsave(&card->card_lock, flags); @@ -1181,7 +1180,7 @@ static void isicom_put_char(struct tty_struct *tty, unsigned char ch) if (isicom_paranoia_check(port, tty->name, "isicom_put_char")) return; - if (!port->xmit_buf) + if (!tty || !port->xmit_buf) return; spin_lock_irqsave(&card->card_lock, flags); @@ -1582,6 +1581,7 @@ static int __devinit isicom_register_tty_driver(void) isicom_normal->owner = THIS_MODULE; isicom_normal->name = "ttyM"; + isicom_normal->devfs_name = "isicom/"; isicom_normal->major = ISICOM_NMAJOR; isicom_normal->minor_start = 0; isicom_normal->type = TTY_DRIVER_TYPE_SERIAL; @@ -1615,14 +1615,14 @@ static int __devinit isicom_register_isr(struct pci_dev *pdev, const unsigned int index) { struct isi_board *board = pci_get_drvdata(pdev); - unsigned long irqflags = IRQF_DISABLED; + unsigned long irqflags = SA_INTERRUPT; int retval = -EINVAL; if (!board->base) goto end; if (board->isa == NO) - irqflags |= IRQF_SHARED; + irqflags |= SA_SHIRQ; retval = request_irq(board->irq, isicom_interrupt, irqflags, ISICOM_NAME, board);