Bluetooth: Automate remote name requests
authorJohan Hedberg <johan.hedberg@nokia.com>
Thu, 18 Nov 2010 20:22:29 +0000 (22:22 +0200)
committerGustavo F. Padovan <padovan@profusion.mobi>
Wed, 1 Dec 2010 23:04:35 +0000 (21:04 -0200)
commit127178d24c7eb2df53b1ba2b6f6f743e88178a1b
treec7ad18dcce00c21d41971fdb1cace5699549e3a0
parent392599b95d76f4f3102d8614bdc1957795cd1a3a
Bluetooth: Automate remote name requests

In Bluetooth there are no automatic updates of remote device names when
they get changed on the remote side. Instead, it is a good idea to do a
manual name request when a new connection gets created (for whatever
reason) since at this point it is very cheap (no costly baseband
connection creation needed just for the sake of the name request).

So far userspace has been responsible for this extra name request but
tighter control is needed in order not to flood Bluetooth controllers
with two many commands during connection creation. It has been shown
that some controllers simply fail to function correctly if they get too
many (almost) simultaneous commands during connection creation. The
simplest way to acheive better control of these commands is to move
their sending completely to the kernel side.

This patch inserts name requests into the sequence of events that the
kernel performs during connection creation. It does this after the
remote features have been successfully requested and before any pending
authentication requests are performed. The code will work sub-optimally
with userspace versions that still do the name requesting themselves (it
shouldn't break anything though) so it is recommended to combine this
with a userspace software version that doesn't have automated name
requests.

Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/hci_event.c