mirror of https://gitee.com/openkylin/linux.git
slip: fix spinlock variant
With commitcc9fa74e2a
("slip/slcan: added locking in wakeup function") a formerly missing locking was added to slip.c and slcan.c by Andre Naujoks. Alexander Stein contributed the fix367525c8c2
("can: slcan: Fix spinlock variant") as the kernel lock debugging advised to use spin_lock_bh() instead of just using spin_lock(). This fix has to be applied to the same code section in slip.c for the same reason too. Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
df6d14ce98
commit
ddcde142be
|
@ -429,13 +429,13 @@ static void slip_write_wakeup(struct tty_struct *tty)
|
|||
if (!sl || sl->magic != SLIP_MAGIC || !netif_running(sl->dev))
|
||||
return;
|
||||
|
||||
spin_lock(&sl->lock);
|
||||
spin_lock_bh(&sl->lock);
|
||||
if (sl->xleft <= 0) {
|
||||
/* Now serial buffer is almost free & we can start
|
||||
* transmission of another packet */
|
||||
sl->dev->stats.tx_packets++;
|
||||
clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
|
||||
spin_unlock(&sl->lock);
|
||||
spin_unlock_bh(&sl->lock);
|
||||
sl_unlock(sl);
|
||||
return;
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ static void slip_write_wakeup(struct tty_struct *tty)
|
|||
actual = tty->ops->write(tty, sl->xhead, sl->xleft);
|
||||
sl->xleft -= actual;
|
||||
sl->xhead += actual;
|
||||
spin_unlock(&sl->lock);
|
||||
spin_unlock_bh(&sl->lock);
|
||||
}
|
||||
|
||||
static void sl_tx_timeout(struct net_device *dev)
|
||||
|
|
Loading…
Reference in New Issue