Signed-off-by: James Nelson <[EMAIL PROTECTED]>

diff -urN --exclude='*~' linux-2.6.11-rc1-mm1-original/drivers/char/istallion.c 
linux-2.6.11-rc1-mm1/drivers/char/istallion.c
--- linux-2.6.11-rc1-mm1-original/drivers/char/istallion.c      2004-12-24 
16:35:00.000000000 -0500
+++ linux-2.6.11-rc1-mm1/drivers/char/istallion.c       2005-01-16 
07:32:19.327552657 -0500
@@ -807,10 +807,9 @@
        printk("init_module()\n");
 #endif
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        stli_init();
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(0);
 }
@@ -831,8 +830,7 @@
        printk(KERN_INFO "Unloading %s: version %s\n", stli_drvtitle,
                stli_drvversion);
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
 
 /*
  *     Free up all allocated resources used by the ports. This includes
@@ -847,8 +845,7 @@
        if (i) {
                printk("STALLION: failed to un-register tty driver, "
                        "errno=%d\n", -i);
-               restore_flags(flags);
-               return;
+               goto out;
        }
        put_tty_driver(stli_serial);
        for (i = 0; i < 4; i++) {
@@ -884,7 +881,7 @@
                stli_brds[i] = (stlibrd_t *) NULL;
        }
 
-       restore_flags(flags);
+out:   local_irq_restore(flags);
 }
 
 module_init(istallion_module_init);
@@ -1128,18 +1125,14 @@
        if (portp == (stliport_t *) NULL)
                return;
 
-       save_flags(flags);
-       cli();
-       if (tty_hung_up_p(filp)) {
-               restore_flags(flags);
-               return;
-       }
+       local_irq_save(flags);
+       if (tty_hung_up_p(filp))
+               goto out;
+
        if ((tty->count == 1) && (portp->refcount != 1))
                portp->refcount = 1;
-       if (portp->refcount-- > 1) {
-               restore_flags(flags);
-               return;
-       }
+       if (portp->refcount-- > 1)
+               goto out;
 
        portp->flags |= ASYNC_CLOSING;
 
@@ -1185,7 +1178,7 @@
 
        portp->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
        wake_up_interruptible(&portp->close_wait);
-       restore_flags(flags);
+out:   local_irq_restore(flags);
 }
 
 /*****************************************************************************/
@@ -1266,8 +1259,7 @@
 /*
  *     Send a message to the slave to open this port.
  */
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
 
 /*
  *     Slave is already closing this port. This can happen if a hangup
@@ -1277,7 +1269,7 @@
  */
        while (test_bit(ST_CLOSING, &portp->state)) {
                if (signal_pending(current)) {
-                       restore_flags(flags);
+                       local_irq_restore(flags);
                        return(-ERESTARTSYS);
                }
                interruptible_sleep_on(&portp->raw_wait);
@@ -1299,7 +1291,7 @@
        EBRDDISABLE(brdp);
 
        if (wait == 0) {
-               restore_flags(flags);
+               local_irq_restore(flags);
                return(0);
        }
 
@@ -1316,7 +1308,7 @@
                }
                interruptible_sleep_on(&portp->raw_wait);
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        if ((rc == 0) && (portp->rc != 0))
                rc = -EIO;
@@ -1344,8 +1336,7 @@
                (int) brdp, (int) portp, (int) arg, wait);
 #endif
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
 
 /*
  *     Slave is already closing this port. This can happen if a hangup
@@ -1354,7 +1345,7 @@
        if (wait) {
                while (test_bit(ST_CLOSING, &portp->state)) {
                        if (signal_pending(current)) {
-                               restore_flags(flags);
+                               local_irq_restore(flags);
                                return(-ERESTARTSYS);
                        }
                        interruptible_sleep_on(&portp->raw_wait);
@@ -1376,7 +1367,7 @@
 
        set_bit(ST_CLOSING, &portp->state);
        if (wait == 0) {
-               restore_flags(flags);
+               local_irq_restore(flags);
                return(0);
        }
 
@@ -1392,7 +1383,7 @@
                }
                interruptible_sleep_on(&portp->raw_wait);
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        if ((rc == 0) && (portp->rc != 0))
                rc = -EIO;
@@ -1418,11 +1409,10 @@
                (int) arg, size, copyback);
 #endif
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        while (test_bit(ST_CMDING, &portp->state)) {
                if (signal_pending(current)) {
-                       restore_flags(flags);
+                       local_irq_restore(flags);
                        return(-ERESTARTSYS);
                }
                interruptible_sleep_on(&portp->raw_wait);
@@ -1432,12 +1422,12 @@
 
        while (test_bit(ST_CMDING, &portp->state)) {
                if (signal_pending(current)) {
-                       restore_flags(flags);
+                       local_irq_restore(flags);
                        return(-ERESTARTSYS);
                }
                interruptible_sleep_on(&portp->raw_wait);
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        if (portp->rc != 0)
                return(-EIO);
@@ -1497,8 +1487,7 @@
        if (portp->tty->termios->c_cflag & CLOCAL)
                doclocal++;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        portp->openwaitcnt++;
        if (! tty_hung_up_p(filp))
                portp->refcount--;
@@ -1530,7 +1519,7 @@
        if (! tty_hung_up_p(filp))
                portp->refcount++;
        portp->openwaitcnt--;
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(rc);
 }
@@ -1577,8 +1566,7 @@
 /*
  *     All data is now local, shove as much as possible into shared memory.
  */
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
        head = (unsigned int) ap->txq.head;
@@ -1624,7 +1612,7 @@
        set_bit(ST_TXBUSY, &portp->state);
        EBRDDISABLE(brdp);
 
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(count);
 }
@@ -1706,8 +1694,7 @@
        if (brdp == (stlibrd_t *) NULL)
                return;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
 
        ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
@@ -1756,7 +1743,7 @@
        set_bit(ST_TXBUSY, &portp->state);
 
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 }
 
 /*****************************************************************************/
@@ -1791,8 +1778,7 @@
        if (brdp == (stlibrd_t *) NULL)
                return(0);
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
        head = (unsigned int) rp->head;
@@ -1802,7 +1788,7 @@
        len = (head >= tail) ? (portp->txsize - (head - tail)) : (tail - head);
        len--;
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        if (tty == stli_txcooktty) {
                stli_txcookrealsize = len;
@@ -1846,8 +1832,7 @@
        if (brdp == (stlibrd_t *) NULL)
                return(0);
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
        head = (unsigned int) rp->head;
@@ -1858,7 +1843,7 @@
        if ((len == 0) && test_bit(ST_TXBUSY, &portp->state))
                len = 1;
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(len);
 }
@@ -2303,8 +2288,7 @@
 
        portp->flags &= ~ASYNC_INITIALIZED;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        if (! test_bit(ST_CLOSING, &portp->state))
                stli_rawclose(brdp, portp, 0, 0);
        if (tty->termios->c_cflag & HUPCL) {
@@ -2318,7 +2302,7 @@
                                &portp->asig, sizeof(asysigs_t), 0);
                }
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        clear_bit(ST_TXBUSY, &portp->state);
        clear_bit(ST_RXSTOP, &portp->state);
@@ -2359,8 +2343,7 @@
        if (brdp == (stlibrd_t *) NULL)
                return;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        if (tty == stli_txcooktty) {
                stli_txcooktty = (struct tty_struct *) NULL;
                stli_txcooksize = 0;
@@ -2377,7 +2360,7 @@
                stli_sendcmd(brdp, portp, A_FLUSH, &ftype,
                        sizeof(unsigned long), 0);
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        wake_up_interruptible(&tty->write_wait);
        if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
@@ -2653,14 +2636,12 @@
                (int) arg, size, copyback);
 #endif
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
 
        if (test_bit(ST_CMDING, &portp->state)) {
                printk(KERN_ERR "STALLION: command already busy, cmd=%x!\n",
                                (int) cmd);
-               restore_flags(flags);
-               return;
+               goto out;
        }
 
        EBRDENABLE(brdp);
@@ -2680,7 +2661,7 @@
        *bits |= portp->portbit;
        set_bit(ST_CMDING, &portp->state);
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+out:   local_irq_restore(flags);
 }
 
 /*****************************************************************************/
@@ -4195,8 +4176,7 @@
 
        rc = 0;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
        nrdevs = hdrp->nrdevs;
@@ -4273,7 +4253,7 @@
 
 stli_donestartup:
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        if (rc == 0)
                brdp->state |= BST_STARTED;
@@ -4775,8 +4755,7 @@
 
        size = MIN(count, (brdp->memsize - fp->f_pos));
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        while (size > 0) {
                memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
@@ -4791,7 +4770,7 @@
        }
 out:
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(count);
 }
@@ -4831,8 +4810,7 @@
        chbuf = (char __user *) buf;
        size = MIN(count, (brdp->memsize - fp->f_pos));
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        EBRDENABLE(brdp);
        while (size > 0) {
                memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
@@ -4847,7 +4825,7 @@
        }
 out:
        EBRDDISABLE(brdp);
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        return(count);
 }
@@ -4950,8 +4928,7 @@
        stli_comstats.state = portp->state;
        stli_comstats.flags = portp->flags;
 
-       save_flags(flags);
-       cli();
+       local_irq_save(flags);
        if (portp->tty != (struct tty_struct *) NULL) {
                if (portp->tty->driver_data == portp) {
                        stli_comstats.ttystate = portp->tty->flags;
@@ -4964,7 +4941,7 @@
                        }
                }
        }
-       restore_flags(flags);
+       local_irq_restore(flags);
 
        stli_comstats.txtotal = stli_cdkstats.txchars;
        stli_comstats.rxtotal = stli_cdkstats.rxchars + stli_cdkstats.ringover;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to