<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/net/bluetooth/rfcomm, branch linux-tip</title>
<subtitle>The LITMUS^RT kernel.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/'/>
<entry>
<title>Bluetooth: fix not setting security level when creating a rfcomm session</title>
<updated>2010-11-09T02:56:10+00:00</updated>
<author>
<name>Luiz Augusto von Dentz</name>
<email>luiz.dentz-von@nokia.com</email>
</author>
<published>2010-08-19T11:06:10+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=63ce0900d79645c714de6c8b66d8040670068c9e'/>
<id>63ce0900d79645c714de6c8b66d8040670068c9e</id>
<content type='text'>
This cause 'No Bonding' to be used if userspace has not yet been paired
with remote device since the l2cap socket used to create the rfcomm
session does not have any security level set.

Signed-off-by: Luiz Augusto von Dentz &lt;luiz.dentz-von@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.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 cause 'No Bonding' to be used if userspace has not yet been paired
with remote device since the l2cap socket used to create the rfcomm
session does not have any security level set.

Signed-off-by: Luiz Augusto von Dentz &lt;luiz.dentz-von@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6</title>
<updated>2010-10-23T18:47:02+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-10-23T18:47:02+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0'/>
<id>5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
  vlan: Calling vlan_hwaccel_do_receive() is always valid.
  tproxy: use the interface primary IP address as a default value for --on-ip
  tproxy: added IPv6 support to the socket match
  cxgb3: function namespace cleanup
  tproxy: added IPv6 support to the TPROXY target
  tproxy: added IPv6 socket lookup function to nf_tproxy_core
  be2net: Changes to use only priority codes allowed by f/w
  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
  tproxy: added tproxy sockopt interface in the IPV6 layer
  tproxy: added udp6_lib_lookup function
  tproxy: added const specifiers to udp lookup functions
  tproxy: split off ipv6 defragmentation to a separate module
  l2tp: small cleanup
  nf_nat: restrict ICMP translation for embedded header
  can: mcp251x: fix generation of error frames
  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
  can-raw: add msg_flags to distinguish local traffic
  9p: client code cleanup
  rds: make local functions/variables static
  ...

Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
drivers/net/wireless/ath/ath9k/debug.c as per David
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
  vlan: Calling vlan_hwaccel_do_receive() is always valid.
  tproxy: use the interface primary IP address as a default value for --on-ip
  tproxy: added IPv6 support to the socket match
  cxgb3: function namespace cleanup
  tproxy: added IPv6 support to the TPROXY target
  tproxy: added IPv6 socket lookup function to nf_tproxy_core
  be2net: Changes to use only priority codes allowed by f/w
  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
  tproxy: added tproxy sockopt interface in the IPV6 layer
  tproxy: added udp6_lib_lookup function
  tproxy: added const specifiers to udp lookup functions
  tproxy: split off ipv6 defragmentation to a separate module
  l2tp: small cleanup
  nf_nat: restrict ICMP translation for embedded header
  can: mcp251x: fix generation of error frames
  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
  can-raw: add msg_flags to distinguish local traffic
  9p: client code cleanup
  rds: make local functions/variables static
  ...

Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
drivers/net/wireless/ath/ath9k/debug.c as per David
</pre>
</div>
</content>
</entry>
<entry>
<title>tty: icount changeover for other main devices</title>
<updated>2010-10-22T17:20:05+00:00</updated>
<author>
<name>Alan Cox</name>
<email>alan@linux.intel.com</email>
</author>
<published>2010-09-16T17:21:52+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=0587102cf9f427c185bfdeb2cef41e13ee0264b1'/>
<id>0587102cf9f427c185bfdeb2cef41e13ee0264b1</id>
<content type='text'>
Again basically cut and paste

Convert the main driver set to use the hooks for GICOUNT

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Again basically cut and paste

Convert the main driver set to use the hooks for GICOUNT

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: clean up rfcomm code</title>
<updated>2010-10-12T15:44:53+00:00</updated>
<author>
<name>Andrei Emeltchenko</name>
<email>andrei.emeltchenko@nokia.com</email>
</author>
<published>2010-10-01T09:05:11+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=534c92fde74c8d2143fc15b5f1d957f42cb43570'/>
<id>534c92fde74c8d2143fc15b5f1d957f42cb43570</id>
<content type='text'>
Remove dead code and unused rfcomm thread events

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.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>
Remove dead code and unused rfcomm thread events

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: make batostr() print in the right order</title>
<updated>2010-10-12T15:44:52+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2010-09-03T21:29:46+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d6b2eb2f893547d7488d31a7088d78dd77ab5995'/>
<id>d6b2eb2f893547d7488d31a7088d78dd77ab5995</id>
<content type='text'>
The Bluetooth core uses the the BD_ADDR in the opposite order from the
human readable order. So we are changing batostr() to print in the
correct order and then removing some baswap(), as they are not needed
anymore.

Acked-by: Marcel Holtmann &lt;marcel@holtmann.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>
The Bluetooth core uses the the BD_ADDR in the opposite order from the
human readable order. So we are changing batostr() to print in the
correct order and then removing some baswap(), as they are not needed
anymore.

Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: remove extra newline from debug output</title>
<updated>2010-10-12T15:44:51+00:00</updated>
<author>
<name>Andrei Emeltchenko</name>
<email>andrei.emeltchenko@nokia.com</email>
</author>
<published>2010-09-08T13:26:53+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=5017d8dde13313cab1e607379536a7930ed682b0'/>
<id>5017d8dde13313cab1e607379536a7930ed682b0</id>
<content type='text'>
Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.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>
Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Ville Tervo &lt;ville.tervo@nokia.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Use common SOCK_STREAM receive code in RFCOMM</title>
<updated>2010-10-12T15:44:51+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2010-09-08T17:05:28+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=3d7d01dffec4a6757ed1e3182f01c7ef5caa2539'/>
<id>3d7d01dffec4a6757ed1e3182f01c7ef5caa2539</id>
<content type='text'>
To reduce code duplication, have rfcomm_sock_recvmsg() call
bt_sock_stream_recvmsg().  The common bt_sock_stream_recvmsg()
code is nearly identical, with the RFCOMM-specific functionality
for deferred setup and connection unthrottling left in
rfcomm_sock_recvmsg().

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.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>
To reduce code duplication, have rfcomm_sock_recvmsg() call
bt_sock_stream_recvmsg().  The common bt_sock_stream_recvmsg()
code is nearly identical, with the RFCOMM-specific functionality
for deferred setup and connection unthrottling left in
rfcomm_sock_recvmsg().

Signed-off-by: Mat Martineau &lt;mathewm@codeaurora.org&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix RFCOMM RPN negotiation</title>
<updated>2010-10-12T15:44:51+00:00</updated>
<author>
<name>Yuri Kululin</name>
<email>ext-yuri.kululin@nokia.com</email>
</author>
<published>2010-07-23T09:57:12+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=08601469a5aac8b3453d8aca0b8f9bd8dfdae12c'/>
<id>08601469a5aac8b3453d8aca0b8f9bd8dfdae12c</id>
<content type='text'>
According to the ETSI 3GPP TS 07.10 the default bit rate value for RFCOMM
is 9600 bit/s. Return this bit rate in case of RPN request and accept other
sane bit rates proposed by the sender in RPM command.

Signed-off-by: Yuri Kululin &lt;ext-yuri.kululin@nokia.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.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>
According to the ETSI 3GPP TS 07.10 the default bit rate value for RFCOMM
is 9600 bit/s. Return this bit rate in case of RPN request and accept other
sane bit rates proposed by the sender in RPM command.

Signed-off-by: Yuri Kululin &lt;ext-yuri.kululin@nokia.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2010-10-11T19:30:34+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-10-11T19:30:34+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d122179a3c0fdc71b88cb9e3605f372b1651a9ff'/>
<id>d122179a3c0fdc71b88cb9e3605f372b1651a9ff</id>
<content type='text'>
Conflicts:
	net/core/ethtool.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	net/core/ethtool.c
</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='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.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>
</feed>
