diff options
author | Dave Young <hidave.darkstar@gmail.com> | 2008-02-05 03:12:06 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-05 03:12:06 -0800 |
commit | 93d807401ced2320d0d1e56bf9de099bba5c0424 (patch) | |
tree | 8d9a471779124e7dea089ec59933b20d4c7480f4 | |
parent | 6e46c8cb3cbfa7bafe78d43a3d57750605a2dfa3 (diff) | |
download | op-kernel-dev-93d807401ced2320d0d1e56bf9de099bba5c0424.zip op-kernel-dev-93d807401ced2320d0d1e56bf9de099bba5c0424.tar.gz |
bluetooth rfcomm tty: destroy before tty_close()
rfcomm dev could be deleted in tty_hangup, so we must not call
rfcomm_dev_del again to prevent from destroying rfcomm dev before tty
close.
Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/bluetooth/rfcomm/tty.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c index 788c703..e4c779b 100644 --- a/net/bluetooth/rfcomm/tty.c +++ b/net/bluetooth/rfcomm/tty.c @@ -429,7 +429,8 @@ static int rfcomm_release_dev(void __user *arg) if (dev->tty) tty_vhangup(dev->tty); - rfcomm_dev_del(dev); + if (!test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags)) + rfcomm_dev_del(dev); rfcomm_dev_put(dev); return 0; } |