20 Dec, 2011
5 commits
-
If station info contains a beacon loss count, return
it to userspace.Signed-off-by: Paul Stewart
Signed-off-by: John W. Linville -
Currently code allows three (HT_AGG_MAX_RETRIES) unanswered addba
requests. When this limit is reached aggregation is turned off for
given TID permanently. This doesn't seem right: three requests is
not that much, some 'blackout' can happen, but effect of it affects
whole connection indefinitely.
This patch increases number of retries to 15. Also, when there have
been 3 or more retries it splits further retries apart by 15 seconds
instead of sending them in very short period of time.Signed-off-by: Nikolay Martynov
Signed-off-by: John W. Linville
19 Dec, 2011
35 commits
-
Conflicts:
net/bluetooth/l2cap_core.c -
This patch adds the necessary structs for the Confirm Name command. This
ensures that the protocol definitions are up to date with the latest
mgmt specification. The actual implementation of the command will follow
in a later patch-set.Signed-off-by: Johan Hedberg
Signed-off-by: Gustavo F. Padovan -
This patch fixes the opcodes of the Block/Unblock device commands to
match with what user-space expects and to confirm with the latest mgmt
specification. The reason the values were wrong was a missing Confirm
Name command definition (which will be added by a subsequent patch).Signed-off-by: Johan Hedberg
Signed-off-by: Gustavo F. Padovan -
This patch adds a missing confirm_name field to mgmt_ev_device_found.
Support for setting the correct value for this field is not implemented
yet, but having it part of the struct definition ensures that user-space
gets correct sized device_found events and is thereby able to do at
least rudimentary parsing of them.Signed-off-by: Johan Hedberg
Signed-off-by: Gustavo F. Padovan -
This reverts commit 4dff523a913197e3314c7b0d08734ab037709093.
It was reported that this patch cause issues when trying to connect to
legacy devices so reverting it.Reported-by: David Fries
Signed-off-by: Gustavo F. Padovan -
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
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
When configuring an ERTM or streaming mode connection, remote devices
are expected to send an RFC option in a successful config response. A
misbehaving remote device might not send an RFC option, and the L2CAP
code should not access uninitialized data in this case.Signed-off-by: Mat Martineau
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Incoming sk_buffs always have bt_cb(skb)->force_active set to 0, so
it's misleading to use that value from the control block when calling
hci_conn_enter_active_mode() for incoming data. The destination socket
is not known in the HCI layer, so the force_active setting for each
socket isn't known either. Hard-coding the force_active parameter does
not change any behavior, but makes it obvious that incoming ACL data
never exits sniff mode.Signed-off-by: Mat Martineau
Signed-off-by: Gustavo F. Padovan -
Simplify function and remove fourth level of indentation.
Signed-off-by: Andrei Emeltchenko
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Implement block size read function. Use different variables for
packet-based and block-based flow control.Signed-off-by: Andrei Emeltchenko
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This patch fixes user_confirm_neg_reply to use the appropriate struct
for accessing the call parameters.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This patch updates the ordering and opcodes of mgmt messages to match
the latest API specification.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
We do not want the service cache to be enabled indefinitely after
mgmt_read_info is called. To solve this a timer is added which will
automatically disable the cache if mgmt_set_dev_class isn't called
within 5 seconds of calling mgmt_read_info.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Due to the upcoming addition of a service cache timer the functions to
update the EIR and CoD need to be higher up in mgmt.c in order to avoid
unnecessary forward-declarations. This patch simply moves code around
without any other changes in order to make subsequent patches more
readable.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Instead of having an explicit service cache command we can make the mgmt
API simpler by implicitly enabling the cache when mgmt_read_info is
called for the first time and disabling it when mgmt_set_dev_class is
called.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Fast connectable is logically after the connectable property so that's
where it should show up in the code as well (it's also after connectable
in the settings bitfield).Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This patch updates the mgmt_read_info and related messages to the latest
management API which uses a bitfield of settings instead of individual
boolean values.Signed-off-by: Johan Hedberg
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Add ProFUSION's copyright to some files I've been touching recently.
Signed-off-by: Gustavo F. Padovan
-
hdev->workqueue should be only for rx/tx, so move this one out.
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
As we run in process context now we don't need worqueue to add e del from
sysfs.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Update hdev workqueue API usage to use the new interface, this new
interface also allow us to mark this workqueue as WQ_HIGHPRI, so now rx
and tx work gets higher priority when running.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
hdev->workqueue will be only for for rx/tx/cmd processing, all other small
works should go to the system workqueue for now.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This list has much more reads than writes, so RCU makes senses here, also
it avoid deadlock against the socket lock.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This move some checking code that was in l2cap_sock_connect() to
l2cap_chan_connect(). Thus we can invert the lock calls, i.e., call
lock_sock() before hci_dev_lock() to avoid a deadlock scenario.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Another step of remove interrupt context from Bluetooth Core.
Use the system workqueue.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
This should simplify Bluetooth core processing a lot.
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
As part of the moving on all the Bluetooth processing to Process context.
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
It's pointless, we aren't protecting anything since btusb_notify()
schedules a work to run, then all it operation happens without protection.
If protection is really needed here, we will fix it further.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Handling hci_conn_hash with RCU make us avoid some locking and disable
tasklets.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Instead of using tasklet_disable() to prevent acess to the channel use, we
can use RCU and improve the performance of our code.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
spin lock doesn't fit ok anymore on the new code based on workqueues.
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
Now we can sleep in any path inside Bluetooth core, so mutex can make
sense here.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
We run everything in the same lock now. The backlog queue is useless now
Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
We now run everything in process context, so the mutex lock is the best
option. But in some places we still need the bh_lock_sock()Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan -
L2CAP timers also need to run in process context. As the works in l2cap
are small we are using the system worqueue.Acked-by: Marcel Holtmann
Signed-off-by: Gustavo F. Padovan