mirror of https://gitee.com/openkylin/linux.git
specialix: Kill the BKL
Use the port mutex instead Signed-off-by: Alan Cox <alan@linux.intel.com> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
7cc34fd028
commit
7479db0701
|
@ -1863,8 +1863,7 @@ static int sx_set_serial_info(struct specialix_port *port,
|
|||
return -EFAULT;
|
||||
}
|
||||
|
||||
lock_kernel();
|
||||
|
||||
mutex_lock(&port->port.mutex);
|
||||
change_speed = ((port->port.flags & ASYNC_SPD_MASK) !=
|
||||
(tmp.flags & ASYNC_SPD_MASK));
|
||||
change_speed |= (tmp.custom_divisor != port->custom_divisor);
|
||||
|
@ -1875,7 +1874,7 @@ static int sx_set_serial_info(struct specialix_port *port,
|
|||
((tmp.flags & ~ASYNC_USR_MASK) !=
|
||||
(port->port.flags & ~ASYNC_USR_MASK))) {
|
||||
func_exit();
|
||||
unlock_kernel();
|
||||
mutex_unlock(&port->port.mutex);
|
||||
return -EPERM;
|
||||
}
|
||||
port->port.flags = ((port->port.flags & ~ASYNC_USR_MASK) |
|
||||
|
@ -1892,7 +1891,7 @@ static int sx_set_serial_info(struct specialix_port *port,
|
|||
sx_change_speed(bp, port);
|
||||
|
||||
func_exit();
|
||||
unlock_kernel();
|
||||
mutex_unlock(&port->port.mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1906,7 +1905,7 @@ static int sx_get_serial_info(struct specialix_port *port,
|
|||
func_enter();
|
||||
|
||||
memset(&tmp, 0, sizeof(tmp));
|
||||
lock_kernel();
|
||||
mutex_lock(&port->port.mutex);
|
||||
tmp.type = PORT_CIRRUS;
|
||||
tmp.line = port - sx_port;
|
||||
tmp.port = bp->base;
|
||||
|
@ -1917,7 +1916,7 @@ static int sx_get_serial_info(struct specialix_port *port,
|
|||
tmp.closing_wait = port->port.closing_wait * HZ/100;
|
||||
tmp.custom_divisor = port->custom_divisor;
|
||||
tmp.xmit_fifo_size = CD186x_NFIFO;
|
||||
unlock_kernel();
|
||||
mutex_unlock(&port->port.mutex);
|
||||
if (copy_to_user(retinfo, &tmp, sizeof(tmp))) {
|
||||
func_exit();
|
||||
return -EFAULT;
|
||||
|
|
Loading…
Reference in New Issue