return result;
 }
 
-static void rx_event_task(unsigned long dev)
+static void rx_event_task(struct tasklet_struct *t)
 {
-       struct ks_wlan_private *priv = (struct ks_wlan_private *)dev;
+       struct ks_wlan_private *priv = from_tasklet(priv, t, rx_bh_task);
        struct rx_device_buffer *rp;
 
        if (rxq_has_space(priv) && priv->dev_state >= DEVICE_STATE_BOOT) {
        spin_lock_init(&priv->tx_dev.tx_dev_lock);
        spin_lock_init(&priv->rx_dev.rx_dev_lock);
 
-       tasklet_init(&priv->rx_bh_task, rx_event_task, (unsigned long)priv);
+       tasklet_setup(&priv->rx_bh_task, rx_event_task);
 
        return 0;
 }
 
 }
 
 static
-void hostif_sme_task(unsigned long dev)
+void hostif_sme_task(struct tasklet_struct *t)
 {
-       struct ks_wlan_private *priv = (struct ks_wlan_private *)dev;
+       struct ks_wlan_private *priv = from_tasklet(priv, t, sme_task);
 
        if (priv->dev_state < DEVICE_STATE_BOOT)
                return;
        priv->sme_i.qtail = 0;
        spin_lock_init(&priv->sme_i.sme_spin);
        priv->sme_i.sme_flag = 0;
-       tasklet_init(&priv->sme_task, hostif_sme_task, (unsigned long)priv);
+       tasklet_setup(&priv->sme_task, hostif_sme_task);
 }
 
 static inline void hostif_wpa_init(struct ks_wlan_private *priv)