<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net/bluetooth/rfcomm, branch v3.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Bluetooth: Clear RFCOMM session timer when disconnecting last channel</title>
<updated>2011-12-19T00:29:35+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2011-12-07T00:23:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=79e654787c67f6b05f73366ff8ccac72ba7249e6'/>
<id>79e654787c67f6b05f73366ff8ccac72ba7249e6</id>
<content type='text'>
When the last RFCOMM data channel is closed, a timer is normally set
up to disconnect the control channel at a later time.  If the control
channel disconnect command is sent with the timer pending, the timer
needs to be cancelled.

If the timer is not cancelled in this situation, the reference
counting logic for the RFCOMM session does not work correctly when the
remote device closes the L2CAP connection.  The session is freed at
the wrong time, leading to a kernel panic.

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>
When the last RFCOMM data channel is closed, a timer is normally set
up to disconnect the control channel at a later time.  If the control
channel disconnect command is sent with the timer pending, the timer
needs to be cancelled.

If the timer is not cancelled in this situation, the reference
counting logic for the RFCOMM session does not work correctly when the
remote device closes the L2CAP connection.  The session is freed at
the wrong time, leading to a kernel panic.

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>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth</title>
<updated>2011-11-02T19:15:51+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-11-02T19:15:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c125d5e846894043361c0c89c1140be8fd6600b7'/>
<id>c125d5e846894043361c0c89c1140be8fd6600b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of ra.kernel.org:/pub/scm/linux/kernel/git/davem/net</title>
<updated>2011-10-24T22:18:09+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-10-24T22:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1805b2f04855f07afe3a71d620a68f483b0ed74f'/>
<id>1805b2f04855f07afe3a71d620a68f483b0ed74f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bluetooth: Properly clone LSM attributes to newly created child connections</title>
<updated>2011-10-19T03:36:43+00:00</updated>
<author>
<name>Paul Moore</name>
<email>pmoore@redhat.com</email>
</author>
<published>2011-10-07T09:40:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6230c9b4f8957c8938ee4cf2d03166d3c2dc89de'/>
<id>6230c9b4f8957c8938ee4cf2d03166d3c2dc89de</id>
<content type='text'>
The Bluetooth stack has internal connection handlers for all of the various
Bluetooth protocols, and unfortunately, they are currently lacking the LSM
hooks found in the core network stack's connection handlers.  I say
unfortunately, because this can cause problems for users who have have an
LSM enabled and are using certain Bluetooth devices.  See one problem
report below:

 * http://bugzilla.redhat.com/show_bug.cgi?id=741703

In order to keep things simple at this point in time, this patch fixes the
problem by cloning the parent socket's LSM attributes to the newly created
child socket.  If we decide we need a more elaborate LSM marking mechanism
for Bluetooth (I somewhat doubt this) we can always revisit this decision
in the future.

Reported-by: James M. Cape &lt;jcape@ignore-your.tv&gt;
Signed-off-by: Paul Moore &lt;pmoore@redhat.com&gt;
Acked-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Bluetooth stack has internal connection handlers for all of the various
Bluetooth protocols, and unfortunately, they are currently lacking the LSM
hooks found in the core network stack's connection handlers.  I say
unfortunately, because this can cause problems for users who have have an
LSM enabled and are using certain Bluetooth devices.  See one problem
report below:

 * http://bugzilla.redhat.com/show_bug.cgi?id=741703

In order to keep things simple at this point in time, this patch fixes the
problem by cloning the parent socket's LSM attributes to the newly created
child socket.  If we decide we need a more elaborate LSM marking mechanism
for Bluetooth (I somewhat doubt this) we can always revisit this decision
in the future.

Reported-by: James M. Cape &lt;jcape@ignore-your.tv&gt;
Signed-off-by: Paul Moore &lt;pmoore@redhat.com&gt;
Acked-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: rfcomm: Fix sleep in invalid context in rfcomm_security_cfm</title>
<updated>2011-10-14T18:04:54+00:00</updated>
<author>
<name>Szymon Janc</name>
<email>szymon.janc@tieto.com</email>
</author>
<published>2011-09-26T12:19:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=88149db4948ef90cf6220d76e34955e46c2ff9f9'/>
<id>88149db4948ef90cf6220d76e34955e46c2ff9f9</id>
<content type='text'>
This was triggered by turning off encryption on ACL link when rfcomm
was using high security. rfcomm_security_cfm (which is called from rx
task) was closing DLC and this involves sending disconnect message
(and locking socket).

Move closing DLC to rfcomm_process_dlcs and only flag DLC for closure
in rfcomm_security_cfm.

BUG: sleeping function called from invalid context at net/core/sock.c:2032
in_atomic(): 1, irqs_disabled(): 0, pid: 1788, name: kworker/0:3
[&lt;c0068a08&gt;] (unwind_backtrace+0x0/0x108) from [&lt;c05e25dc&gt;] (dump_stack+0x20/0x24)
[&lt;c05e25dc&gt;] (dump_stack+0x20/0x24) from [&lt;c0087ba8&gt;] (__might_sleep+0x110/0x12c)
[&lt;c0087ba8&gt;] (__might_sleep+0x110/0x12c) from [&lt;c04801d8&gt;] (lock_sock_nested+0x2c/0x64)
[&lt;c04801d8&gt;] (lock_sock_nested+0x2c/0x64) from [&lt;c05670c8&gt;] (l2cap_sock_sendmsg+0x58/0xcc)
[&lt;c05670c8&gt;] (l2cap_sock_sendmsg+0x58/0xcc) from [&lt;c047cf6c&gt;] (sock_sendmsg+0xb0/0xd0)
[&lt;c047cf6c&gt;] (sock_sendmsg+0xb0/0xd0) from [&lt;c047cfc8&gt;] (kernel_sendmsg+0x3c/0x44)
[&lt;c047cfc8&gt;] (kernel_sendmsg+0x3c/0x44) from [&lt;c056b0e8&gt;] (rfcomm_send_frame+0x50/0x58)
[&lt;c056b0e8&gt;] (rfcomm_send_frame+0x50/0x58) from [&lt;c056b168&gt;] (rfcomm_send_disc+0x78/0x80)
[&lt;c056b168&gt;] (rfcomm_send_disc+0x78/0x80) from [&lt;c056b9f4&gt;] (__rfcomm_dlc_close+0x2d0/0x2fc)
[&lt;c056b9f4&gt;] (__rfcomm_dlc_close+0x2d0/0x2fc) from [&lt;c056bbac&gt;] (rfcomm_security_cfm+0x140/0x1e0)
[&lt;c056bbac&gt;] (rfcomm_security_cfm+0x140/0x1e0) from [&lt;c0555ec0&gt;] (hci_event_packet+0x1ce8/0x4d84)
[&lt;c0555ec0&gt;] (hci_event_packet+0x1ce8/0x4d84) from [&lt;c0550380&gt;] (hci_rx_task+0x1d0/0x2d0)
[&lt;c0550380&gt;] (hci_rx_task+0x1d0/0x2d0) from [&lt;c009ee04&gt;] (tasklet_action+0x138/0x1e4)
[&lt;c009ee04&gt;] (tasklet_action+0x138/0x1e4) from [&lt;c009f21c&gt;] (__do_softirq+0xcc/0x274)
[&lt;c009f21c&gt;] (__do_softirq+0xcc/0x274) from [&lt;c009f6c0&gt;] (do_softirq+0x60/0x6c)
[&lt;c009f6c0&gt;] (do_softirq+0x60/0x6c) from [&lt;c009f794&gt;] (local_bh_enable_ip+0xc8/0xd4)
[&lt;c009f794&gt;] (local_bh_enable_ip+0xc8/0xd4) from [&lt;c05e5804&gt;] (_raw_spin_unlock_bh+0x48/0x4c)
[&lt;c05e5804&gt;] (_raw_spin_unlock_bh+0x48/0x4c) from [&lt;c040d470&gt;] (data_from_chip+0xf4/0xaec)
[&lt;c040d470&gt;] (data_from_chip+0xf4/0xaec) from [&lt;c04136c0&gt;] (send_skb_to_core+0x40/0x178)
[&lt;c04136c0&gt;] (send_skb_to_core+0x40/0x178) from [&lt;c04139f4&gt;] (cg2900_hu_receive+0x15c/0x2d0)
[&lt;c04139f4&gt;] (cg2900_hu_receive+0x15c/0x2d0) from [&lt;c0414cb8&gt;] (hci_uart_tty_receive+0x74/0xa0)
[&lt;c0414cb8&gt;] (hci_uart_tty_receive+0x74/0xa0) from [&lt;c02cbd9c&gt;] (flush_to_ldisc+0x188/0x198)
[&lt;c02cbd9c&gt;] (flush_to_ldisc+0x188/0x198) from [&lt;c00b2774&gt;] (process_one_work+0x144/0x4b8)
[&lt;c00b2774&gt;] (process_one_work+0x144/0x4b8) from [&lt;c00b2e8c&gt;] (worker_thread+0x198/0x468)
[&lt;c00b2e8c&gt;] (worker_thread+0x198/0x468) from [&lt;c00b9bc8&gt;] (kthread+0x98/0xa0)
[&lt;c00b9bc8&gt;] (kthread+0x98/0xa0) from [&lt;c0061744&gt;] (kernel_thread_exit+0x0/0x8)

Signed-off-by: Szymon Janc &lt;szymon.janc@tieto.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>
This was triggered by turning off encryption on ACL link when rfcomm
was using high security. rfcomm_security_cfm (which is called from rx
task) was closing DLC and this involves sending disconnect message
(and locking socket).

Move closing DLC to rfcomm_process_dlcs and only flag DLC for closure
in rfcomm_security_cfm.

BUG: sleeping function called from invalid context at net/core/sock.c:2032
in_atomic(): 1, irqs_disabled(): 0, pid: 1788, name: kworker/0:3
[&lt;c0068a08&gt;] (unwind_backtrace+0x0/0x108) from [&lt;c05e25dc&gt;] (dump_stack+0x20/0x24)
[&lt;c05e25dc&gt;] (dump_stack+0x20/0x24) from [&lt;c0087ba8&gt;] (__might_sleep+0x110/0x12c)
[&lt;c0087ba8&gt;] (__might_sleep+0x110/0x12c) from [&lt;c04801d8&gt;] (lock_sock_nested+0x2c/0x64)
[&lt;c04801d8&gt;] (lock_sock_nested+0x2c/0x64) from [&lt;c05670c8&gt;] (l2cap_sock_sendmsg+0x58/0xcc)
[&lt;c05670c8&gt;] (l2cap_sock_sendmsg+0x58/0xcc) from [&lt;c047cf6c&gt;] (sock_sendmsg+0xb0/0xd0)
[&lt;c047cf6c&gt;] (sock_sendmsg+0xb0/0xd0) from [&lt;c047cfc8&gt;] (kernel_sendmsg+0x3c/0x44)
[&lt;c047cfc8&gt;] (kernel_sendmsg+0x3c/0x44) from [&lt;c056b0e8&gt;] (rfcomm_send_frame+0x50/0x58)
[&lt;c056b0e8&gt;] (rfcomm_send_frame+0x50/0x58) from [&lt;c056b168&gt;] (rfcomm_send_disc+0x78/0x80)
[&lt;c056b168&gt;] (rfcomm_send_disc+0x78/0x80) from [&lt;c056b9f4&gt;] (__rfcomm_dlc_close+0x2d0/0x2fc)
[&lt;c056b9f4&gt;] (__rfcomm_dlc_close+0x2d0/0x2fc) from [&lt;c056bbac&gt;] (rfcomm_security_cfm+0x140/0x1e0)
[&lt;c056bbac&gt;] (rfcomm_security_cfm+0x140/0x1e0) from [&lt;c0555ec0&gt;] (hci_event_packet+0x1ce8/0x4d84)
[&lt;c0555ec0&gt;] (hci_event_packet+0x1ce8/0x4d84) from [&lt;c0550380&gt;] (hci_rx_task+0x1d0/0x2d0)
[&lt;c0550380&gt;] (hci_rx_task+0x1d0/0x2d0) from [&lt;c009ee04&gt;] (tasklet_action+0x138/0x1e4)
[&lt;c009ee04&gt;] (tasklet_action+0x138/0x1e4) from [&lt;c009f21c&gt;] (__do_softirq+0xcc/0x274)
[&lt;c009f21c&gt;] (__do_softirq+0xcc/0x274) from [&lt;c009f6c0&gt;] (do_softirq+0x60/0x6c)
[&lt;c009f6c0&gt;] (do_softirq+0x60/0x6c) from [&lt;c009f794&gt;] (local_bh_enable_ip+0xc8/0xd4)
[&lt;c009f794&gt;] (local_bh_enable_ip+0xc8/0xd4) from [&lt;c05e5804&gt;] (_raw_spin_unlock_bh+0x48/0x4c)
[&lt;c05e5804&gt;] (_raw_spin_unlock_bh+0x48/0x4c) from [&lt;c040d470&gt;] (data_from_chip+0xf4/0xaec)
[&lt;c040d470&gt;] (data_from_chip+0xf4/0xaec) from [&lt;c04136c0&gt;] (send_skb_to_core+0x40/0x178)
[&lt;c04136c0&gt;] (send_skb_to_core+0x40/0x178) from [&lt;c04139f4&gt;] (cg2900_hu_receive+0x15c/0x2d0)
[&lt;c04139f4&gt;] (cg2900_hu_receive+0x15c/0x2d0) from [&lt;c0414cb8&gt;] (hci_uart_tty_receive+0x74/0xa0)
[&lt;c0414cb8&gt;] (hci_uart_tty_receive+0x74/0xa0) from [&lt;c02cbd9c&gt;] (flush_to_ldisc+0x188/0x198)
[&lt;c02cbd9c&gt;] (flush_to_ldisc+0x188/0x198) from [&lt;c00b2774&gt;] (process_one_work+0x144/0x4b8)
[&lt;c00b2774&gt;] (process_one_work+0x144/0x4b8) from [&lt;c00b2e8c&gt;] (worker_thread+0x198/0x468)
[&lt;c00b2e8c&gt;] (worker_thread+0x198/0x468) from [&lt;c00b9bc8&gt;] (kthread+0x98/0xa0)
[&lt;c00b9bc8&gt;] (kthread+0x98/0xa0) from [&lt;c0061744&gt;] (kernel_thread_exit+0x0/0x8)

Signed-off-by: Szymon Janc &lt;szymon.janc@tieto.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Linearize skbs for use in BNEP, CMTP, HIDP, and RFCOMM</title>
<updated>2011-09-27T21:15:55+00:00</updated>
<author>
<name>Mat Martineau</name>
<email>mathewm@codeaurora.org</email>
</author>
<published>2011-07-22T21:53:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=449357200c5d73d80a9c42dee5dafed684b3cd17'/>
<id>449357200c5d73d80a9c42dee5dafed684b3cd17</id>
<content type='text'>
Fragmented skbs are only encountered when receiving ERTM or streaming
mode L2CAP data.  BNEP, CMTP, HIDP, and RFCOMM generally use basic
mode, but they need to handle fragments without crashing.

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>
Fragmented skbs are only encountered when receiving ERTM or streaming
mode L2CAP data.  BNEP, CMTP, HIDP, and RFCOMM generally use basic
mode, but they need to handle fragments without crashing.

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: rfcomm: Fix lost wakeups waiting to accept socket</title>
<updated>2011-08-11T22:50:26+00:00</updated>
<author>
<name>Peter Hurley</name>
<email>peter@hurleysoftware.com</email>
</author>
<published>2011-07-24T04:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=950e2d51e866623e4c360280aa63b85ab66d3403'/>
<id>950e2d51e866623e4c360280aa63b85ab66d3403</id>
<content type='text'>
Fix race conditions which can cause lost wakeups (or missed
signals) while waiting to accept an rfcomm socket connection.

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.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>
Fix race conditions which can cause lost wakeups (or missed
signals) while waiting to accept an rfcomm socket connection.

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: rfcomm: Remove unnecessary krfcommd event</title>
<updated>2011-08-11T22:50:26+00:00</updated>
<author>
<name>Peter Hurley</name>
<email>peter@hurleysoftware.com</email>
</author>
<published>2011-07-24T04:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e5842cdb0f4f2c68f6acd39e286e5d10d8c073e8'/>
<id>e5842cdb0f4f2c68f6acd39e286e5d10d8c073e8</id>
<content type='text'>
Removed superfluous event handling which was used to signal
that the rfcomm kthread had been woken. This appears to have been
used to prevent lost wakeups. Correctly ordering when the task
state is set to TASK_INTERRUPTIBLE is sufficient to prevent lost wakeups.

To prevent wakeups which occurred prior to initially setting
TASK_INTERRUPTIBLE from being lost, the main work of the thread loop -
rfcomm_process_sessions() - is performed prior to sleeping.

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.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>
Removed superfluous event handling which was used to signal
that the rfcomm kthread had been woken. This appears to have been
used to prevent lost wakeups. Correctly ordering when the task
state is set to TASK_INTERRUPTIBLE is sufficient to prevent lost wakeups.

To prevent wakeups which occurred prior to initially setting
TASK_INTERRUPTIBLE from being lost, the main work of the thread loop -
rfcomm_process_sessions() - is performed prior to sleeping.

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge master.kernel.org:/pub/scm/linux/kernel/git/padovan/bluetooth-2.6</title>
<updated>2011-06-09T19:33:54+00:00</updated>
<author>
<name>Gustavo F. Padovan</name>
<email>padovan@profusion.mobi</email>
</author>
<published>2011-06-09T19:33:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=448f2627c169092d2091a1be22feb6a7775f6201'/>
<id>448f2627c169092d2091a1be22feb6a7775f6201</id>
<content type='text'>
Conflicts:
	net/bluetooth/rfcomm/sock.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	net/bluetooth/rfcomm/sock.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Silence DEBUG_STRICT_USER_COPY_CHECKS=y warning</title>
<updated>2011-06-09T18:30:01+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2011-05-12T23:50:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d0fad89da9801b3945d2ee7243ecbc75b3da6f09'/>
<id>d0fad89da9801b3945d2ee7243ecbc75b3da6f09</id>
<content type='text'>
Enabling DEBUG_STRICT_USER_COPY_CHECKS causes the following
warning:

In function 'copy_from_user',
    inlined from 'rfcomm_sock_setsockopt' at
    net/bluetooth/rfcomm/sock.c:705:
arch/x86/include/asm/uaccess_64.h:65:
warning: call to 'copy_from_user_overflow' declared with
attribute warning: copy_from_user() buffer size is not provably
correct

presumably due to buf_size being signed causing GCC to fail to
see that buf_size can't become negative.

Cc: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Cc: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@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>
Enabling DEBUG_STRICT_USER_COPY_CHECKS causes the following
warning:

In function 'copy_from_user',
    inlined from 'rfcomm_sock_setsockopt' at
    net/bluetooth/rfcomm/sock.c:705:
arch/x86/include/asm/uaccess_64.h:65:
warning: call to 'copy_from_user_overflow' declared with
attribute warning: copy_from_user() buffer size is not provably
correct

presumably due to buf_size being signed causing GCC to fail to
see that buf_size can't become negative.

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