diff options
Diffstat (limited to 'net/bluetooth/rfcomm/tty.c')
-rw-r--r-- | net/bluetooth/rfcomm/tty.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c index 2575c2db6404..c258796313e0 100644 --- a/net/bluetooth/rfcomm/tty.c +++ b/net/bluetooth/rfcomm/tty.c | |||
@@ -727,7 +727,9 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp) | |||
727 | break; | 727 | break; |
728 | } | 728 | } |
729 | 729 | ||
730 | tty_unlock(); | ||
730 | schedule(); | 731 | schedule(); |
732 | tty_lock(); | ||
731 | } | 733 | } |
732 | set_current_state(TASK_RUNNING); | 734 | set_current_state(TASK_RUNNING); |
733 | remove_wait_queue(&dev->wait, &wait); | 735 | remove_wait_queue(&dev->wait, &wait); |
@@ -830,7 +832,7 @@ static int rfcomm_tty_write_room(struct tty_struct *tty) | |||
830 | return room; | 832 | return room; |
831 | } | 833 | } |
832 | 834 | ||
833 | static int rfcomm_tty_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd, unsigned long arg) | 835 | static int rfcomm_tty_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg) |
834 | { | 836 | { |
835 | BT_DBG("tty %p cmd 0x%02x", tty, cmd); | 837 | BT_DBG("tty %p cmd 0x%02x", tty, cmd); |
836 | 838 | ||
@@ -1089,7 +1091,7 @@ static void rfcomm_tty_hangup(struct tty_struct *tty) | |||
1089 | } | 1091 | } |
1090 | } | 1092 | } |
1091 | 1093 | ||
1092 | static int rfcomm_tty_tiocmget(struct tty_struct *tty, struct file *filp) | 1094 | static int rfcomm_tty_tiocmget(struct tty_struct *tty) |
1093 | { | 1095 | { |
1094 | struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data; | 1096 | struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data; |
1095 | 1097 | ||
@@ -1098,7 +1100,7 @@ static int rfcomm_tty_tiocmget(struct tty_struct *tty, struct file *filp) | |||
1098 | return dev->modem_status; | 1100 | return dev->modem_status; |
1099 | } | 1101 | } |
1100 | 1102 | ||
1101 | static int rfcomm_tty_tiocmset(struct tty_struct *tty, struct file *filp, unsigned int set, unsigned int clear) | 1103 | static int rfcomm_tty_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear) |
1102 | { | 1104 | { |
1103 | struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data; | 1105 | struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data; |
1104 | struct rfcomm_dlc *dlc = dev->dlc; | 1106 | struct rfcomm_dlc *dlc = dev->dlc; |