<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/bluetooth/sco.c, branch v3.7</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2012-08-22T21:21:38+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2012-08-22T21:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1304a7343b30fc4f16045412efdbb4179a3d9255'/>
<id>1304a7343b30fc4f16045412efdbb4179a3d9255</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix possible deadlock in SCO code</title>
<updated>2012-08-06T18:19:36+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-06-15T05:30:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=269c4845d5b3627b95b1934107251bacbe99bb68'/>
<id>269c4845d5b3627b95b1934107251bacbe99bb68</id>
<content type='text'>
sco_chan_del() only has conn != NULL when called from sco_conn_del() so
just move the code from it that deal with conn to sco_conn_del().

[  120.765529]
[  120.765529] ======================================================
[  120.766529] [ INFO: possible circular locking dependency detected ]
[  120.766529] 3.5.0-rc1-10292-g3701f94-dirty #70 Tainted: G        W
[  120.766529] -------------------------------------------------------
[  120.766529] kworker/u:3/1497 is trying to acquire lock:
[  120.766529]  (&amp;(&amp;conn-&gt;lock)-&gt;rlock#2){+.+...}, at:
[&lt;ffffffffa00b7ecc&gt;] sco_chan_del+0x4c/0x170 [bluetooth]
[  120.766529]
[  120.766529] but task is already holding lock:
[  120.766529]  (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}, at:
[&lt;ffffffffa00b8401&gt;] sco_conn_del+0x61/0xe0 [bluetooth]
[  120.766529]
[  120.766529] which lock already depends on the new lock.
[  120.766529]
[  120.766529]
[  120.766529] the existing dependency chain (in reverse order) is:
[  120.766529]
[  120.766529] -&gt; #1 (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}:
[  120.766529]        [&lt;ffffffff8107980e&gt;] lock_acquire+0x8e/0xb0
[  120.766529]        [&lt;ffffffff813c19e0&gt;] _raw_spin_lock+0x40/0x80
[  120.766529]        [&lt;ffffffffa00b85e9&gt;] sco_connect_cfm+0x79/0x300
[bluetooth]
[  120.766529]        [&lt;ffffffffa0094b13&gt;]
hci_sync_conn_complete_evt.isra.90+0x343/0x400 [bluetooth]
[  120.766529]        [&lt;ffffffffa009d447&gt;] hci_event_packet+0x317/0xfb0
[bluetooth]
[  120.766529]        [&lt;ffffffffa008aa68&gt;] hci_rx_work+0x2c8/0x890
[bluetooth]
[  120.766529]        [&lt;ffffffff81047db7&gt;] process_one_work+0x197/0x460
[  120.766529]        [&lt;ffffffff810489d6&gt;] worker_thread+0x126/0x2d0
[  120.766529]        [&lt;ffffffff8104ee4d&gt;] kthread+0x9d/0xb0
[  120.766529]        [&lt;ffffffff813c4294&gt;] kernel_thread_helper+0x4/0x10
[  120.766529]
[  120.766529] -&gt; #0 (&amp;(&amp;conn-&gt;lock)-&gt;rlock#2){+.+...}:
[  120.766529]        [&lt;ffffffff81078a8a&gt;] __lock_acquire+0x154a/0x1d30
[  120.766529]        [&lt;ffffffff8107980e&gt;] lock_acquire+0x8e/0xb0
[  120.766529]        [&lt;ffffffff813c19e0&gt;] _raw_spin_lock+0x40/0x80
[  120.766529]        [&lt;ffffffffa00b7ecc&gt;] sco_chan_del+0x4c/0x170
[bluetooth]
[  120.766529]        [&lt;ffffffffa00b8414&gt;] sco_conn_del+0x74/0xe0
[bluetooth]
[  120.766529]        [&lt;ffffffffa00b88a2&gt;] sco_disconn_cfm+0x32/0x60
[bluetooth]
[  120.766529]        [&lt;ffffffffa0093a82&gt;]
hci_disconn_complete_evt.isra.53+0x242/0x390 [bluetooth]
[  120.766529]        [&lt;ffffffffa009d747&gt;] hci_event_packet+0x617/0xfb0
[bluetooth]
[  120.766529]        [&lt;ffffffffa008aa68&gt;] hci_rx_work+0x2c8/0x890
[bluetooth]
[  120.766529]        [&lt;ffffffff81047db7&gt;] process_one_work+0x197/0x460
[  120.766529]        [&lt;ffffffff810489d6&gt;] worker_thread+0x126/0x2d0
[  120.766529]        [&lt;ffffffff8104ee4d&gt;] kthread+0x9d/0xb0
[  120.766529]        [&lt;ffffffff813c4294&gt;] kernel_thread_helper+0x4/0x10
[  120.766529]
[  120.766529] other info that might help us debug this:
[  120.766529]
[  120.766529]  Possible unsafe locking scenario:
[  120.766529]
[  120.766529]        CPU0                    CPU1
[  120.766529]        ----                    ----
[  120.766529]   lock(slock-AF_BLUETOOTH-BTPROTO_SCO);
[  120.766529]
lock(&amp;(&amp;conn-&gt;lock)-&gt;rlock#2);
[  120.766529]
lock(slock-AF_BLUETOOTH-BTPROTO_SCO);
[  120.766529]   lock(&amp;(&amp;conn-&gt;lock)-&gt;rlock#2);
[  120.766529]
[  120.766529]  *** DEADLOCK ***

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sco_chan_del() only has conn != NULL when called from sco_conn_del() so
just move the code from it that deal with conn to sco_conn_del().

[  120.765529]
[  120.765529] ======================================================
[  120.766529] [ INFO: possible circular locking dependency detected ]
[  120.766529] 3.5.0-rc1-10292-g3701f94-dirty #70 Tainted: G        W
[  120.766529] -------------------------------------------------------
[  120.766529] kworker/u:3/1497 is trying to acquire lock:
[  120.766529]  (&amp;(&amp;conn-&gt;lock)-&gt;rlock#2){+.+...}, at:
[&lt;ffffffffa00b7ecc&gt;] sco_chan_del+0x4c/0x170 [bluetooth]
[  120.766529]
[  120.766529] but task is already holding lock:
[  120.766529]  (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}, at:
[&lt;ffffffffa00b8401&gt;] sco_conn_del+0x61/0xe0 [bluetooth]
[  120.766529]
[  120.766529] which lock already depends on the new lock.
[  120.766529]
[  120.766529]
[  120.766529] the existing dependency chain (in reverse order) is:
[  120.766529]
[  120.766529] -&gt; #1 (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}:
[  120.766529]        [&lt;ffffffff8107980e&gt;] lock_acquire+0x8e/0xb0
[  120.766529]        [&lt;ffffffff813c19e0&gt;] _raw_spin_lock+0x40/0x80
[  120.766529]        [&lt;ffffffffa00b85e9&gt;] sco_connect_cfm+0x79/0x300
[bluetooth]
[  120.766529]        [&lt;ffffffffa0094b13&gt;]
hci_sync_conn_complete_evt.isra.90+0x343/0x400 [bluetooth]
[  120.766529]        [&lt;ffffffffa009d447&gt;] hci_event_packet+0x317/0xfb0
[bluetooth]
[  120.766529]        [&lt;ffffffffa008aa68&gt;] hci_rx_work+0x2c8/0x890
[bluetooth]
[  120.766529]        [&lt;ffffffff81047db7&gt;] process_one_work+0x197/0x460
[  120.766529]        [&lt;ffffffff810489d6&gt;] worker_thread+0x126/0x2d0
[  120.766529]        [&lt;ffffffff8104ee4d&gt;] kthread+0x9d/0xb0
[  120.766529]        [&lt;ffffffff813c4294&gt;] kernel_thread_helper+0x4/0x10
[  120.766529]
[  120.766529] -&gt; #0 (&amp;(&amp;conn-&gt;lock)-&gt;rlock#2){+.+...}:
[  120.766529]        [&lt;ffffffff81078a8a&gt;] __lock_acquire+0x154a/0x1d30
[  120.766529]        [&lt;ffffffff8107980e&gt;] lock_acquire+0x8e/0xb0
[  120.766529]        [&lt;ffffffff813c19e0&gt;] _raw_spin_lock+0x40/0x80
[  120.766529]        [&lt;ffffffffa00b7ecc&gt;] sco_chan_del+0x4c/0x170
[bluetooth]
[  120.766529]        [&lt;ffffffffa00b8414&gt;] sco_conn_del+0x74/0xe0
[bluetooth]
[  120.766529]        [&lt;ffffffffa00b88a2&gt;] sco_disconn_cfm+0x32/0x60
[bluetooth]
[  120.766529]        [&lt;ffffffffa0093a82&gt;]
hci_disconn_complete_evt.isra.53+0x242/0x390 [bluetooth]
[  120.766529]        [&lt;ffffffffa009d747&gt;] hci_event_packet+0x617/0xfb0
[bluetooth]
[  120.766529]        [&lt;ffffffffa008aa68&gt;] hci_rx_work+0x2c8/0x890
[bluetooth]
[  120.766529]        [&lt;ffffffff81047db7&gt;] process_one_work+0x197/0x460
[  120.766529]        [&lt;ffffffff810489d6&gt;] worker_thread+0x126/0x2d0
[  120.766529]        [&lt;ffffffff8104ee4d&gt;] kthread+0x9d/0xb0
[  120.766529]        [&lt;ffffffff813c4294&gt;] kernel_thread_helper+0x4/0x10
[  120.766529]
[  120.766529] other info that might help us debug this:
[  120.766529]
[  120.766529]  Possible unsafe locking scenario:
[  120.766529]
[  120.766529]        CPU0                    CPU1
[  120.766529]        ----                    ----
[  120.766529]   lock(slock-AF_BLUETOOTH-BTPROTO_SCO);
[  120.766529]
lock(&amp;(&amp;conn-&gt;lock)-&gt;rlock#2);
[  120.766529]
lock(slock-AF_BLUETOOTH-BTPROTO_SCO);
[  120.766529]   lock(&amp;(&amp;conn-&gt;lock)-&gt;rlock#2);
[  120.766529]
[  120.766529]  *** DEADLOCK ***

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Added /proc/net/sco via bt_procfs_init()</title>
<updated>2012-08-06T18:03:00+00:00</updated>
<author>
<name>Masatake YAMATO</name>
<email>yamato@redhat.com</email>
</author>
<published>2012-07-25T16:30:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=de9b9212c7fd3e87608194f1c73fc06cd6cc7dfb'/>
<id>de9b9212c7fd3e87608194f1c73fc06cd6cc7dfb</id>
<content type='text'>
Added /proc/net/sco via bt_procfs_init().

Signed-off-by: Masatake YAMATO &lt;yamato@redhat.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added /proc/net/sco via bt_procfs_init().

Signed-off-by: Masatake YAMATO &lt;yamato@redhat.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Make connect / disconnect cfm functions return void</title>
<updated>2012-08-06T18:02:58+00:00</updated>
<author>
<name>Andrei Emeltchenko</name>
<email>andrei.emeltchenko@intel.com</email>
</author>
<published>2012-07-24T13:06:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9e66463127ff7238020c3c4e7f84dfbc23e5c2b5'/>
<id>9e66463127ff7238020c3c4e7f84dfbc23e5c2b5</id>
<content type='text'>
Return values are never used because callers hci_proto_connect_cfm
and hci_proto_disconn_cfm return void.

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@intel.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Return values are never used because callers hci_proto_connect_cfm
and hci_proto_disconn_cfm return void.

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@intel.com&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Remove unnecessary headers include</title>
<updated>2012-06-05T03:34:08+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-05-23T07:04:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8c520a59927a5600973782505dbb750d985057c4'/>
<id>8c520a59927a5600973782505dbb750d985057c4</id>
<content type='text'>
Most of the include were unnecessary or already included by some other
header.
Replace module.h by export.h where possible.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of the include were unnecessary or already included by some other
header.
Replace module.h by export.h where possible.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Remove 'register' usage from the subsystem</title>
<updated>2012-06-05T03:34:07+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-05-23T07:04:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fc5fef615a963c8b13abf0bbc2a8e8d7c3fd1ffb'/>
<id>fc5fef615a963c8b13abf0bbc2a8e8d7c3fd1ffb</id>
<content type='text'>
Let the compiler chooses what is best.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let the compiler chooses what is best.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Remove most of the inline usage</title>
<updated>2012-06-05T03:34:07+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-05-23T07:04:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6039aa73a1323edc2d6d93a22505d4dc28f38e3f'/>
<id>6039aa73a1323edc2d6d93a22505d4dc28f38e3f</id>
<content type='text'>
Only obvious cases were left as inline, mostly oneline functions.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only obvious cases were left as inline, mostly oneline functions.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix coding style in sco.c</title>
<updated>2012-06-05T03:34:01+00:00</updated>
<author>
<name>Gustavo Padovan</name>
<email>gustavo.padovan@collabora.co.uk</email>
</author>
<published>2012-05-17T03:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=be7c2b99e9cde90e398f61121f3f45d65d5644c7'/>
<id>be7c2b99e9cde90e398f61121f3f45d65d5644c7</id>
<content type='text'>
Follow the net subsystem rules.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow the net subsystem rules.

Signed-off-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Add dst_type parameter to hci_connect</title>
<updated>2012-05-09T04:40:45+00:00</updated>
<author>
<name>Andre Guedes</name>
<email>andre.guedes@openbossa.org</email>
</author>
<published>2012-04-25T00:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b12f62cfd9f46ac70013ce661640174b489efd39'/>
<id>b12f62cfd9f46ac70013ce661640174b489efd39</id>
<content type='text'>
This patch adds the dst_type parameter to hci_connect function.
Instead of searching the address type in advertising cache, we
use the dst_type parameter to establish LE connections.

The dst_type is ignored for BR/EDR connection establishment.

Signed-off-by: Andre Guedes &lt;andre.guedes@openbossa.org&gt;
Acked-by: Johan Hedberg &lt;johan.hedberg@intel.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>
This patch adds the dst_type parameter to hci_connect function.
Instead of searching the address type in advertising cache, we
use the dst_type parameter to establish LE connections.

The dst_type is ignored for BR/EDR connection establishment.

Signed-off-by: Andre Guedes &lt;andre.guedes@openbossa.org&gt;
Acked-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Restrict to one SCO listening socket</title>
<updated>2012-05-09T04:40:39+00:00</updated>
<author>
<name>Marcel Holtmann</name>
<email>marcel@holtmann.org</email>
</author>
<published>2012-04-19T12:37:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fb3340594bd6630c27e31ddeff25b7002fb4558e'/>
<id>fb3340594bd6630c27e31ddeff25b7002fb4558e</id>
<content type='text'>
The SCO sockets are only identified by its address. So only allow one
SCO socket in listening state per address or BDADDR_ANY.

Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo Padovan &lt;gustavo@padovan.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The SCO sockets are only identified by its address. So only allow one
SCO socket in listening state per address or BDADDR_ANY.

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