<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/bluetooth, branch v2.6.36</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Bluetooth: Disallow to change L2CAP_OPTIONS values when connected</title>
<updated>2010-10-04T22:28:52+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-10-04T22:28:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=eaa71b318c5ed0cd1ac3182a533471dc5edf372d'/>
<id>eaa71b318c5ed0cd1ac3182a533471dc5edf372d</id>
<content type='text'>
L2CAP doesn't permit change like MTU, FCS, TxWindow values while the
connection is alive, we can only set that before the
connection/configuration process. That can lead to bugs in the L2CAP
operation.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
L2CAP doesn't permit change like MTU, FCS, TxWindow values while the
connection is alive, we can only set that before the
connection/configuration process. That can lead to bugs in the L2CAP
operation.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Bluetooth: Don't accept ConfigReq if we aren't in the BT_CONFIG state"</title>
<updated>2010-09-30T15:19:35+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-09-08T17:59:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b0239c80fe89d5832a68a0f3121a9d5ec9fb763e'/>
<id>b0239c80fe89d5832a68a0f3121a9d5ec9fb763e</id>
<content type='text'>
This reverts commit 8cb8e6f1684be13b51f8429b15f39c140326b327.

That commit introduced a regression with the Bluetooth Profile Tuning
Suite(PTS), Reverting this make sure that L2CAP is in a qualificable
state.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8cb8e6f1684be13b51f8429b15f39c140326b327.

That commit introduced a regression with the Bluetooth Profile Tuning
Suite(PTS), Reverting this make sure that L2CAP is in a qualificable
state.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix inconsistent lock state with RFCOMM</title>
<updated>2010-09-30T15:19:35+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-08-14T03:48:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fad003b6c8e3d944d4453fd569b0702ef1af82b3'/>
<id>fad003b6c8e3d944d4453fd569b0702ef1af82b3</id>
<content type='text'>
When receiving a rfcomm connection with the old dund deamon a
inconsistent lock state happens. That's because interrupts were already
disabled by l2cap_conn_start() when rfcomm_sk_state_change() try to lock
the spin_lock.

As result we may have a inconsistent lock state for l2cap_conn_start()
after rfcomm_sk_state_change() calls bh_lock_sock() and disable interrupts
as well.

[ 2833.151999]
[ 2833.151999] =================================
[ 2833.151999] [ INFO: inconsistent lock state ]
[ 2833.151999] 2.6.36-rc3 #2
[ 2833.151999] ---------------------------------
[ 2833.151999] inconsistent {IN-SOFTIRQ-W} -&gt; {SOFTIRQ-ON-W} usage.
[ 2833.151999] krfcommd/2306 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 2833.151999]  (slock-AF_BLUETOOTH){+.?...}, at: [&lt;ffffffffa00bcb56&gt;] rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999] {IN-SOFTIRQ-W} state was registered at:
[ 2833.151999]   [&lt;ffffffff81094346&gt;] __lock_acquire+0x5b6/0x1560
[ 2833.151999]   [&lt;ffffffff8109534a&gt;] lock_acquire+0x5a/0x70
[ 2833.151999]   [&lt;ffffffff81392b6c&gt;] _raw_spin_lock+0x2c/0x40
[ 2833.151999]   [&lt;ffffffffa00a5092&gt;] l2cap_conn_start+0x92/0x640 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a6a3f&gt;] l2cap_sig_channel+0x6bf/0x1320 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a9173&gt;] l2cap_recv_frame+0x133/0x770 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a997b&gt;] l2cap_recv_acldata+0x1cb/0x390 [l2cap]
[ 2833.151999]   [&lt;ffffffffa000db4b&gt;] hci_rx_task+0x2ab/0x450 [bluetooth]
[ 2833.151999]   [&lt;ffffffff8106b22b&gt;] tasklet_action+0xcb/0xe0
[ 2833.151999]   [&lt;ffffffff8106b91e&gt;] __do_softirq+0xae/0x150
[ 2833.151999]   [&lt;ffffffff8102bc0c&gt;] call_softirq+0x1c/0x30
[ 2833.151999]   [&lt;ffffffff8102ddb5&gt;] do_softirq+0x75/0xb0
[ 2833.151999]   [&lt;ffffffff8106b56d&gt;] irq_exit+0x8d/0xa0
[ 2833.151999]   [&lt;ffffffff8104484b&gt;] smp_apic_timer_interrupt+0x6b/0xa0
[ 2833.151999]   [&lt;ffffffff8102b6d3&gt;] apic_timer_interrupt+0x13/0x20
[ 2833.151999]   [&lt;ffffffff81029dfa&gt;] cpu_idle+0x5a/0xb0
[ 2833.151999]   [&lt;ffffffff81381ded&gt;] rest_init+0xad/0xc0
[ 2833.151999]   [&lt;ffffffff817ebc4d&gt;] start_kernel+0x2dd/0x2e8
[ 2833.151999]   [&lt;ffffffff817eb2e6&gt;] x86_64_start_reservations+0xf6/0xfa
[ 2833.151999]   [&lt;ffffffff817eb3ce&gt;] x86_64_start_kernel+0xe4/0xeb
[ 2833.151999] irq event stamp: 731
[ 2833.151999] hardirqs last  enabled at (731): [&lt;ffffffff8106b762&gt;] local_bh_enable_ip+0x82/0xe0
[ 2833.151999] hardirqs last disabled at (729): [&lt;ffffffff8106b93e&gt;] __do_softirq+0xce/0x150
[ 2833.151999] softirqs last  enabled at (730): [&lt;ffffffff8106b96e&gt;] __do_softirq+0xfe/0x150
[ 2833.151999] softirqs last disabled at (711): [&lt;ffffffff8102bc0c&gt;] call_softirq+0x1c/0x30
[ 2833.151999]
[ 2833.151999] other info that might help us debug this:
[ 2833.151999] 2 locks held by krfcommd/2306:
[ 2833.151999]  #0:  (rfcomm_mutex){+.+.+.}, at: [&lt;ffffffffa00bb744&gt;] rfcomm_run+0x174/0xb20 [rfcomm]
[ 2833.151999]  #1:  (&amp;(&amp;d-&gt;lock)-&gt;rlock){+.+...}, at: [&lt;ffffffffa00b9223&gt;] rfcomm_dlc_accept+0x53/0x100 [rfcomm]
[ 2833.151999]
[ 2833.151999] stack backtrace:
[ 2833.151999] Pid: 2306, comm: krfcommd Tainted: G        W   2.6.36-rc3 #2
[ 2833.151999] Call Trace:
[ 2833.151999]  [&lt;ffffffff810928e1&gt;] print_usage_bug+0x171/0x180
[ 2833.151999]  [&lt;ffffffff810936c3&gt;] mark_lock+0x333/0x400
[ 2833.151999]  [&lt;ffffffff810943ca&gt;] __lock_acquire+0x63a/0x1560
[ 2833.151999]  [&lt;ffffffff810948b5&gt;] ? __lock_acquire+0xb25/0x1560
[ 2833.151999]  [&lt;ffffffff8109534a&gt;] lock_acquire+0x5a/0x70
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] ? rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffff81392b6c&gt;] _raw_spin_lock+0x2c/0x40
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] ? rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00b9239&gt;] rfcomm_dlc_accept+0x69/0x100 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00b9a49&gt;] rfcomm_check_accept+0x59/0xd0 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00bacab&gt;] rfcomm_recv_frame+0x9fb/0x1320 [rfcomm]
[ 2833.151999]  [&lt;ffffffff813932bb&gt;] ? _raw_spin_unlock_irqrestore+0x3b/0x60
[ 2833.151999]  [&lt;ffffffff81093acd&gt;] ? trace_hardirqs_on_caller+0x13d/0x180
[ 2833.151999]  [&lt;ffffffff81093b1d&gt;] ? trace_hardirqs_on+0xd/0x10
[ 2833.151999]  [&lt;ffffffffa00bb7f1&gt;] rfcomm_run+0x221/0xb20 [rfcomm]
[ 2833.151999]  [&lt;ffffffff813905e7&gt;] ? schedule+0x287/0x780
[ 2833.151999]  [&lt;ffffffffa00bb5d0&gt;] ? rfcomm_run+0x0/0xb20 [rfcomm]
[ 2833.151999]  [&lt;ffffffff81081026&gt;] kthread+0x96/0xa0
[ 2833.151999]  [&lt;ffffffff8102bb14&gt;] kernel_thread_helper+0x4/0x10
[ 2833.151999]  [&lt;ffffffff813936bc&gt;] ? restore_args+0x0/0x30
[ 2833.151999]  [&lt;ffffffff81080f90&gt;] ? kthread+0x0/0xa0
[ 2833.151999]  [&lt;ffffffff8102bb10&gt;] ? kernel_thread_helper+0x0/0x10

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When receiving a rfcomm connection with the old dund deamon a
inconsistent lock state happens. That's because interrupts were already
disabled by l2cap_conn_start() when rfcomm_sk_state_change() try to lock
the spin_lock.

As result we may have a inconsistent lock state for l2cap_conn_start()
after rfcomm_sk_state_change() calls bh_lock_sock() and disable interrupts
as well.

[ 2833.151999]
[ 2833.151999] =================================
[ 2833.151999] [ INFO: inconsistent lock state ]
[ 2833.151999] 2.6.36-rc3 #2
[ 2833.151999] ---------------------------------
[ 2833.151999] inconsistent {IN-SOFTIRQ-W} -&gt; {SOFTIRQ-ON-W} usage.
[ 2833.151999] krfcommd/2306 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 2833.151999]  (slock-AF_BLUETOOTH){+.?...}, at: [&lt;ffffffffa00bcb56&gt;] rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999] {IN-SOFTIRQ-W} state was registered at:
[ 2833.151999]   [&lt;ffffffff81094346&gt;] __lock_acquire+0x5b6/0x1560
[ 2833.151999]   [&lt;ffffffff8109534a&gt;] lock_acquire+0x5a/0x70
[ 2833.151999]   [&lt;ffffffff81392b6c&gt;] _raw_spin_lock+0x2c/0x40
[ 2833.151999]   [&lt;ffffffffa00a5092&gt;] l2cap_conn_start+0x92/0x640 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a6a3f&gt;] l2cap_sig_channel+0x6bf/0x1320 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a9173&gt;] l2cap_recv_frame+0x133/0x770 [l2cap]
[ 2833.151999]   [&lt;ffffffffa00a997b&gt;] l2cap_recv_acldata+0x1cb/0x390 [l2cap]
[ 2833.151999]   [&lt;ffffffffa000db4b&gt;] hci_rx_task+0x2ab/0x450 [bluetooth]
[ 2833.151999]   [&lt;ffffffff8106b22b&gt;] tasklet_action+0xcb/0xe0
[ 2833.151999]   [&lt;ffffffff8106b91e&gt;] __do_softirq+0xae/0x150
[ 2833.151999]   [&lt;ffffffff8102bc0c&gt;] call_softirq+0x1c/0x30
[ 2833.151999]   [&lt;ffffffff8102ddb5&gt;] do_softirq+0x75/0xb0
[ 2833.151999]   [&lt;ffffffff8106b56d&gt;] irq_exit+0x8d/0xa0
[ 2833.151999]   [&lt;ffffffff8104484b&gt;] smp_apic_timer_interrupt+0x6b/0xa0
[ 2833.151999]   [&lt;ffffffff8102b6d3&gt;] apic_timer_interrupt+0x13/0x20
[ 2833.151999]   [&lt;ffffffff81029dfa&gt;] cpu_idle+0x5a/0xb0
[ 2833.151999]   [&lt;ffffffff81381ded&gt;] rest_init+0xad/0xc0
[ 2833.151999]   [&lt;ffffffff817ebc4d&gt;] start_kernel+0x2dd/0x2e8
[ 2833.151999]   [&lt;ffffffff817eb2e6&gt;] x86_64_start_reservations+0xf6/0xfa
[ 2833.151999]   [&lt;ffffffff817eb3ce&gt;] x86_64_start_kernel+0xe4/0xeb
[ 2833.151999] irq event stamp: 731
[ 2833.151999] hardirqs last  enabled at (731): [&lt;ffffffff8106b762&gt;] local_bh_enable_ip+0x82/0xe0
[ 2833.151999] hardirqs last disabled at (729): [&lt;ffffffff8106b93e&gt;] __do_softirq+0xce/0x150
[ 2833.151999] softirqs last  enabled at (730): [&lt;ffffffff8106b96e&gt;] __do_softirq+0xfe/0x150
[ 2833.151999] softirqs last disabled at (711): [&lt;ffffffff8102bc0c&gt;] call_softirq+0x1c/0x30
[ 2833.151999]
[ 2833.151999] other info that might help us debug this:
[ 2833.151999] 2 locks held by krfcommd/2306:
[ 2833.151999]  #0:  (rfcomm_mutex){+.+.+.}, at: [&lt;ffffffffa00bb744&gt;] rfcomm_run+0x174/0xb20 [rfcomm]
[ 2833.151999]  #1:  (&amp;(&amp;d-&gt;lock)-&gt;rlock){+.+...}, at: [&lt;ffffffffa00b9223&gt;] rfcomm_dlc_accept+0x53/0x100 [rfcomm]
[ 2833.151999]
[ 2833.151999] stack backtrace:
[ 2833.151999] Pid: 2306, comm: krfcommd Tainted: G        W   2.6.36-rc3 #2
[ 2833.151999] Call Trace:
[ 2833.151999]  [&lt;ffffffff810928e1&gt;] print_usage_bug+0x171/0x180
[ 2833.151999]  [&lt;ffffffff810936c3&gt;] mark_lock+0x333/0x400
[ 2833.151999]  [&lt;ffffffff810943ca&gt;] __lock_acquire+0x63a/0x1560
[ 2833.151999]  [&lt;ffffffff810948b5&gt;] ? __lock_acquire+0xb25/0x1560
[ 2833.151999]  [&lt;ffffffff8109534a&gt;] lock_acquire+0x5a/0x70
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] ? rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffff81392b6c&gt;] _raw_spin_lock+0x2c/0x40
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] ? rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00bcb56&gt;] rfcomm_sk_state_change+0x46/0x170 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00b9239&gt;] rfcomm_dlc_accept+0x69/0x100 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00b9a49&gt;] rfcomm_check_accept+0x59/0xd0 [rfcomm]
[ 2833.151999]  [&lt;ffffffffa00bacab&gt;] rfcomm_recv_frame+0x9fb/0x1320 [rfcomm]
[ 2833.151999]  [&lt;ffffffff813932bb&gt;] ? _raw_spin_unlock_irqrestore+0x3b/0x60
[ 2833.151999]  [&lt;ffffffff81093acd&gt;] ? trace_hardirqs_on_caller+0x13d/0x180
[ 2833.151999]  [&lt;ffffffff81093b1d&gt;] ? trace_hardirqs_on+0xd/0x10
[ 2833.151999]  [&lt;ffffffffa00bb7f1&gt;] rfcomm_run+0x221/0xb20 [rfcomm]
[ 2833.151999]  [&lt;ffffffff813905e7&gt;] ? schedule+0x287/0x780
[ 2833.151999]  [&lt;ffffffffa00bb5d0&gt;] ? rfcomm_run+0x0/0xb20 [rfcomm]
[ 2833.151999]  [&lt;ffffffff81081026&gt;] kthread+0x96/0xa0
[ 2833.151999]  [&lt;ffffffff8102bb14&gt;] kernel_thread_helper+0x4/0x10
[ 2833.151999]  [&lt;ffffffff813936bc&gt;] ? restore_args+0x0/0x30
[ 2833.151999]  [&lt;ffffffff81080f90&gt;] ? kthread+0x0/0xa0
[ 2833.151999]  [&lt;ffffffff8102bb10&gt;] ? kernel_thread_helper+0x0/0x10

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Simplify L2CAP Streaming mode sending</title>
<updated>2010-09-30T15:19:35+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-08-30T21:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ccbb84af28594e19fd4bf27ff2828c80d03b6081'/>
<id>ccbb84af28594e19fd4bf27ff2828c80d03b6081</id>
<content type='text'>
As we don't have any error control on the Streaming mode, i.e., we don't
need to keep a copy of the skb for later resending we don't need to
call skb_clone() on it.
Then we can go one further here, and dequeue the skb before sending it,
that also means we don't need to look to sk-&gt;sk_send_head anymore.

The patch saves memory and time when sending Streaming mode data, so
it is good to mainline.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As we don't have any error control on the Streaming mode, i.e., we don't
need to keep a copy of the skb for later resending we don't need to
call skb_clone() on it.
Then we can go one further here, and dequeue the skb before sending it,
that also means we don't need to look to sk-&gt;sk_send_head anymore.

The patch saves memory and time when sending Streaming mode data, so
it is good to mainline.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: fix MTU L2CAP configuration parameter</title>
<updated>2010-09-30T15:19:35+00:00</updated>
<author>
<name>Andrei Emeltchenko</name>
<email>andrei.emeltchenko@nokia.com</email>
</author>
<published>2010-09-01T12:17:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8183b775bc5b79b6b1e250019c9dd930554dfa94'/>
<id>8183b775bc5b79b6b1e250019c9dd930554dfa94</id>
<content type='text'>
When receiving L2CAP negative configuration response with respect
to MTU parameter we modify wrong field. MTU here means proposed
value of MTU that the remote device intends to transmit. So for local
L2CAP socket it is pi-&gt;imtu.

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When receiving L2CAP negative configuration response with respect
to MTU parameter we modify wrong field. MTU here means proposed
value of MTU that the remote device intends to transmit. So for local
L2CAP socket it is pi-&gt;imtu.

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Only enable L2CAP FCS for ERTM or streaming</title>
<updated>2010-09-30T15:19:35+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-08-24T22:35:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8c462b6047da80491b8cb6be878e8bf9313ac3e1'/>
<id>8c462b6047da80491b8cb6be878e8bf9313ac3e1</id>
<content type='text'>
This fixes a bug which caused the FCS setting to show L2CAP_FCS_CRC16
with L2CAP modes other than ERTM or streaming.  At present, this only
affects the FCS value shown with getsockopt() for basic mode.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a bug which caused the FCS setting to show L2CAP_FCS_CRC16
with L2CAP modes other than ERTM or streaming.  At present, this only
affects the FCS value shown with getsockopt() for basic mode.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix incorrect setting of remote_tx_win for L2CAP ERTM</title>
<updated>2010-08-10T11:59:11+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-08-05T22:54:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cff70fae111efba80c27023772ce5265797fb514'/>
<id>cff70fae111efba80c27023772ce5265797fb514</id>
<content type='text'>
remote_tx_win is intended to be set on receipt of an L2CAP
configuration request.  The value is used to determine the size of the
transmit window on the remote side of an ERTM connection, so L2CAP
can stop sending frames when that remote window is full.

An incorrect remote_tx_win value will cause the stack to not fully
utilize the tx window (performance impact), or to overfill the remote
tx window (causing dropped frames or a disconnect).

This patch removes an extra setting of remote_tx_win when a
configuration response is received.  The transmit window has a
different meaning in a response - it is an informational value
less than or equal to the local tx_win.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
remote_tx_win is intended to be set on receipt of an L2CAP
configuration request.  The value is used to determine the size of the
transmit window on the remote side of an ERTM connection, so L2CAP
can stop sending frames when that remote window is full.

An incorrect remote_tx_win value will cause the stack to not fully
utilize the tx window (performance impact), or to overfill the remote
tx window (causing dropped frames or a disconnect).

This patch removes an extra setting of remote_tx_win when a
configuration response is received.  The transmit window has a
different meaning in a response - it is an informational value
less than or equal to the local tx_win.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix endianness issue with L2CAP MPS configuration</title>
<updated>2010-08-10T11:59:09+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-08-05T22:54:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=86b1b26326279299c93ddb11ab4782d3896bf84c'/>
<id>86b1b26326279299c93ddb11ab4782d3896bf84c</id>
<content type='text'>
Incoming configuration values must be converted to native CPU order
before use.  This fixes a bug where a little-endian MPS value is
compared to a native CPU value.  On big-endian processors, this
can cause ERTM and streaming mode segmentation to produce PDUs
that are larger than the remote stack is expecting, or that would
produce fragmented skbs that the current FCS code cannot handle.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Incoming configuration values must be converted to native CPU order
before use.  This fixes a bug where a little-endian MPS value is
compared to a native CPU value.  On big-endian processors, this
can cause ERTM and streaming mode segmentation to produce PDUs
that are larger than the remote stack is expecting, or that would
produce fragmented skbs that the current FCS code cannot handle.

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Check result code of L2CAP information response</title>
<updated>2010-08-04T14:25:17+00:00</updated>
<author>
<name>Ville Tervo</name>
<email>ville.tervo@nokia.com</email>
</author>
<published>2010-08-04T06:43:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=adb08edea0119f7a5484a9f6a385fbcecdf85a63'/>
<id>adb08edea0119f7a5484a9f6a385fbcecdf85a63</id>
<content type='text'>
Check result code of L2CAP information response. Otherwise
it would read invalid feature mask and access invalid memory.

Signed-off-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check result code of L2CAP information response. Otherwise
it would read invalid feature mask and access invalid memory.

Signed-off-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Don't send RFC for Basic Mode if only it is supported</title>
<updated>2010-08-04T14:23:00+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-08-04T02:49:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6340650400525a9ca8d86b1b4501cc50670dce0d'/>
<id>6340650400525a9ca8d86b1b4501cc50670dce0d</id>
<content type='text'>
If the remote side doesn't support Enhanced Retransmission Mode neither
Streaming Mode, we shall not send the RFC option.

Some devices that only supports Basic Mode do not understanding the RFC
option. This patch fixes the regression found with these devices.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the remote side doesn't support Enhanced Retransmission Mode neither
Streaming Mode, we shall not send the RFC option.

Some devices that only supports Basic Mode do not understanding the RFC
option. This patch fixes the regression found with these devices.

Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
