An error occurred fetching the project authors.
- 04 Apr, 2011 1 commit
-
-
Gustavo F. Padovan authored
It is unnecessary, once we are always in interrupt context. Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 31 Mar, 2011 5 commits
-
-
Thomas Gleixner authored
After we made debugobjects working again, we got the following: WARNING: at lib/debugobjects.c:262 debug_print_object+0x8e/0xb0() Hardware name: System Product Name ODEBUG: free active (active state 0) object type: timer_list hint: hci_cmd_timer+0x0/0x60 Pid: 2125, comm: dmsetup Tainted: G W 2.6.38-06707-gc62b3898 #110375 Call Trace: [<ffffffff8104700a>] warn_slowpath_common+0x7a/0xb0 [<ffffffff810470b6>] warn_slowpath_fmt+0x46/0x50 [<ffffffff812d3a5e>] debug_print_object+0x8e/0xb0 [<ffffffff81bd8810>] ? hci_cmd_timer+0x0/0x60 [<ffffffff812d4685>] debug_check_no_obj_freed+0x125/0x230 [<ffffffff810f1063>] ? check_object+0xb3/0x2b0 [<ffffffff810f3630>] kfree+0x150/0x190 [<ffffffff81be4d06>] ? bt_host_release+0x16/0x20 [<ffffffff81be4d06>] bt_host_release+0x16/0x20 [<ffffffff813a1907>] device_release+0x27/0xa0 [<ffffffff812c519c>] kobject_release+0x4c/0xa0 [<ffffffff812c5150>] ? kobject_release+0x0/0xa0 [<ffffffff812c61f6>] kref_put+0x36/0x70 [<ffffffff812c4d37>] kobject_put+0x27/0x60 [<ffffffff813a21f7>] put_device+0x17/0x20 [<ffffffff81bda4f9>] hci_free_dev+0x29/0x30 [<ffffffff81928be6>] vhci_release+0x36/0x70 [<ffffffff810fb366>] fput+0xd6/0x1f0 [<ffffffff810f8fe6>] filp_close+0x66/0x90 [<ffffffff810f90a9>] sys_close+0x99/0xf0 [<ffffffff81d4c96b>] system_call_fastpath+0x16/0x1b That timer was introduced with commit 6bd32326(Bluetooth: Use proper timer for hci command timout) Timer seems to be running when the thing is closed. Removing the timer unconditionally fixes the problem. And yes, it needs to be fixed before the HCI_UP check. Signed-off-by:
Thomas Gleixner <tglx@linutronix.de> Tested-by:
Ingo Molnar <mingo@elte.hu> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Gustavo F. Padovan authored
We can't send new commands before a cmd_complete for the HCI_RESET command shows up. Reported-by:
Mikko Vinni <mmvinni@yahoo.com> Reported-by:
Justin P. Mattock <justinmattock@gmail.com> Reported-by:
Ed Tomlinson <edt@aei.ca> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi> Tested-by:
Justin P. Mattock <justinmattock@gmail.com> Tested-by:
Mikko Vinni <mmvinni@yahoo.com> Tested-by:
Ed Tomlinson <edt@aei.ca>
-
Szymon Janc authored
This patch adds commands to add and remove remote OOB data to the managment interface. Remote data is stored in kernel and can be used by corresponding HCI commands and events when needed. Signed-off-by:
Szymon Janc <szymon.janc@tieto.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Gustavo F. Padovan authored
hci_notify() doesn't need declaration first. Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Lucas De Marchi authored
Fixes generated by 'codespell' and manually reviewed. Signed-off-by:
Lucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 24 Mar, 2011 2 commits
-
-
Thomas Gleixner authored
After we made debugobjects working again, we got the following: WARNING: at lib/debugobjects.c:262 debug_print_object+0x8e/0xb0() Hardware name: System Product Name ODEBUG: free active (active state 0) object type: timer_list hint: hci_cmd_timer+0x0/0x60 Pid: 2125, comm: dmsetup Tainted: G W 2.6.38-06707-gc62b3898 #110375 Call Trace: [<ffffffff8104700a>] warn_slowpath_common+0x7a/0xb0 [<ffffffff810470b6>] warn_slowpath_fmt+0x46/0x50 [<ffffffff812d3a5e>] debug_print_object+0x8e/0xb0 [<ffffffff81bd8810>] ? hci_cmd_timer+0x0/0x60 [<ffffffff812d4685>] debug_check_no_obj_freed+0x125/0x230 [<ffffffff810f1063>] ? check_object+0xb3/0x2b0 [<ffffffff810f3630>] kfree+0x150/0x190 [<ffffffff81be4d06>] ? bt_host_release+0x16/0x20 [<ffffffff81be4d06>] bt_host_release+0x16/0x20 [<ffffffff813a1907>] device_release+0x27/0xa0 [<ffffffff812c519c>] kobject_release+0x4c/0xa0 [<ffffffff812c5150>] ? kobject_release+0x0/0xa0 [<ffffffff812c61f6>] kref_put+0x36/0x70 [<ffffffff812c4d37>] kobject_put+0x27/0x60 [<ffffffff813a21f7>] put_device+0x17/0x20 [<ffffffff81bda4f9>] hci_free_dev+0x29/0x30 [<ffffffff81928be6>] vhci_release+0x36/0x70 [<ffffffff810fb366>] fput+0xd6/0x1f0 [<ffffffff810f8fe6>] filp_close+0x66/0x90 [<ffffffff810f90a9>] sys_close+0x99/0xf0 [<ffffffff81d4c96b>] system_call_fastpath+0x16/0x1b That timer was introduced with commit 6bd32326(Bluetooth: Use proper timer for hci command timout) Timer seems to be running when the thing is closed. Removing the timer unconditionally fixes the problem. And yes, it needs to be fixed before the HCI_UP check. Signed-off-by:
Thomas Gleixner <tglx@linutronix.de> Tested-by:
Ingo Molnar <mingo@elte.hu> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Gustavo F. Padovan authored
We can't send new commands before a cmd_complete for the HCI_RESET command shows up. Reported-by:
Mikko Vinni <mmvinni@yahoo.com> Reported-by:
Justin P. Mattock <justinmattock@gmail.com> Reported-by:
Ed Tomlinson <edt@aei.ca> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi> Tested-by:
Justin P. Mattock <justinmattock@gmail.com> Tested-by:
Mikko Vinni <mmvinni@yahoo.com> Tested-by:
Ed Tomlinson <edt@aei.ca>
-
- 17 Feb, 2011 1 commit
-
-
Szymon Janc authored
Signed-off-by:
Szymon Janc <szymon.janc@tieto.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 16 Feb, 2011 4 commits
-
-
Ville Tervo authored
Use proper timer instead of hci command flow control to timeout failed hci commands. Otherwise stack ends up sending commands when flow control is used to block new commands. 2010-09-01 18:29:41.592132 < HCI Command: Remote Name Request (0x01|0x0019) plen 10 bdaddr 00:16:CF:E1:C7:D7 mode 2 clkoffset 0x0000 2010-09-01 18:29:41.592681 > HCI Event: Command Status (0x0f) plen 4 Remote Name Request (0x01|0x0019) status 0x00 ncmd 0 2010-09-01 18:29:51.022033 < HCI Command: Remote Name Request Cancel (0x01|0x001a) plen 6 bdaddr 00:16:CF:E1:C7:D7 Signed-off-by:
Ville Tervo <ville.tervo@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Gustavo F. Padovan authored
If the fail happens the HCI del_timer may timeout after the the hci dev unregister. This lead to a kernel crash. Reported-by:
Vinicius Costa Gomes <vinicius.gomes@openbossa.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Ville Tervo authored
Separate LE and ACL timeouts. Othervise ACL connections on non LE hw will time out after 45 secs. Signed-off-by:
Ville Tervo <ville.tervo@nokia.com> Acked-by:
Marcel Holtmann <marcel@holtmann.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Ville Tervo authored
Bluetooth chips may have separate buffers for LE traffic. This patch add support to use LE buffers provided by the chip. Signed-off-by:
Ville Tervo <ville.tervo@nokia.com> Acked-by:
Marcel Holtmann <marcel@holtmann.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 08 Feb, 2011 12 commits
-
-
Andrei Emeltchenko authored
Fix checkpatch warnings concerning assignments in if conditions. Signed-off-by:
Andrei Emeltchenko <andrei.emeltchenko@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds a new set_io_capability management command which is used to set the IO capability for Secure Simple Pairing (SSP) as well as the Security Manager Protocol (SMP). The value is per hci_dev and each hci_conn object inherits it upon creation. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds a management commands to feed the kernel with all stored link keys as well as remove specific ones or all of them. Once the load_keys command has been called the kernel takes over link key replies. A new_key event is also added to inform userspace of newly created link keys that should be stored permanently. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
User space should set the page timeout so there's no need to explicitly set it in the HCI init sequence. Even if user space fails to set it the controller default value will be used. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
The controller may have link keys in its own memory and these keys could be used for secure connections. However, since the interface to access these keys doesn't provide information about the key types (which would be needed to infer the level of security each key provides) using these keys is rather useless. Therefore, simply clear the controller side list in the initialization procedure. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
To support a more dynamic HCI initialization sequence the __hci_request behavior requires some more changes. Particularly, the init sequence should be able to have conditionals in it (sending some HCI commands depending on the outcome of a previous command) instead of being a fixed list as it is right now. The reasons for these additional requirements are the moving all previously user space driven initialization commands to the kernel side as well as the support the Low Energy controllers. To fulfull these requirements the init sequence is made the only special case for multi-command requests and req_last_cmd is renamed to init_last_cmd. The hci_send_cmd function is changed to update init_last_cmd as long as the HCI_INIT flag is set. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds methods to the management interface for userspace to notify the kernel of which services have been registered for specific adapters. This information is needed for setting the appropriate Class of Device value as well as the Extended Inquiry Response value. This patch doesn't actually implement setting of these values but just provides the storage of the UUIDs so the needed functionality can be built on top of it. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch implements a new set_pairable management command to control the pairable state of local adapters. The state is represented using a new HCI_PAIRABLE flag in the hci_dev struct. For backwards compatibility with older user space versions the HCI_PAIRABLE flag gets automatically set when the existence of an adapter is reported to user space through legacy methods and the HCI_MGMT flag is not set. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds a set_powered command to the management interface through which the powered state of local adapters can be controlled. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds support for the powered event that's used to indicate to userspace when the powered state of a local adapter changes. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch implements automatic initialization of basic information about newly registered Bluetooth adapters. E.g. the address and features are always needed so it makes sense for the kernel to automatically power on adapters and read this information. A new HCI_SETUP flag is added to track this state. In order to not consume unnecessary amounts of power if there isn't a user space available that could switch the adapter back off, a timer is added to do this automatically as long as no Bluetooth user space seems to be present. A new HCI_AUTO_OFF flag is added that user space needs to clear to avoid the automatic power off. Additionally, the management interface index_added event is moved to the end of the HCI_SETUP stage so a user space supporting the managment inteface has all the necessary information available for fetching when it gets notified of a new adapter. The HCI_DEV_REG event is kept in the same place as before since existing HCI raw socket based user space versions depend on seeing the kernels initialization sequence (hci_init_req) to determine when the adapter is ready for use. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Andrei Emeltchenko authored
Modification of Nick Pelly <npelly@google.com> patch. With Bluetooth 2.1 ACL packets can be flushable or non-flushable. This commit makes ACL data packets non-flushable by default on compatible chipsets, and adds the BT_FLUSHABLE socket option to explicitly request flushable ACL data packets for a given L2CAP socket. This is useful for A2DP data which can be safely discarded if it can not be delivered within a short time (while other ACL data should not be discarded). Note that making ACL data flushable has no effect unless the automatic flush timeout for that ACL link is changed from its default of 0 (infinite). Default packet types (for compatible chipsets): Frame 34: 13 bytes on wire (104 bits), 13 bytes captured (104 bits) Bluetooth HCI H4 Bluetooth HCI ACL Packet .... 0000 0000 0010 = Connection Handle: 0x0002 ..00 .... .... .... = PB Flag: First Non-automatically Flushable Packet (0) 00.. .... .... .... = BC Flag: Point-To-Point (0) Data Total Length: 8 Bluetooth L2CAP Packet After setting BT_FLUSHABLE (sock.setsockopt(274 /*SOL_BLUETOOTH*/, 8 /* BT_FLUSHABLE */, 1 /* flush */)) Frame 34: 13 bytes on wire (104 bits), 13 bytes captured (104 bits) Bluetooth HCI H4 Bluetooth HCI ACL Packet .... 0000 0000 0010 = Connection Handle: 0x0002 ..10 .... .... .... = PB Flag: First Automatically Flushable Packet (2) 00.. .... .... .... = BC Flag: Point-To-Point (0) Data Total Length: 8 Bluetooth L2CAP Packet Signed-off-by:
Andrei Emeltchenko <andrei.emeltchenko@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 19 Jan, 2011 1 commit
-
-
Johan Hedberg authored
The blacklist should be freed before the hci device gets unregistered. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 23 Dec, 2010 2 commits
-
-
Johan Hedberg authored
The initialization function used by hci_open_dev (hci_init_req) sends many different HCI commands. The __hci_request function should only return when all of these commands have completed (or a timeout occurs). Several of these commands cause hci_req_complete to be called which causes __hci_request to return prematurely. This patch fixes the issue by adding a new hdev->req_last_cmd variable which is set during the initialization procedure. The hci_req_complete function will no longer mark the request as complete until the command matching hdev->req_last_cmd completes. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Acked-by:
Marcel Holtmann <marcel@holtmann.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
Johan Hedberg authored
This patch adds Bluetooth Management interface events for controller addition and removal. The events correspond to the existing HCI_DEV_REG and HCI_DEV_UNREG stack internal events. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Acked-by:
Marcel Holtmann <marcel@holtmann.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 01 Dec, 2010 1 commit
-
-
Andrei Emeltchenko authored
Do not use assignment in IF condition, remove extra spaces, fixing typos, simplify code. Signed-off-by:
Andrei Emeltchenko <andrei.emeltchenko@nokia.com> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 12 Oct, 2010 1 commit
-
-
Johan Hedberg authored
Clearing the blacklist in hci_dev_do_close() would mean that user space needs to do extra work to re-block devices after a DEVDOWN-DEVUP cycle. This patch removes the clearing of the blacklist in this case and thereby saves user space from the extra work. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Acked-by:
Ville Tervo <ville.tervo@nokia.com> Acked-by:
Marcel Holtmann <marcel@holtmann.org> Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi>
-
- 31 Jul, 2010 1 commit
-
-
David Miller authored
The bdaddr in the list root is completely unused and just taking up space. Signed-off-by:
David S. Miller <davem@davemloft.net> Tested-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
- 27 Jul, 2010 1 commit
-
-
Gustavo F. Padovan authored
Testing first we avoid enter the loop when count = 0. Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
- 21 Jul, 2010 5 commits
-
-
Suraj Sumangala authored
Implemented frame reassembly implementation for reassembling fragments received from stream. Signed-off-by:
Suraj Sumangala <suraj@atheros.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
Suraj Sumangala authored
Modified packet based reassembly function hci_recv_fragment() to use hci_reassembly() Signed-off-by:
Suraj Sumangala <suraj@atheros.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
Suraj Sumangala authored
Implements feature to reassemble received HCI frames from any input stream Signed-off-by:
Suraj Sumangala <suraj@atheros.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
Suraj Sumangala authored
Additional reassembly buffer to keep track of stream reasembly Signed-off-by:
Suraj Sumangala <suraj@atheros.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
Johan Hedberg authored
In some circumstances it could be desirable to reject incoming connections on the baseband level. This patch adds this feature through two new ioctl's: HCIBLOCKADDR and HCIUNBLOCKADDR. Both take a simple Bluetooth address as a parameter. BDADDR_ANY can be used with HCIUNBLOCKADDR to remove all devices from the blacklist. Signed-off-by:
Johan Hedberg <johan.hedberg@nokia.com> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
- 18 May, 2010 1 commit
-
-
Joe Perches authored
This patch removes from net/ (but not any netfilter files) all the unnecessary return; statements that precede the last closing brace of void functions. It does not remove the returns that are immediately preceded by a label as gcc doesn't like that. Done via: $ grep -rP --include=*.[ch] -l "return;\n}" net/ | \ xargs perl -i -e 'local $/ ; while (<>) { s/\n[ \t\n]+return;\n}/\n}/g; print; }' Signed-off-by:
Joe Perches <joe@perches.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 10 May, 2010 2 commits
-
-
Marcel Holtmann authored
Instead of having a global workqueue for all controllers, it makes more sense to have a workqueue per controller. Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-
Gustavo F. Padovan authored
hci_send_acl can't fail, so we can make it void. This patch changes that and all the funcions that use hci_send_acl(). That change exposed a bug on sending connectionless data. We were not reporting the lenght send back to the user space. Signed-off-by:
Gustavo F. Padovan <padovan@profusion.mobi> Reviewed-by:
João Paulo Rechi Vita <jprvita@profusion.mobi> Signed-off-by:
Marcel Holtmann <marcel@holtmann.org>
-