- 19 6月, 2015 19 次提交
-
-
由 Florian Grandel 提交于
Now that the obsolete adv_instance is no longer being referenced anywhere in the code it can be removed without breaking the build. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
During service discovery, advertising will be disabled. This patch ensures that it is correctly being re-enabled, both for configuration made via set advertising and add advertising, once the scanning times out. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
This patch ensures that instance advertising is correctly canceled before starting a le scan. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
Advertising instances programmed while powered off should be advertised once the device is powered. This patch ensures that all combinations of setting and/or adding advertising configuration while powered off will be correctly activated on power on. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The remove_advertising() and remove_advertising_complete() functions had instance identifiers hard coded. Notably, when passing in 0x00 as an instance identifier to signal that all instances should be removed then the mgmt API would return a hard coded 0x01 rather than returning the expected value 0x00. This bug is being fixed by always referencing the instance identifier from the management API call instead. remove_advertising() is refactored to use the new dynamic advertising instance list. The logic is being changed to make multi-instance advertising actually work, notably the schedule_adv_instance() method is being referenced to make sure that other instances will continue to advertise even if one instance is being removed. The code is made more readable by factoring advertising instance management and initialization into the low-level hci_remove_adv_instance() and hci_adv_instances_clear() functions. The method now references the clear_adv_instance() helper method to remove duplicate logic and code. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The add_advertising() and add_advertising_complete() functions reference the now obsolete hdev->adv_instance struct. Both methods are being refactored to access the dynamic advertising instance list instead. This patch also introduces all logic necessary to actually deal with multiple instance advertising. Notably the mgmt_adv_inst_expired() and schedule_adv_inst() method are being referenced to schedule instances in a round robin fashion. This patch also introduces a "pending" flag into the adv_info struct. This is necessary to identify and remove recently added advertising instances when the HCI commands return with an error status code. Otherwise new advertising instances could be leaked without properly informing userspace about their existence. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The clear_adv_instance() function could not clean up multiple advertising instances previously. It is being changed to provide both, a means to clean up a single instance and cleaning up all instances at once. An additional instance parameter is being introduced to achieve this. Passing in 0x00 to this parameter signifies that all instances should be cleaned up. This semantics has been chosen similarly to the semantics of the instance parameter in the remove_advertising() function. When removing a single instance the method also ensures that another instance will be scheduled if available. When the currently advertising method is being removed, it will be canceled immediately. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The set_advertising() and set_advertising_complete() methods rely on the now obsolete hci_dev->adv_instance structure. We replace this reference by an equivalent access to the newly introduced dynamic advertising instance list. This patch introduces a helper function that schedules an advertising instance correctly calculating advertising timing based on the timeout and duration settings of the instance. Scheduling is factored into its own function for readability and code sharing. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The create_instance_adv_data() function could not deal with multiple advertising instances previously. This is being fixed by retrieving advertising instances from the newly introduced dynamic advertising instance list. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The create_instance_scan_rsp_data() function could not deal with multiple advertising instances previously. This is being fixed by adding an additional instance parameter. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
Previously enable_advertising() would rely on get_adv_instance_scan_rsp_len() which checked for a hard coded instance identifier. This is being changed to check for the current advertising instance's scan response length instead. The function is renamed accordingly. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
Switch if and else conditions to replace a negative statement by a positive one which makes the condition more readable. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The get_adv_instance_flags() would not work with instance identifiers other than 0x01. This is being fixed so that arbitrary instance identifiers can be dealt with while still correctly dealing with the special case of the 0x00 identifier. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
Replaces the hard coded instance identifier in get_current_adv_instance() with the actual current instance identifier so that this method is prepared to work with more than one advertising instance. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The read_adv_features() method had a single instance identifier hard coded. Refer to the advertising instance list instead to return a dynamically generated list of instance identifiers. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The ...for_instance function name is quite long and does not follow the ..._inst_... convention followed elsewhere in the code. This patch renames the ...for_instance functions to their shorter ..._inst_... version. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
update_scan_rsp_data() duplicates code from get_current_adv_instance(). This is being fixed by letting the former make use of the latter. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
Currently the delayed work managing advertising duration and timeout is part of the advertising instance structure. This is not correct as only a single instance can be advertised at any given time. To implement round robin advertising a single delayed work structure is needed. To fix this the delayed work structure is being moved to the hci_dev structure. The instance specific variable is renamed to "remaining_time" to make it clear that this is the remaining lifetime of the instance and not the current advertising timeout. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Florian Grandel 提交于
The current hci dev structure only supports a single advertising instance. To support multi-instance advertising it is necessary to introduce a linked list of advertising instances so that multiple advertising instances can be dynamically added and/or removed. In a first step, the existing adv_instance member of the hci_dev struct is supplemented by a linked list of advertising instances. This patch introduces the list and supporting list management infrastructure. The list is not being used yet. Signed-off-by: NFlorian Grandel <fgrandel@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 18 6月, 2015 5 次提交
-
-
由 Glenn Ruben Bakke 提交于
This patch removes the additional module_put() in disconnect_all_peers() making a correct module refcount so that the module can be removed after disabling 6lowpan through debugfs. Signed-off-by: NLukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: NGlenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Glenn Ruben Bakke 提交于
This patch removes the kfree of the netdev priv in device_event() upon NETDEV_UNREGISTER event. The freeing of memory is taken care of by the netdev destructor. Signed-off-by: NLukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: NGlenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Glenn Ruben Bakke 提交于
This patch moves the sysfs device used by the netdev from the device of the first connected peer to the hci sysfs device. Using the sysfs device of hci instead of the first connected device fixes this issue such that the sysfs group of tx-0 and bt0 kobject are still present after the last peer has been deleted and all sysfs entries can be removed. Signed-off-by: NLukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: NGlenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Glenn Ruben Bakke 提交于
This patch renames the variable used to trigger scheduling of delete_netdev. Changed to infinitiv in order to describe the action to be done. Signed-off-by: NLukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: NGlenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Glenn Ruben Bakke 提交于
This patch fixes an issue with the netdev not being unregistered when the last peer is deleted. Removing the logical negation operator on the boolean solves this issue. If the last peer is removed the condition will be true, and the delete_netdev() is scheduled. Signed-off-by: NLukasz Duda <lukasz.duda@nordicsemi.no> Signed-off-by: NGlenn Ruben Bakke <glenn.ruben.bakke@nordicsemi.no> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 17 6月, 2015 2 次提交
-
-
由 Alexander Aring 提交于
There is no need to init res with zero, res can be unused but then we returning zero and not res. Signed-off-by: NAlexander Aring <alex.aring@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Alexander Aring 提交于
This patch moves the hardware setting before calling the driver start callback which activates the receive handling. The hardware setup contains settings like address filtering which should be setup before activate the receive handling on the transceiver. These setting are protected by ieee802154_check_concurrent_iface check. This means we need to set these registers once before calling drv_start and can't be overwritten by other interfaces. Signed-off-by: NAlexander Aring <alex.aring@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 15 6月, 2015 3 次提交
-
-
由 Alexander Aring 提交于
This patch flushs the workqueue which is currently used for xmit_sync callback before calling stop driver-ops. Flush the queue will ensure all pending tx frames are transmitted. Signed-off-by: NAlexander Aring <alex.aring@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Alexander Aring 提交于
The interframe spacing timer is a per phy definition and is part of a ieee802154_local structure. If we have possible multiple interfaces ifdown one interface then the timer should not be cancled. First if the last interface is down and the receive handling is stopped we should be sure that the interframe spacing timer isn't run anymore. Signed-off-by: NAlexander Aring <alex.aring@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Varka Bhadram 提交于
This patch replaces !netif_running(sdata->dev) with !ieee802154_sdata_running(sdata) and also devide the code two separate if branches. Signed-off-by: NVarka Bhadram <varkab@cdac.in> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 12 6月, 2015 6 次提交
-
-
由 Johan Hedberg 提交于
The encryption key size is read only for BR/EDR (ACL_LINK) connections so there's no need to check for it in the read_enc_key_size_complete() callback. Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Johan Hedberg 提交于
When pairing over SMP over BR/EDR the generated LTK has by default the same key size as the BR/EDR Link Key. Make sure we don't set our Pairing Request/Response max value to anything higher than that. Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Johan Hedberg 提交于
Since Bluetooth 3.0 there's a HCI command available for reading the encryption key size of an BR/EDR connection. This information is essential e.g. for generating an LTK using SMP over BR/EDR, so store it as part of struct hci_conn. Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Johan Hedberg 提交于
Checking for SC-only mode requirements when we get an encrypt change event shouldn't be limited to the BT_CONFIG state but done any time encryption changes. Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Johan Hedberg 提交于
This patch adds a debugfs control to set a different minimum LE encryption key size. This is useful for testing that implementation of the encryption key size handling is behaving correctly (e.g. that we get appropriate 'Encryption Key Size' error responses when necessary). Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Johan Hedberg 提交于
This patch adds a debugfs control to set a different maximum LE encryption key size. This is useful for testing that implementation of the encryption key size handling is behaving correctly. Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 11 6月, 2015 1 次提交
-
-
由 Alexey Dobriyan 提交于
list_del() poisons pointers with special values, no need to overwrite them. Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 10 6月, 2015 1 次提交
-
-
由 Johan Hedberg 提交于
When we notify user space of a new LTK or distribute an LTK to the remote peer the value passed should be the shortened version so that it's easy to compare values in various traces. The core spec also sets the requirements for the shortening/masking as: "The masking shall be done after generation and before being distributed, used or stored." Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
- 09 6月, 2015 3 次提交
-
-
由 Arron Wang 提交于
SCO/eSCO link is supported by BR/EDR controller, it is suitable to move them under BT_BREDR config option Signed-off-by: NArron Wang <arron.wang@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Arron Wang 提交于
The return value of l2cap_recv_acldata() and sco_recv_scodata() are not used, then change it to return void Signed-off-by: NArron Wang <arron.wang@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-
由 Loic Poulain 提交于
Don't interfere with the user channel exclusive access. Signed-off-by: NLoic Poulain <loic.poulain@intel.com> Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
-