[PATCH] sem2mutex: serial ->port_write_mutex
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
1e7933defd
commit
81861d78c9
|
@ -48,8 +48,8 @@ static int gs_debug;
|
||||||
#define NEW_WRITE_LOCKING 1
|
#define NEW_WRITE_LOCKING 1
|
||||||
#if NEW_WRITE_LOCKING
|
#if NEW_WRITE_LOCKING
|
||||||
#define DECL /* Nothing */
|
#define DECL /* Nothing */
|
||||||
#define LOCKIT down (& port->port_write_sem);
|
#define LOCKIT mutex_lock(& port->port_write_mutex);
|
||||||
#define RELEASEIT up (&port->port_write_sem);
|
#define RELEASEIT mutex_unlock(&port->port_write_mutex);
|
||||||
#else
|
#else
|
||||||
#define DECL unsigned long flags;
|
#define DECL unsigned long flags;
|
||||||
#define LOCKIT save_flags (flags);cli ()
|
#define LOCKIT save_flags (flags);cli ()
|
||||||
|
@ -124,14 +124,14 @@ int gs_write(struct tty_struct * tty,
|
||||||
/* get exclusive "write" access to this port (problem 3) */
|
/* get exclusive "write" access to this port (problem 3) */
|
||||||
/* This is not a spinlock because we can have a disk access (page
|
/* This is not a spinlock because we can have a disk access (page
|
||||||
fault) in copy_from_user */
|
fault) in copy_from_user */
|
||||||
down (& port->port_write_sem);
|
mutex_lock(& port->port_write_mutex);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
c = count;
|
c = count;
|
||||||
|
|
||||||
/* This is safe because we "OWN" the "head". Noone else can
|
/* This is safe because we "OWN" the "head". Noone else can
|
||||||
change the "head": we own the port_write_sem. */
|
change the "head": we own the port_write_mutex. */
|
||||||
/* Don't overrun the end of the buffer */
|
/* Don't overrun the end of the buffer */
|
||||||
t = SERIAL_XMIT_SIZE - port->xmit_head;
|
t = SERIAL_XMIT_SIZE - port->xmit_head;
|
||||||
if (t < c) c = t;
|
if (t < c) c = t;
|
||||||
|
@ -153,7 +153,7 @@ int gs_write(struct tty_struct * tty,
|
||||||
count -= c;
|
count -= c;
|
||||||
total += c;
|
total += c;
|
||||||
}
|
}
|
||||||
up (& port->port_write_sem);
|
mutex_unlock(& port->port_write_mutex);
|
||||||
|
|
||||||
gs_dprintk (GS_DEBUG_WRITE, "write: interrupts are %s\n",
|
gs_dprintk (GS_DEBUG_WRITE, "write: interrupts are %s\n",
|
||||||
(port->flags & GS_TX_INTEN)?"enabled": "disabled");
|
(port->flags & GS_TX_INTEN)?"enabled": "disabled");
|
||||||
|
@ -214,7 +214,7 @@ int gs_write(struct tty_struct * tty,
|
||||||
c = count;
|
c = count;
|
||||||
|
|
||||||
/* This is safe because we "OWN" the "head". Noone else can
|
/* This is safe because we "OWN" the "head". Noone else can
|
||||||
change the "head": we own the port_write_sem. */
|
change the "head": we own the port_write_mutex. */
|
||||||
/* Don't overrun the end of the buffer */
|
/* Don't overrun the end of the buffer */
|
||||||
t = SERIAL_XMIT_SIZE - port->xmit_head;
|
t = SERIAL_XMIT_SIZE - port->xmit_head;
|
||||||
if (t < c) c = t;
|
if (t < c) c = t;
|
||||||
|
@ -888,7 +888,7 @@ int gs_init_port(struct gs_port *port)
|
||||||
spin_lock_irqsave (&port->driver_lock, flags);
|
spin_lock_irqsave (&port->driver_lock, flags);
|
||||||
if (port->tty)
|
if (port->tty)
|
||||||
clear_bit(TTY_IO_ERROR, &port->tty->flags);
|
clear_bit(TTY_IO_ERROR, &port->tty->flags);
|
||||||
init_MUTEX(&port->port_write_sem);
|
mutex_init(&port->port_write_mutex);
|
||||||
port->xmit_cnt = port->xmit_head = port->xmit_tail = 0;
|
port->xmit_cnt = port->xmit_head = port->xmit_tail = 0;
|
||||||
spin_unlock_irqrestore(&port->driver_lock, flags);
|
spin_unlock_irqrestore(&port->driver_lock, flags);
|
||||||
gs_set_termios(port->tty, NULL);
|
gs_set_termios(port->tty, NULL);
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
#include <asm/amigahw.h>
|
#include <asm/amigahw.h>
|
||||||
#include <linux/zorro.h>
|
#include <linux/zorro.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/semaphore.h>
|
#include <linux/mutex.h>
|
||||||
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
@ -654,7 +654,7 @@ static void a2232_init_portstructs(void)
|
||||||
port->gs.closing_wait = 30 * HZ;
|
port->gs.closing_wait = 30 * HZ;
|
||||||
port->gs.rd = &a2232_real_driver;
|
port->gs.rd = &a2232_real_driver;
|
||||||
#ifdef NEW_WRITE_LOCKING
|
#ifdef NEW_WRITE_LOCKING
|
||||||
init_MUTEX(&(port->gs.port_write_sem));
|
init_MUTEX(&(port->gs.port_write_mutex));
|
||||||
#endif
|
#endif
|
||||||
init_waitqueue_head(&port->gs.open_wait);
|
init_waitqueue_head(&port->gs.open_wait);
|
||||||
init_waitqueue_head(&port->gs.close_wait);
|
init_waitqueue_head(&port->gs.close_wait);
|
||||||
|
|
|
@ -2318,7 +2318,7 @@ static int sx_init_portstructs (int nboards, int nports)
|
||||||
port->board = board;
|
port->board = board;
|
||||||
port->gs.rd = &sx_real_driver;
|
port->gs.rd = &sx_real_driver;
|
||||||
#ifdef NEW_WRITE_LOCKING
|
#ifdef NEW_WRITE_LOCKING
|
||||||
port->gs.port_write_sem = MUTEX;
|
port->gs.port_write_mutex = MUTEX;
|
||||||
#endif
|
#endif
|
||||||
port->gs.driver_lock = SPIN_LOCK_UNLOCKED;
|
port->gs.driver_lock = SPIN_LOCK_UNLOCKED;
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -184,7 +184,7 @@ static void scc_init_portstructs(void)
|
||||||
port->gs.closing_wait = 30 * HZ;
|
port->gs.closing_wait = 30 * HZ;
|
||||||
port->gs.rd = &scc_real_driver;
|
port->gs.rd = &scc_real_driver;
|
||||||
#ifdef NEW_WRITE_LOCKING
|
#ifdef NEW_WRITE_LOCKING
|
||||||
port->gs.port_write_sem = MUTEX;
|
port->gs.port_write_mutex = MUTEX;
|
||||||
#endif
|
#endif
|
||||||
init_waitqueue_head(&port->gs.open_wait);
|
init_waitqueue_head(&port->gs.open_wait);
|
||||||
init_waitqueue_head(&port->gs.close_wait);
|
init_waitqueue_head(&port->gs.close_wait);
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#ifndef GENERIC_SERIAL_H
|
#ifndef GENERIC_SERIAL_H
|
||||||
#define GENERIC_SERIAL_H
|
#define GENERIC_SERIAL_H
|
||||||
|
|
||||||
|
#include <linux/mutex.h>
|
||||||
|
|
||||||
struct real_driver {
|
struct real_driver {
|
||||||
void (*disable_tx_interrupts) (void *);
|
void (*disable_tx_interrupts) (void *);
|
||||||
void (*enable_tx_interrupts) (void *);
|
void (*enable_tx_interrupts) (void *);
|
||||||
|
@ -34,7 +36,7 @@ struct gs_port {
|
||||||
int xmit_head;
|
int xmit_head;
|
||||||
int xmit_tail;
|
int xmit_tail;
|
||||||
int xmit_cnt;
|
int xmit_cnt;
|
||||||
struct semaphore port_write_sem;
|
struct mutex port_write_mutex;
|
||||||
int flags;
|
int flags;
|
||||||
wait_queue_head_t open_wait;
|
wait_queue_head_t open_wait;
|
||||||
wait_queue_head_t close_wait;
|
wait_queue_head_t close_wait;
|
||||||
|
|
Loading…
Reference in a new issue