<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net/bluetooth, branch v2.6.36</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.36</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.36'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2010-09-30T15:19:35Z</updated>
<entry>
<title>Bluetooth: Fix deadlock in the ERTM logic</title>
<updated>2010-09-30T15:19:35Z</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-09-21T19:31:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e454c844644683571617896ab2a4ce0109c1943e'/>
<id>urn:sha1:e454c844644683571617896ab2a4ce0109c1943e</id>
<content type='text'>
The Enhanced Retransmission Mode(ERTM) is a realiable mode of operation
of the Bluetooth L2CAP layer. Think on it like a simplified version of
TCP.
The problem we were facing here was a deadlock. ERTM uses a backlog
queue to queue incomimg packets while the user is helding the lock. At
some moment the sk_sndbuf can be exceeded and we can't alloc new skbs
then the code sleep with the lock to wait for memory, that stalls the
ERTM connection once we can't read the acknowledgements packets in the
backlog queue to free memory and make the allocation of outcoming skb
successful.

This patch actually affect all users of bt_skb_send_alloc(), i.e., all
L2CAP modes and SCO.

We are safe against socket states changes or channels deletion while the
we are sleeping wait memory. Checking for the sk-&gt;sk_err and
sk-&gt;sk_shutdown make the code safe, since any action that can leave the
socket or the channel in a not usable state set one of the struct
members at least. Then we can check both of them when getting the lock
again and return with the proper error if something unexpected happens.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Ulisses Furquim &lt;ulisses@profusion.mobi&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Use 3-DH5 payload size for default ERTM max PDU size</title>
<updated>2010-08-10T11:59:11Z</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-08-05T22:54:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=db12d647ccc971ed120199dc7ea5be2b5887d328'/>
<id>urn:sha1:db12d647ccc971ed120199dc7ea5be2b5887d328</id>
<content type='text'>
The previous value of 672 for L2CAP_DEFAULT_MAX_PDU_SIZE is based on
the default L2CAP MTU.  That default MTU is calculated from the size
of two DH5 packets, minus ACL and L2CAP b-frame header overhead.

ERTM is used with newer basebands that typically support larger 3-DH5
packets, and i-frames and s-frames have more header overhead.  With
clean RF conditions, basebands will typically attempt to use 1021-byte
3-DH5 packets for maximum throughput.  Adjusting for 2 bytes of ACL
headers plus 10 bytes of worst-case L2CAP headers yields 1009 bytes
of payload.

This PDU size imposes less overhead for header bytes and gives the
baseband the option to choose 3-DH5 packets, but is small enough for
ERTM traffic to interleave well with other L2CAP or SCO data.
672-byte payloads do not allow the most efficient over-the-air
packet choice, and cannot achieve maximum throughput over BR/EDR.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Change default L2CAP ERTM retransmit timeout</title>
<updated>2010-08-10T11:59:11Z</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-08-05T22:54:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fa235562fbde8703aabeeedfa0772f08608d1542'/>
<id>urn:sha1:fa235562fbde8703aabeeedfa0772f08608d1542</id>
<content type='text'>
The L2CAP specification requires that the ERTM retransmit timeout be at
least 2 seconds for BR/EDR connections.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Use list_head for HCI blacklist head</title>
<updated>2010-07-31T23:06:58Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-07-31T04:54:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ea4bd8ba804dedefa65303b3bd105d6d2808e621'/>
<id>urn:sha1:ea4bd8ba804dedefa65303b3bd105d6d2808e621</id>
<content type='text'>
The bdaddr in the list root is completely unused and just
taking up space.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Tested-by: Johan Hedberg &lt;johan.hedberg@nokia.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Defer SCO setup if mode change is pending</title>
<updated>2010-07-27T19:29:04Z</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2010-07-26T14:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e73439d8c0e4c522c843b8bb98c0eb5700da6b05'/>
<id>urn:sha1:e73439d8c0e4c522c843b8bb98c0eb5700da6b05</id>
<content type='text'>
Certain headsets such as the Motorola H350 will reject SCO and eSCO
connection requests while the ACL is transitioning from sniff mode
to active mode. Add synchronization so that SCO and eSCO connection
requests will wait until the ACL has fully transitioned to active mode.

&lt; HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2
    handle 12
&gt; HCI Event: Command Status (0x0f) plen 4
    Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1
&lt; HCI Command:  Setup Synchronous Connection (0x01|0x0028) plen 17
    handle 12 voice setting 0x0040
&gt; HCI Event: Command Status (0x0f) plen 4
    Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
&gt; HCI Event: Number of Completed Packets (0x13) plen 5
    handle 12 packets 1
&gt; HCI Event: Mode Change (0x14) plen 6
    status 0x00 handle 12 mode 0x00 interval 0
    Mode: Active
&gt; HCI Event: Synchronous Connect Complete (0x2c) plen 17
    status 0x10 handle 14 bdaddr 00:1A:0E:50:28:A4 type SCO
    Error: Connection Accept Timeout Exceeded

Signed-off-by: Ron Shaffer &lt;rshaffer@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Use __packed annotation</title>
<updated>2010-07-21T17:39:13Z</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-07-19T05:00:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=66c853cc21bd387a9a2109dcf3b3d53cc9ee9edf'/>
<id>urn:sha1:66c853cc21bd387a9a2109dcf3b3d53cc9ee9edf</id>
<content type='text'>
To make net/ and include/net/ code consistent use __packed instead of
__attribute__ ((packed)). Bluetooth subsystem was one of the last net
subsys still using __attribute__ ((packed)).

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add Google's copyright to L2CAP</title>
<updated>2010-07-21T17:39:12Z</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-07-16T19:18:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5d8868ff3d11e3fc5a5c07477f281a16c71714a3'/>
<id>urn:sha1:5d8868ff3d11e3fc5a5c07477f281a16c71714a3</id>
<content type='text'>
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Implemented HCI frame reassembly for RX from stream</title>
<updated>2010-07-21T17:39:12Z</updated>
<author>
<name>Suraj Sumangala</name>
<email>suraj@atheros.com</email>
</author>
<published>2010-07-14T07:32:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9981151086385eecc2febf4ba95a14593f834b3d'/>
<id>urn:sha1:9981151086385eecc2febf4ba95a14593f834b3d</id>
<content type='text'>
Implemented frame reassembly implementation for reassembling fragments
received from stream.

Signed-off-by: Suraj Sumangala &lt;suraj@atheros.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Implement hci_reassembly helper to reassemble RX packets</title>
<updated>2010-07-21T17:39:12Z</updated>
<author>
<name>Suraj Sumangala</name>
<email>suraj@atheros.com</email>
</author>
<published>2010-07-14T07:32:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=33e882a5f2301a23a85ef2994e30fd9f48d39d9b'/>
<id>urn:sha1:33e882a5f2301a23a85ef2994e30fd9f48d39d9b</id>
<content type='text'>
Implements feature to reassemble received HCI frames from any input stream

Signed-off-by: Suraj Sumangala &lt;suraj@atheros.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add one more buffer for HCI stream reassembly</title>
<updated>2010-07-21T17:39:12Z</updated>
<author>
<name>Suraj Sumangala</name>
<email>suraj@atheros.com</email>
</author>
<published>2010-07-14T07:32:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cd4c53919ed50b0d532f106aeb76e79077bece98'/>
<id>urn:sha1:cd4c53919ed50b0d532f106aeb76e79077bece98</id>
<content type='text'>
Additional reassembly buffer to keep track of stream reasembly

Signed-off-by: Suraj Sumangala &lt;suraj@atheros.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
</feed>
