lkml.org 
[lkml]   [2010]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/68] specialix: Kill the BKL
    Date
    From: Alan Cox <alan@linux.intel.com>

    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>
    ---
    drivers/char/specialix.c | 11 +++++------
    1 files changed, 5 insertions(+), 6 deletions(-)
    diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c
    index 2c24fcd..7be456f 100644
    --- a/drivers/char/specialix.c
    +++ b/drivers/char/specialix.c
    @@ -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;
    --
    1.7.2


    \
     
     \ /
      Last update: 2010-08-11 00:03    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean