Преглед на файлове

[AX25] mkiss: Drop spinlock before sleeping call.

With the previous missing-unlock fix the spinlock is dropped only
after the tty->driver->write() call which might sleep.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ralf Baechle преди 19 години
родител
ревизия
c1854ebc7f
променени са 1 файла, в които са добавени 1 реда и са изтрити 1 реда
  1. 1 1
      drivers/net/hamradio/mkiss.c

+ 1 - 1
drivers/net/hamradio/mkiss.c

@@ -515,6 +515,7 @@ static void ax_encaps(struct net_device *dev, unsigned char *icp, int len)
 			count = kiss_esc(p, (unsigned char *)ax->xbuff, len);
 			count = kiss_esc(p, (unsigned char *)ax->xbuff, len);
 		}
 		}
   	}
   	}
+	spin_unlock_bh(&ax->buflock);
 
 
 	set_bit(TTY_DO_WRITE_WAKEUP, &ax->tty->flags);
 	set_bit(TTY_DO_WRITE_WAKEUP, &ax->tty->flags);
 	actual = ax->tty->driver->write(ax->tty, ax->xbuff, count);
 	actual = ax->tty->driver->write(ax->tty, ax->xbuff, count);
@@ -524,7 +525,6 @@ static void ax_encaps(struct net_device *dev, unsigned char *icp, int len)
 	ax->dev->trans_start = jiffies;
 	ax->dev->trans_start = jiffies;
 	ax->xleft = count - actual;
 	ax->xleft = count - actual;
 	ax->xhead = ax->xbuff + actual;
 	ax->xhead = ax->xbuff + actual;
-	spin_unlock_bh(&ax->buflock);
 }
 }
 
 
 /* Encapsulate an AX.25 packet and kick it into a TTY queue. */
 /* Encapsulate an AX.25 packet and kick it into a TTY queue. */