list_del_init(hdev->pend_le_conns.next);
 
        BT_DBG("All LE pending connections cleared");
-
-       hci_update_background_scan(hdev);
 }
 
 /* This function requires the caller holds hdev->lock */
        list_for_each_entry_safe(params, tmp, &hdev->le_conn_params, list) {
                if (params->auto_connect == HCI_AUTO_CONN_DISABLED)
                        continue;
-               if (params->auto_connect == HCI_AUTO_CONN_REPORT)
-                       list_del_init(¶ms->action);
+               list_del(¶ms->action);
                list_del(¶ms->list);
                kfree(params);
        }
 
-       hci_pend_le_conns_clear(hdev);
+       hci_update_background_scan(hdev);
 
        BT_DBG("All enabled LE connection parameters were removed");
 }
        struct hci_conn_params *params, *tmp;
 
        list_for_each_entry_safe(params, tmp, &hdev->le_conn_params, list) {
+               list_del(¶ms->action);
                list_del(¶ms->list);
                kfree(params);
        }
 
-       hci_pend_le_conns_clear(hdev);
+       hci_update_background_scan(hdev);
 
        BT_DBG("All LE connection parameters were removed");
 }