OSDN Git Service

android-x86/external-bluetooth-bluedroid.git
11 years agoam 6ff9944c: fix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts
Toshi Kikuchi [Tue, 12 Feb 2013 05:49:03 +0000 (21:49 -0800)]
am 6ff9944c: fix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts

# Via Toshi Kikuchi
* commit '6ff9944c9dda368fd79ebdf8d6748fc4922eafec':
  fix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts

11 years agofix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts
Toshi Kikuchi [Fri, 8 Feb 2013 08:13:22 +0000 (00:13 -0800)]
fix bt_hc_worker_thread() sometimes transmit more than num_hci_cmd_pkts

bt_hc_worker_thread() checks the controller's outstanding HCI
command credits (maintained in num_hci_cmd_pkts) and skips the rest
of the tx queue after it has used up the credits. But the skip
condition is not correct in the loop:

      if ((tx_cmd_pkts_pending == TRUE) || (num_hci_cmd_pkts <= 0))
      {
          tx_cmd_pkts_pending = TRUE;
          // skip the rest of the packets in the tx queue
          ...
      }

Since num_hci_cmd_pkts doesn't change during the loop, this condition
never becomes true. As a result, all the HCI commands in the tx queue
are sent if num_hci_cmd_pkts > 0. That is why sometimes more than
num_hck_cmd_pkts are sent.

To check a correct skip condition, we should count how many HCI
command packets are being sent:

      if ((tx_cmd_pkts_pending == TRUE) ||
          (sending_hci_cmd_pkts_count >= num_hci_cmd_pkts))

sending_hci_cmd_pkts_count is incremented every time a HCI command is
pushed for sending. It should never go beyond num_hci_cmd_pkts.

Change-Id: I58101b2785fc3ab4171cdf22497ca97a3ae3124a
Signed-off-by: Toshi Kikuchi <toshik@google.com>
11 years agofix too small buffer
Nick Kralevich [Thu, 31 Jan 2013 22:40:15 +0000 (14:40 -0800)]
fix too small buffer

property_get must be called with a buffer of at least
PROPERTY_VALUE_MAX len. The supplied buffer is too small.
Fixed.

Change-Id: I6c6b3050b30f6aa5ece69888263394e572551aff

11 years agofixed rfc resouce leaking and multi-session issue
Matthew Xie [Tue, 15 Jan 2013 23:54:03 +0000 (15:54 -0800)]
fixed rfc resouce leaking and multi-session issue

also added more debug messages
bug 7486080

Change-Id: Ic21e9d2df5f651b51ea2126a3cac25811808dcfb

11 years agoSnapshot 9fd57cbacd95e89602f430244c35bbc67f08b6d2
The Android Open Source Project [Thu, 13 Dec 2012 01:18:15 +0000 (17:18 -0800)]
Snapshot 9fd57cbacd95e89602f430244c35bbc67f08b6d2

Change-Id: Ibc3a4bf4161d286c7cfab89a19c676eb5cc9224f

11 years agoSnapshot 09118679ff7861de0fe2b742591e5d6aadba3fcc
The Android Open Source Project [Thu, 13 Dec 2012 00:04:31 +0000 (16:04 -0800)]
Snapshot 09118679ff7861de0fe2b742591e5d6aadba3fcc

Change-Id: I35cdb320673d847d8122bc03b9832d13673ea208

11 years agoSnapshot 0d153181bbe9ce75555b437567796a9aef4ef0ae
The Android Open Source Project [Thu, 13 Dec 2012 00:01:31 +0000 (16:01 -0800)]
Snapshot 0d153181bbe9ce75555b437567796a9aef4ef0ae

Change-Id: I99fb22bd2e10af658de4cfe26470e71bda147ce8

11 years agoSnapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf
The Android Open Source Project [Thu, 13 Dec 2012 00:00:35 +0000 (16:00 -0800)]
Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf

Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d