bool wilc_optaining_ip;
static u8 p2p_listen_state;
static struct workqueue_struct *hif_workqueue;
-static struct completion hif_thread_comp;
static struct completion hif_driver_comp;
static struct mutex hif_deinit_lock;
static struct timer_list periodic_rssi;
if (ret)
netdev_err(vif->ndev, "Failed to set channel\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_set_wfi_drv_handler(struct work_struct *work)
free_msg:
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_set_operation_mode(struct work_struct *work)
if (ret)
netdev_err(vif->ndev, "Failed to set driver handler\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_set_ip_address(struct work_struct *work)
if (ret)
netdev_err(vif->ndev, "Failed to set IP address\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_get_ip_address(struct work_struct *work)
if (ret)
netdev_err(vif->ndev, "Failed to get IP address\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_get_mac_address(struct work_struct *work)
netdev_err(vif->ndev, "Failed to get mac address\n");
complete(&msg->work_comp);
/* free 'msg' data later, in caller */
- complete(&hif_thread_comp);
}
static void handle_cfg_param(struct work_struct *work)
unlock:
mutex_unlock(&hif_drv->cfg_values_lock);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_scan(struct work_struct *work)
kfree(hdn_ntwk_wid_val);
kfree(msg);
- complete(&hif_thread_comp);
}
static s32 handle_scan_done(struct wilc_vif *vif, enum scan_event evt)
kfree(cur_byte);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_connect_timeout(struct work_struct *work)
out:
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_rcvd_ntwrk_info(struct work_struct *work)
}
kfree(msg);
- complete(&hif_thread_comp);
}
static s32 host_int_get_assoc_res_info(struct wilc_vif *vif,
free_msg:
kfree(msg);
- complete(&hif_thread_comp);
}
static int wilc_pmksa_key_copy(struct wilc_vif *vif, struct key_attr *hif_key)
netdev_err(vif->ndev, "Failed to send key config packet\n");
/* free 'msg' data in caller sync call */
- complete(&hif_thread_comp);
}
static void handle_disconnect(struct work_struct *work)
complete(&msg->work_comp);
/* free 'msg' in caller after receiving completion */
- complete(&hif_thread_comp);
}
void wilc_resolve_disconnect_aberration(struct wilc_vif *vif)
complete(&msg->work_comp);
/* free 'msg' data in caller */
- complete(&hif_thread_comp);
}
static void handle_get_statistics(struct work_struct *work)
complete(&msg->work_comp);
else
kfree(msg);
-
- complete(&hif_thread_comp);
}
static void handle_get_inactive_time(struct work_struct *work)
out:
/* free 'msg' data in caller */
complete(&msg->work_comp);
- complete(&hif_thread_comp);
}
static void handle_add_beacon(struct work_struct *work)
kfree(param->head);
kfree(param->tail);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_del_beacon(struct work_struct *work)
if (result)
netdev_err(vif->ndev, "Failed to send delete beacon\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static u32 wilc_hif_pack_sta_param(u8 *buff, struct add_sta_param *param)
kfree(param->rates);
kfree(wid.val);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_del_all_sta(struct work_struct *work)
/* free 'msg' data in caller */
complete(&msg->work_comp);
- complete(&hif_thread_comp);
}
static void handle_del_station(struct work_struct *work)
error:
kfree(wid.val);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_edit_station(struct work_struct *work)
kfree(param->rates);
kfree(wid.val);
kfree(msg);
- complete(&hif_thread_comp);
}
static int handle_remain_on_chan(struct wilc_vif *vif,
out:
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_listen_state_expired(struct work_struct *work)
free_msg:
kfree(msg);
- complete(&hif_thread_comp);
}
static void listen_timer_cb(struct timer_list *t)
if (result)
netdev_err(vif->ndev, "Failed to send power management\n");
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_set_mcast_filter(struct work_struct *work)
error:
kfree(wid.val);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_set_tx_pwr(struct work_struct *work)
if (ret)
netdev_err(vif->ndev, "Failed to set TX PWR\n");
kfree(msg);
- complete(&hif_thread_comp);
}
/* Note: 'msg' will be free after using data */
netdev_err(vif->ndev, "Failed to get TX PWR\n");
complete(&msg->work_comp);
- complete(&hif_thread_comp);
}
static void handle_scan_timer(struct work_struct *work)
handle_scan_done(msg->vif, SCAN_EVENT_ABORTED);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_remain_on_chan_work(struct work_struct *work)
handle_remain_on_chan(msg->vif, &msg->body.remain_on_ch);
kfree(msg);
- complete(&hif_thread_comp);
}
static void handle_hif_exit_work(struct work_struct *work)
if (msg->vif->hif_drv->remain_on_ch_pending)
handle_remain_on_chan(msg->vif, &msg->body.remain_on_ch);
kfree(msg);
- complete(&hif_thread_comp);
}
static void timer_scan_cb(struct timer_list *t)
wilc_optaining_ip = false;
if (clients_count == 0) {
- init_completion(&hif_thread_comp);
init_completion(&hif_driver_comp);
mutex_init(&hif_deinit_lock);
}