@@ -1518,7 +1518,8 @@ static void mgmt_set_discoverable_complete(struct hci_dev *hdev, void *data,
1518
1518
bt_dev_dbg (hdev , "err %d" , err );
1519
1519
1520
1520
/* Make sure cmd still outstanding. */
1521
- if (cmd != pending_find (MGMT_OP_SET_DISCOVERABLE , hdev ))
1521
+ if (err == - ECANCELED ||
1522
+ cmd != pending_find (MGMT_OP_SET_DISCOVERABLE , hdev ))
1522
1523
return ;
1523
1524
1524
1525
hci_dev_lock (hdev );
@@ -1692,7 +1693,8 @@ static void mgmt_set_connectable_complete(struct hci_dev *hdev, void *data,
1692
1693
bt_dev_dbg (hdev , "err %d" , err );
1693
1694
1694
1695
/* Make sure cmd still outstanding. */
1695
- if (cmd != pending_find (MGMT_OP_SET_CONNECTABLE , hdev ))
1696
+ if (err == - ECANCELED ||
1697
+ cmd != pending_find (MGMT_OP_SET_CONNECTABLE , hdev ))
1696
1698
return ;
1697
1699
1698
1700
hci_dev_lock (hdev );
@@ -1924,7 +1926,7 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
1924
1926
bool changed ;
1925
1927
1926
1928
/* Make sure cmd still outstanding. */
1927
- if (cmd != pending_find (MGMT_OP_SET_SSP , hdev ))
1929
+ if (err == - ECANCELED || cmd != pending_find (MGMT_OP_SET_SSP , hdev ))
1928
1930
return ;
1929
1931
1930
1932
if (err ) {
@@ -3848,7 +3850,8 @@ static void set_name_complete(struct hci_dev *hdev, void *data, int err)
3848
3850
3849
3851
bt_dev_dbg (hdev , "err %d" , err );
3850
3852
3851
- if (cmd != pending_find (MGMT_OP_SET_LOCAL_NAME , hdev ))
3853
+ if (err == - ECANCELED ||
3854
+ cmd != pending_find (MGMT_OP_SET_LOCAL_NAME , hdev ))
3852
3855
return ;
3853
3856
3854
3857
if (status ) {
@@ -4023,7 +4026,8 @@ static void set_default_phy_complete(struct hci_dev *hdev, void *data, int err)
4023
4026
struct sk_buff * skb = cmd -> skb ;
4024
4027
u8 status = mgmt_status (err );
4025
4028
4026
- if (cmd != pending_find (MGMT_OP_SET_PHY_CONFIGURATION , hdev ))
4029
+ if (err == - ECANCELED ||
4030
+ cmd != pending_find (MGMT_OP_SET_PHY_CONFIGURATION , hdev ))
4027
4031
return ;
4028
4032
4029
4033
if (!status ) {
@@ -5914,13 +5918,16 @@ static void start_discovery_complete(struct hci_dev *hdev, void *data, int err)
5914
5918
{
5915
5919
struct mgmt_pending_cmd * cmd = data ;
5916
5920
5921
+ bt_dev_dbg (hdev , "err %d" , err );
5922
+
5923
+ if (err == - ECANCELED )
5924
+ return ;
5925
+
5917
5926
if (cmd != pending_find (MGMT_OP_START_DISCOVERY , hdev ) &&
5918
5927
cmd != pending_find (MGMT_OP_START_LIMITED_DISCOVERY , hdev ) &&
5919
5928
cmd != pending_find (MGMT_OP_START_SERVICE_DISCOVERY , hdev ))
5920
5929
return ;
5921
5930
5922
- bt_dev_dbg (hdev , "err %d" , err );
5923
-
5924
5931
mgmt_cmd_complete (cmd -> sk , cmd -> index , cmd -> opcode , mgmt_status (err ),
5925
5932
cmd -> param , 1 );
5926
5933
mgmt_pending_remove (cmd );
@@ -6153,7 +6160,8 @@ static void stop_discovery_complete(struct hci_dev *hdev, void *data, int err)
6153
6160
{
6154
6161
struct mgmt_pending_cmd * cmd = data ;
6155
6162
6156
- if (cmd != pending_find (MGMT_OP_STOP_DISCOVERY , hdev ))
6163
+ if (err == - ECANCELED ||
6164
+ cmd != pending_find (MGMT_OP_STOP_DISCOVERY , hdev ))
6157
6165
return ;
6158
6166
6159
6167
bt_dev_dbg (hdev , "err %d" , err );
@@ -8144,7 +8152,8 @@ static void read_local_oob_ext_data_complete(struct hci_dev *hdev, void *data,
8144
8152
u8 status = mgmt_status (err );
8145
8153
u16 eir_len ;
8146
8154
8147
- if (cmd != pending_find (MGMT_OP_READ_LOCAL_OOB_EXT_DATA , hdev ))
8155
+ if (err == - ECANCELED ||
8156
+ cmd != pending_find (MGMT_OP_READ_LOCAL_OOB_EXT_DATA , hdev ))
8148
8157
return ;
8149
8158
8150
8159
if (!status ) {
0 commit comments