unsigned int wildcard_bssid:1;
unsigned int maintain_addr:1;
unsigned int sent:1;
+ unsigned int radio_work_removal_scheduled:1;
int freq;
u16 status_code;
struct wpabuf *req;
if (gas->work && gas->work->ctx == query) {
radio_work_done(gas->work);
gas->work = NULL;
+ } else if (!query->radio_work_removal_scheduled) {
+ radio_remove_pending_work(gas->wpa_s, query);
}
eloop_cancel_timeout(gas_query_tx_comeback_timeout, gas, query);
struct wpa_supplicant *wpa_s = gas->wpa_s;
if (deinit) {
+ query->radio_work_removal_scheduled = 1;
if (work->started) {
gas->work = NULL;
gas_query_done(gas, query, GAS_QUERY_DELETED_AT_DEINIT);
if (wpas_update_random_addr_disassoc(wpa_s) < 0) {
wpa_msg(wpa_s, MSG_INFO,
"Failed to assign random MAC address for GAS");
+ query->radio_work_removal_scheduled = 1;
gas_query_free(query, 1);
radio_work_done(work);
return;