@@ -1521,7 +1521,8 @@ static void mgmt_set_discoverable_complete(struct hci_dev *hdev, void *data,
1521
1521
bt_dev_dbg (hdev , "err %d" , err );
1522
1522
1523
1523
/* Make sure cmd still outstanding. */
1524
- if (cmd != pending_find (MGMT_OP_SET_DISCOVERABLE , hdev ))
1524
+ if (err == - ECANCELED ||
1525
+ cmd != pending_find (MGMT_OP_SET_DISCOVERABLE , hdev ))
1525
1526
return ;
1526
1527
1527
1528
hci_dev_lock (hdev );
@@ -1695,7 +1696,8 @@ static void mgmt_set_connectable_complete(struct hci_dev *hdev, void *data,
1695
1696
bt_dev_dbg (hdev , "err %d" , err );
1696
1697
1697
1698
/* Make sure cmd still outstanding. */
1698
- if (cmd != pending_find (MGMT_OP_SET_CONNECTABLE , hdev ))
1699
+ if (err == - ECANCELED ||
1700
+ cmd != pending_find (MGMT_OP_SET_CONNECTABLE , hdev ))
1699
1701
return ;
1700
1702
1701
1703
hci_dev_lock (hdev );
@@ -1928,7 +1930,7 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
1928
1930
bool changed ;
1929
1931
1930
1932
/* Make sure cmd still outstanding. */
1931
- if (cmd != pending_find (MGMT_OP_SET_SSP , hdev ))
1933
+ if (err == - ECANCELED || cmd != pending_find (MGMT_OP_SET_SSP , hdev ))
1932
1934
return ;
1933
1935
1934
1936
if (err ) {
@@ -3853,7 +3855,8 @@ static void set_name_complete(struct hci_dev *hdev, void *data, int err)
3853
3855
3854
3856
bt_dev_dbg (hdev , "err %d" , err );
3855
3857
3856
- if (cmd != pending_find (MGMT_OP_SET_LOCAL_NAME , hdev ))
3858
+ if (err == - ECANCELED ||
3859
+ cmd != pending_find (MGMT_OP_SET_LOCAL_NAME , hdev ))
3857
3860
return ;
3858
3861
3859
3862
if (status ) {
@@ -4028,7 +4031,8 @@ static void set_default_phy_complete(struct hci_dev *hdev, void *data, int err)
4028
4031
struct sk_buff * skb = cmd -> skb ;
4029
4032
u8 status = mgmt_status (err );
4030
4033
4031
- if (cmd != pending_find (MGMT_OP_SET_PHY_CONFIGURATION , hdev ))
4034
+ if (err == - ECANCELED ||
4035
+ cmd != pending_find (MGMT_OP_SET_PHY_CONFIGURATION , hdev ))
4032
4036
return ;
4033
4037
4034
4038
if (!status ) {
@@ -5919,13 +5923,16 @@ static void start_discovery_complete(struct hci_dev *hdev, void *data, int err)
5919
5923
{
5920
5924
struct mgmt_pending_cmd * cmd = data ;
5921
5925
5926
+ bt_dev_dbg (hdev , "err %d" , err );
5927
+
5928
+ if (err == - ECANCELED )
5929
+ return ;
5930
+
5922
5931
if (cmd != pending_find (MGMT_OP_START_DISCOVERY , hdev ) &&
5923
5932
cmd != pending_find (MGMT_OP_START_LIMITED_DISCOVERY , hdev ) &&
5924
5933
cmd != pending_find (MGMT_OP_START_SERVICE_DISCOVERY , hdev ))
5925
5934
return ;
5926
5935
5927
- bt_dev_dbg (hdev , "err %d" , err );
5928
-
5929
5936
mgmt_cmd_complete (cmd -> sk , cmd -> index , cmd -> opcode , mgmt_status (err ),
5930
5937
cmd -> param , 1 );
5931
5938
mgmt_pending_remove (cmd );
@@ -6158,7 +6165,8 @@ static void stop_discovery_complete(struct hci_dev *hdev, void *data, int err)
6158
6165
{
6159
6166
struct mgmt_pending_cmd * cmd = data ;
6160
6167
6161
- if (cmd != pending_find (MGMT_OP_STOP_DISCOVERY , hdev ))
6168
+ if (err == - ECANCELED ||
6169
+ cmd != pending_find (MGMT_OP_STOP_DISCOVERY , hdev ))
6162
6170
return ;
6163
6171
6164
6172
bt_dev_dbg (hdev , "err %d" , err );
@@ -8105,7 +8113,8 @@ static void read_local_oob_ext_data_complete(struct hci_dev *hdev, void *data,
8105
8113
u8 status = mgmt_status (err );
8106
8114
u16 eir_len ;
8107
8115
8108
- if (cmd != pending_find (MGMT_OP_READ_LOCAL_OOB_EXT_DATA , hdev ))
8116
+ if (err == - ECANCELED ||
8117
+ cmd != pending_find (MGMT_OP_READ_LOCAL_OOB_EXT_DATA , hdev ))
8109
8118
return ;
8110
8119
8111
8120
if (!status ) {
0 commit comments