Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 95174
b: refs/heads/master
c: e523844
h: refs/heads/master
v: v3
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Apr 30, 2008
1 parent ab0a470 commit e8d2f82
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c0754c99a6bcfcba7e1d68b75e3f25cb367af0fa
refs/heads/master: e52384426064bca0669a954736206adca7595d48
16 changes: 9 additions & 7 deletions trunk/drivers/serial/serial_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -914,14 +914,14 @@ static void uart_break_ctl(struct tty_struct *tty, int break_state)
struct uart_state *state = tty->driver_data;
struct uart_port *port = state->port;

BUG_ON(!kernel_locked());

lock_kernel();
mutex_lock(&state->mutex);

if (port->type != PORT_UNKNOWN)
port->ops->break_ctl(port, break_state);

mutex_unlock(&state->mutex);
unlock_kernel();
}

static int uart_do_autoconfig(struct uart_state *state)
Expand Down Expand Up @@ -1059,7 +1059,7 @@ static int uart_get_count(struct uart_state *state,
}

/*
* Called via sys_ioctl under the BKL. We can use spin_lock_irq() here.
* Called via sys_ioctl. We can use spin_lock_irq() here.
*/
static int
uart_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd,
Expand All @@ -1069,8 +1069,8 @@ uart_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd,
void __user *uarg = (void __user *)arg;
int ret = -ENOIOCTLCMD;

BUG_ON(!kernel_locked());

lock_kernel();
/*
* These ioctls don't rely on the hardware to be present.
*/
Expand Down Expand Up @@ -1143,6 +1143,7 @@ uart_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd,
out_up:
mutex_unlock(&state->mutex);
out:
unlock_kernel();
return ret;
}

Expand All @@ -1153,7 +1154,6 @@ static void uart_set_termios(struct tty_struct *tty,
unsigned long flags;
unsigned int cflag = tty->termios->c_cflag;

BUG_ON(!kernel_locked());

/*
* These are the bits that are used to setup various
Expand All @@ -1165,9 +1165,11 @@ static void uart_set_termios(struct tty_struct *tty,
if ((cflag ^ old_termios->c_cflag) == 0 &&
tty->termios->c_ospeed == old_termios->c_ospeed &&
tty->termios->c_ispeed == old_termios->c_ispeed &&
RELEVANT_IFLAG(tty->termios->c_iflag ^ old_termios->c_iflag) == 0)
RELEVANT_IFLAG(tty->termios->c_iflag ^ old_termios->c_iflag) == 0) {
return;
}

lock_kernel();
uart_change_speed(state, old_termios);

/* Handle transition to B0 status */
Expand Down Expand Up @@ -1200,7 +1202,7 @@ static void uart_set_termios(struct tty_struct *tty,
}
spin_unlock_irqrestore(&state->port->lock, flags);
}

unlock_kernel();
#if 0
/*
* No need to wake up processes in open wait, since they
Expand Down

0 comments on commit e8d2f82

Please sign in to comment.