pentoo-overlay/sys-kernel/compat-drivers/files/compat-drivers-3.8-bt_tty.patch

37 lines
1.3 KiB
Diff

--- compat-drivers-3.8-rc7-1-u.orig/net/bluetooth/rfcomm/tty.c 2013-02-11 00:31:59.000000000 +0100
+++ compat-drivers-3.8-rc7-1-u/net/bluetooth/rfcomm/tty.c 2013-02-13 12:39:58.983001215 +0100
@@ -309,7 +309,7 @@
BUG_ON(test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags));
spin_lock_irqsave(&dev->port.lock, flags);
- if (dev->port.count > 0) {
+ if (atomic_read(&dev->port.count) > 0) {
spin_unlock_irqrestore(&dev->port.lock, flags);
return;
}
@@ -664,10 +664,10 @@
return -ENODEV;
BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
- dev->channel, dev->port.count);
+ dev->channel, atomic_read(&dev->port.count));
spin_lock_irqsave(&dev->port.lock, flags);
- if (++dev->port.count > 1) {
+ if (atomic_inc_return(&dev->port.count) > 1) {
spin_unlock_irqrestore(&dev->port.lock, flags);
return 0;
}
@@ -736,10 +736,10 @@
return;
BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
- dev->port.count);
+ atomic_read(&dev->port.count));
spin_lock_irqsave(&dev->port.lock, flags);
- if (!--dev->port.count) {
+ if (!atomic_dec_return(&dev->port.count)) {
spin_unlock_irqrestore(&dev->port.lock, flags);
if (dev->tty_dev->parent)
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29))