diff --git a/drivers/staging/ks7010/ks_hostif.c b/drivers/staging/ks7010/ks_hostif.c index a04e4e337176..2a54b4cb59b4 100644 --- a/drivers/staging/ks7010/ks_hostif.c +++ b/drivers/staging/ks7010/ks_hostif.c @@ -66,11 +66,13 @@ inline u32 get_DWORD(struct ks_wlan_private *priv) static void ks_wlan_hw_wakeup_task(struct work_struct *work) { - struct ks_wlan_private *priv = - container_of(work, struct ks_wlan_private, ks_wlan_wakeup_task); - int ps_status = atomic_read(&priv->psstatus.status); + struct ks_wlan_private *priv; + int ps_status; long time_left; + priv = container_of(work, struct ks_wlan_private, wakeup_work); + ps_status = atomic_read(&priv->psstatus.status); + if (ps_status == PS_SNOOZE) { ks_wlan_hw_wakeup_request(priv); time_left = wait_for_completion_interruptible_timeout( @@ -78,7 +80,7 @@ static void ks_wlan_hw_wakeup_task(struct work_struct *work) msecs_to_jiffies(20)); if (time_left <= 0) { DPRINTK(1, "wake up timeout or interrupted !!!\n"); - schedule_work(&priv->ks_wlan_wakeup_task); + schedule_work(&priv->wakeup_work); return; } } else { @@ -2656,10 +2658,8 @@ int hostif_init(struct ks_wlan_private *priv) atomic_set(&priv->psstatus.status, PS_NONE); atomic_set(&priv->psstatus.confirm_wait, 0); atomic_set(&priv->psstatus.snooze_guard, 0); - /* init_waitqueue_head(&priv->psstatus.wakeup_wait); */ init_completion(&priv->psstatus.wakeup_wait); - //INIT_WORK(&priv->ks_wlan_wakeup_task, ks_wlan_hw_wakeup_task, (void *)priv); - INIT_WORK(&priv->ks_wlan_wakeup_task, ks_wlan_hw_wakeup_task); + INIT_WORK(&priv->wakeup_work, ks_wlan_hw_wakeup_task); /* WPA */ memset(&priv->wpa, 0, sizeof(priv->wpa)); diff --git a/drivers/staging/ks7010/ks_wlan.h b/drivers/staging/ks7010/ks_wlan.h index 7ba440a7e3d0..79684702fc5b 100644 --- a/drivers/staging/ks7010/ks_wlan.h +++ b/drivers/staging/ks7010/ks_wlan.h @@ -429,7 +429,7 @@ struct ks_wlan_private { u8 *rxp; unsigned int rx_size; struct tasklet_struct sme_task; - struct work_struct ks_wlan_wakeup_task; + struct work_struct wakeup_work; int scan_ind_count; unsigned char eth_addr[ETH_ALEN];