Stallion serial board sti()/cli() removal
Subsystems (2)
PATCH 1/1 Stallion serial board sti()/cli() removal
Hello,
I've removed all references to old cli/sti method on stallion serial driver. Please review and commit if necessary.
cheers,
Masoud
PS: This is my first janitorial task. The patch below should apply cleanly to 2.6.14-rc2 or later.
----------------------------
drivers/char/stallion.c +57 -82
@@ -43,7 +43,7 @@#include <linux/devfs_fs_kernel.h> #include <linux/device.h> #include <linux/delay.h> - +#include <linux/spinlock.h> #include <asm/io.h> #include <asm/uaccess.h>
@@ -721,6 +721,7 @@ static struct file_operations stl_fsiomestatic struct class *stallion_class; +static spinlock_t stallion_lock =SPIN_LOCK_UNLOCKED ;/* * Loadable module initialization stuff. */
@@ -733,10 +734,9 @@ static int __init stallion_module_init(vprintk ("init_module()\n" );#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);stl_init (); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return (0 ); }
@@ -758,8 +758,7 @@ static void __exit stallion_module_exit(printk (KERN_INFO "Unloading %s: version %s\n" , stl_drvtitle, stl_drvversion); -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);/* * Free up all allocated resources used by the ports. This includes
@@ -772,7 +771,7 @@ static void __exit stallion_module_exit(if (i) {printk ("STALLION: failed to un-register tty driver, " "errno=%d\n" , -i); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return ; }for (i =0 ; i <4 ; i++) {
@@ -819,7 +818,7 @@ static void __exit stallion_module_exit( stl_brds[i] = (stlbrd_t *)NULL ; } -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }module_init (stallion_module_init);
@@ -1086,8 +1085,7 @@ static int stl_waitcarrier(stlport_t *poif (portp->tty->termios->c_cflag &CLOCAL ) doclocal++; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags); portp->openwaitcnt++;if (!tty_hung_up_p (filp)) portp->refcount--;
@@ -1116,7 +1114,7 @@ static int stl_waitcarrier(stlport_t *poif (!tty_hung_up_p (filp)) portp->refcount++; portp->openwaitcnt--; -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return (rc); }
@@ -1136,16 +1134,15 @@ static void stl_close(struct tty_structif (portp == (stlport_t *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);if (tty_hung_up_p (filp)) { -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return ; }if ((tty->count ==1 ) && (portp->refcount !=1 )) portp->refcount =1 ;if (portp->refcount-- >1 ) { -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return ; }
@@ -1190,7 +1187,7 @@ static void stl_close(struct tty_struct portp->flags &= ~(ASYNC_NORMAL_ACTIVE |ASYNC_CLOSING );wake_up_interruptible (&portp->close_wait); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -2899,8 +2896,7 @@ static int stl_getportstats(stlport_t *p portp->stats.lflags =0 ; portp->stats.rxbuffered =0 ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);if (portp->tty != (struct tty_struct *)NULL ) {if (portp->tty->driver_data == portp) { portp->stats.ttystate = portp->tty->flags;
@@ -2913,7 +2909,7 @@ static int stl_getportstats(stlport_t *p } } } -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); head = portp->tx.head; tail = portp->tx.tail;
@@ -3445,8 +3441,7 @@ static void stl_cd1400setport(stlport_t tiosp->c_cc[VSTART], tiosp->c_cc[VSTOP]);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x3 )); srer =stl_cd1400getreg (portp,SRER );
@@ -3483,7 +3478,7 @@ static void stl_cd1400setport(stlport_t portp->sigs &= ~TIOCM_CD ;stl_cd1400setreg (portp,SRER , ((srer & ~sreroff) | sreron));BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3509,8 +3504,7 @@ static void stl_cd1400setsignals(stlportif (rts >0 ) msvr2 =MSVR2_RTS ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));if (rts >=0 )
@@ -3518,7 +3512,7 @@ static void stl_cd1400setsignals(stlportif (dtr >=0 )stl_cd1400setreg (portp,MSVR1 , msvr1);BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3537,14 +3531,13 @@ static int stl_cd1400getsignals(stlport_printk ("stl_cd1400getsignals(portp=%x)\n" , (int ) portp);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 )); msvr1 =stl_cd1400getreg (portp,MSVR1 ); msvr2 =stl_cd1400getreg (portp,MSVR2 );BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); sigs =0 ; sigs |= (msvr1 &MSVR1_DCD ) ?TIOCM_CD :0 ;
@@ -3586,15 +3579,14 @@ static void stl_cd1400enablerxtx(stlportelse if (rx >0 ) ccr |=CCR_RXENABLE ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));stl_cd1400ccrwait (portp);stl_cd1400setreg (portp,CCR , ccr);stl_cd1400ccrwait (portp);BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3626,8 +3618,7 @@ static void stl_cd1400startrxtx(stlport_else if (rx >0 ) sreron |=SRER_RXDATA ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 )); stl_cd1400setreg(portp, SRER,
@@ -3635,7 +3626,7 @@ static void stl_cd1400startrxtx(stlport_BRDDISABLE (portp->brdnr);if (tx >0 )set_bit (ASYI_TXBUSY , &portp->istate); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3651,13 +3642,12 @@ static void stl_cd1400disableintrs(stlpo#ifdef DEBUG printk ("stl_cd1400disableintrs(portp=%x)\n" , (int ) portp);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));stl_cd1400setreg (portp,SRER ,0 );BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3670,8 +3660,7 @@ static void stl_cd1400sendbreak(stlport_printk ("stl_cd1400sendbreak(portp=%x,len=%d)\n" , (int ) portp, len);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 )); stl_cd1400setreg(portp, SRER,
@@ -3681,7 +3670,7 @@ static void stl_cd1400sendbreak(stlport_ portp->brklen = len;if (len ==1 ) portp->stats.txbreaks++; -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3705,8 +3694,7 @@ static void stl_cd1400flowctrl(stlport_tif (tty == (struct tty_struct *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));
@@ -3746,7 +3734,7 @@ static void stl_cd1400flowctrl(stlport_t }BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3770,8 +3758,7 @@ static void stl_cd1400sendflow(stlport_tif (tty == (struct tty_struct *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));if (state) {
@@ -3786,7 +3773,7 @@ static void stl_cd1400sendflow(stlport_tstl_cd1400ccrwait (portp); }BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -3802,8 +3789,7 @@ static void stl_cd1400flush(stlport_t *pif (portp == (stlport_t *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_cd1400setreg (portp,CAR , (portp->portnr &0x03 ));stl_cd1400ccrwait (portp);
@@ -3811,7 +3797,7 @@ static void stl_cd1400flush(stlport_t *pstl_cd1400ccrwait (portp); portp->tx.tail = portp->tx.head;BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4461,8 +4447,7 @@ static void stl_sc26198setport(stlport_t tiosp->c_cc[VSTART], tiosp->c_cc[VSTOP]);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_sc26198setreg (portp,IMR ,0 );stl_sc26198updatereg (portp,MR0 , mr0);
@@ -4489,7 +4474,7 @@ static void stl_sc26198setport(stlport_t portp->imr = (portp->imr & ~imroff) | imron;stl_sc26198setreg (portp,IMR , portp->imr);BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4519,13 +4504,12 @@ static void stl_sc26198setsignals(stlporelse if (rts >0 ) iopioron |=IPR_RTS ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_sc26198setreg (portp,IOPIOR , ((stl_sc26198getreg (portp,IOPIOR ) & ~iopioroff) | iopioron));BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4544,12 +4528,11 @@ static int stl_sc26198getsignals(stlportprintk ("stl_sc26198getsignals(portp=%x)\n" , (int ) portp);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr); ipr =stl_sc26198getreg (portp,IPR );BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); sigs =0 ; sigs |= (ipr &IPR_DCD ) ?0 :TIOCM_CD ;
@@ -4586,13 +4569,12 @@ static void stl_sc26198enablerxtx(stlporelse if (rx >0 ) ccr |=CR_RXENABLE ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_sc26198setreg (portp,SCCR , ccr);BRDDISABLE (portp->brdnr); portp->crenable = ccr; -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4621,15 +4603,14 @@ static void stl_sc26198startrxtx(stlportelse if (rx >0 ) imr |=IR_RXRDY |IR_RXBREAK |IR_RXWATCHDOG ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_sc26198setreg (portp,IMR , imr);BRDDISABLE (portp->brdnr); portp->imr = imr;if (tx >0 )set_bit (ASYI_TXBUSY , &portp->istate); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4646,13 +4627,12 @@ static void stl_sc26198disableintrs(stlpprintk ("stl_sc26198disableintrs(portp=%x)\n" , (int ) portp);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr); portp->imr =0 ;stl_sc26198setreg (portp,IMR ,0 );BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4665,8 +4645,7 @@ static void stl_sc26198sendbreak(stlportprintk ("stl_sc26198sendbreak(portp=%x,len=%d)\n" , (int ) portp, len);#endif -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);if (len ==1 ) {stl_sc26198setreg (portp,SCCR ,CR_TXSTARTBREAK );
@@ -4675,7 +4654,7 @@ static void stl_sc26198sendbreak(stlportstl_sc26198setreg (portp,SCCR ,CR_TXSTOPBREAK ); }BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4700,8 +4679,7 @@ static void stl_sc26198flowctrl(stlport_if (tty == (struct tty_struct *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);if (state) {
@@ -4747,7 +4725,7 @@ static void stl_sc26198flowctrl(stlport_ }BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4772,8 +4750,7 @@ static void stl_sc26198sendflow(stlport_if (tty == (struct tty_struct *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);if (state) { mr0 =stl_sc26198getreg (portp,MR0 );
@@ -4793,7 +4770,7 @@ static void stl_sc26198sendflow(stlport_stl_sc26198setreg (portp,MR0 , mr0); }BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4809,14 +4786,13 @@ static void stl_sc26198flush(stlport_t *if (portp == (stlport_t *)NULL )return ; -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr);stl_sc26198setreg (portp,SCCR ,CR_TXRESET );stl_sc26198setreg (portp,SCCR , portp->crenable);BRDDISABLE (portp->brdnr); portp->tx.tail = portp->tx.head; -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags); }/*****************************************************************************/
@@ -4843,12 +4819,11 @@ static int stl_sc26198datastate(stlport_if (test_bit (ASYI_TXBUSY , &portp->istate))return (1 ); -save_flags (flags); -cli (); +spin_lock_irqsave (&stallion_lock, flags);BRDENABLE (portp->brdnr, portp->pagenr); sr =stl_sc26198getreg (portp,SR );BRDDISABLE (portp->brdnr); -restore_flags (flags); +spin_unlock_irqrestore (&stallion_lock, flags);return ((sr &SR_TXEMPTY ) ?0 :1 ); }
_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 6 lines · Masoud Sharbiani
Hello,
I've removed all references to old cli/sti method on stallion serial driver. Please review and commit if necessary.
cheers,
Masoud
PS: This is my first janitorial task. The patch below should apply cleanly to 2.6.14-rc2 or later.
The latest in a long line of patches which do the automated search and replace which doesn't work. Isn't there an explanation of why this doesn't work attached to the todo list?
_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 3 lines · Matthew Wilcox
The latest in a long line of patches which do the automated search and replace which doesn't work. Isn't there an explanation of why this doesn't work attached to the todo list?
Will appear ~tomorrow evening.
_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors