use mutex instead of semaphore in RocketPort driver v3
PATCH 1/1 use mutex instead of semaphore in RocketPort driver v3
the RocketPort driver uses a semaphore as mutex. use the mutex API instead of the (binary) semaphore
Signed-off-by Matthias Kaehlcke <[email protected]>
--
drivers/char/rocket.c +6 -5
@@ -702,7 +702,7 @@ static void init_r_port(int board, int aiop, int chan, struct pci_dev *pci_dev) } }spin_lock_init (&info->slock); -sema_init (&info->write_sem,1 ); +mutex_init (&info->write_mtx); rp_table[line] = info;if (pci_dev)tty_register_device (rocket_driver, line, &pci_dev->dev);
@@ -1662,7 +1662,7 @@ static void rp_put_char(struct tty_struct *tty, unsigned char ch)return ;/* Grab the port write semaphore, locking out other processes that try to write to this port */ -down (&info->write_sem); +mutex_lock (&info->write_mtx);#ifdef ROCKET_DEBUG_WRITE printk (KERN_INFO "rp_put_char %c..." , ch);
@@ -1684,7 +1684,7 @@ static void rp_put_char(struct tty_struct *tty, unsigned char ch) info->xmit_fifo_room--; }spin_unlock_irqrestore (&info->slock, flags); -up (&info->write_sem); +mutex_unlock (&info->write_mtx); }/*
@@ -1706,7 +1706,8 @@ static int rp_write(struct tty_struct *tty,if (count <=0 ||rocket_paranoia_check (info,"rp_write" ))return 0 ; -down_interruptible (&info->write_sem); +if (mutex_lock_interruptible (&info->write_mtx)) +return -ERESTARTSYS ;#ifdef ROCKET_DEBUG_WRITE printk (KERN_INFO "rp_write %d chars..." , count);
@@ -1777,7 +1778,7 @@ end:wake_up_interruptible (&tty->poll_wait);#endif } -up (&info->write_sem); +mutex_unlock (&info->write_mtx);return retval; }
drivers/char/rocket_int.h +1 -1
@@ -1171,7 +1171,7 @@ struct r_port {struct wait_queue *close_wait;#endif spinlock_t slock; -struct semaphore write_sem; +struct mutex write_mtx; };#define RPORT_MAGIC 0x525001
Signature · 10 lines
Matthias Kaehlcke
Linux Application Developer
Barcelona
La guerra es un acto abominable en el que se matan personas que no
se conocen, dirigidas por personas que se conocen y no se matan
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-