Commit 2bb02584 authored by Chaehyun Lim's avatar Chaehyun Lim Committed by Greg Kroah-Hartman

staging: wilc1000: use completion instead of struct semaphore hif_sema_driver

struct semaphore hif_sema_driver is used to signal completion of host
interface message. This patch replaces struct semaphore hif_sema_driver
with struct completion hif_driver_comp. It is better to use completion
than semaphore for this case.
Signed-off-by: default avatarChaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 04dd9a42
...@@ -232,7 +232,7 @@ static u8 P2P_LISTEN_STATE; ...@@ -232,7 +232,7 @@ static u8 P2P_LISTEN_STATE;
static struct task_struct *hif_thread_handler; static struct task_struct *hif_thread_handler;
static struct message_queue hif_msg_q; static struct message_queue hif_msg_q;
static struct completion hif_thread_comp; static struct completion hif_thread_comp;
static struct semaphore hif_sema_driver; static struct completion hif_driver_comp;
static struct completion hif_wait_response; static struct completion hif_wait_response;
static struct mutex hif_deinit_lock; static struct mutex hif_deinit_lock;
static struct timer_list periodic_rssi; static struct timer_list periodic_rssi;
...@@ -321,7 +321,7 @@ static s32 handle_set_wfi_drv_handler(struct wilc_vif *vif, ...@@ -321,7 +321,7 @@ static s32 handle_set_wfi_drv_handler(struct wilc_vif *vif,
hif_drv_handler->handler); hif_drv_handler->handler);
if (!hif_drv_handler->handler) if (!hif_drv_handler->handler)
up(&hif_sema_driver); complete(&hif_driver_comp);
if (result) { if (result) {
netdev_err(vif->ndev, "Failed to set driver handler\n"); netdev_err(vif->ndev, "Failed to set driver handler\n");
...@@ -346,7 +346,7 @@ static s32 handle_set_operation_mode(struct wilc_vif *vif, ...@@ -346,7 +346,7 @@ static s32 handle_set_operation_mode(struct wilc_vif *vif,
wilc_get_vif_idx(vif)); wilc_get_vif_idx(vif));
if ((hif_op_mode->mode) == IDLE_MODE) if ((hif_op_mode->mode) == IDLE_MODE)
up(&hif_sema_driver); complete(&hif_driver_comp);
if (result) { if (result) {
netdev_err(vif->ndev, "Failed to set driver handler\n"); netdev_err(vif->ndev, "Failed to set driver handler\n");
...@@ -3401,7 +3401,7 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler) ...@@ -3401,7 +3401,7 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)
if (clients_count == 0) { if (clients_count == 0) {
init_completion(&hif_thread_comp); init_completion(&hif_thread_comp);
sema_init(&hif_sema_driver, 0); init_completion(&hif_driver_comp);
mutex_init(&hif_deinit_lock); mutex_init(&hif_deinit_lock);
} }
...@@ -3480,7 +3480,7 @@ int wilc_deinit(struct wilc_vif *vif) ...@@ -3480,7 +3480,7 @@ int wilc_deinit(struct wilc_vif *vif)
del_timer_sync(&hif_drv->remain_on_ch_timer); del_timer_sync(&hif_drv->remain_on_ch_timer);
wilc_set_wfi_drv_handler(vif, 0, 0); wilc_set_wfi_drv_handler(vif, 0, 0);
down(&hif_sema_driver); wait_for_completion(&hif_driver_comp);
if (hif_drv->usr_scan_req.scan_result) { if (hif_drv->usr_scan_req.scan_result) {
hif_drv->usr_scan_req.scan_result(SCAN_EVENT_ABORTED, NULL, hif_drv->usr_scan_req.scan_result(SCAN_EVENT_ABORTED, NULL,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment