linux/net/bluetooth
Johan Hedberg e793dcf082 Bluetooth: Fix waiting for clearing of BT_SK_SUSPEND flag
In the case of blocking sockets we should not proceed with sendmsg() if
the socket has the BT_SK_SUSPEND flag set. So far the code was only
ensuring that POLLOUT doesn't get set for non-blocking sockets using
poll() but there was no code in place to ensure that blocking sockets do
the right thing when writing to them.

This patch adds a new bt_sock_wait_ready helper function to sleep in the
sendmsg call if the BT_SK_SUSPEND flag is set, and wake up as soon as it
is unset. It also updates the L2CAP and RFCOMM sendmsg callbacks to take
advantage of this new helper function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
2013-09-18 17:02:59 -05:00
..
bnep Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
cmtp Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
hidp Bluetooth: hidp: remove wrong send_report at init 2013-07-25 14:15:24 +01:00
rfcomm Bluetooth: Fix waiting for clearing of BT_SK_SUSPEND flag 2013-09-18 17:02:59 -05:00
a2mp.c Bluetooth: Replaced kzalloc and memcpy with kmemdup 2013-03-18 14:01:50 -03:00
af_bluetooth.c Bluetooth: Fix waiting for clearing of BT_SK_SUSPEND flag 2013-09-18 17:02:59 -05:00
amp.c Bluetooth: AMP: Use set_bit / test_bit for amp_mgr state 2013-01-09 17:05:05 -02:00
hci_conn.c Bluetooth: Disable upper layer connections when user channel is active 2013-09-16 14:35:56 -03:00
hci_core.c Bluetooth: Only schedule raw queue when user channel is active 2013-09-16 14:35:56 -03:00
hci_event.c Bluetooth: Add SCO connection fallback 2013-08-21 16:47:13 +02:00
hci_sock.c Bluetooth: Introduce new HCI socket channel for user operation 2013-09-16 14:35:55 -03:00
hci_sysfs.c Bluetooth: Track feature pages in a single table 2013-04-18 00:26:20 -03:00
Kconfig Bluetooth: trivial: Remove newline before EOF 2012-10-24 00:42:47 -02:00
l2cap_core.c Bluetooth: Fix responding to invalid L2CAP signaling commands 2013-09-18 16:50:53 -05:00
l2cap_sock.c Bluetooth: Fix waiting for clearing of BT_SK_SUSPEND flag 2013-09-18 17:02:59 -05:00
lib.c bluetooth: Remove unneeded batostr function 2012-09-27 18:10:43 -03:00
Makefile Bluetooth: AMP: Use HCI cmd to Read Loc AMP Assoc 2012-09-27 17:10:32 -03:00
mgmt.c Bluetooth: Introduce user channel flag for HCI devices 2013-09-16 14:35:55 -03:00
sco.c Bluetooth: Prevent transparent SCO on older devices 2013-08-21 16:47:12 +02:00
smp.c Bluetooth: Fix checks for LE support on LE-only controllers 2013-06-12 10:20:54 -04:00