priv->next_scan_jiffies = jiffies + IWL_DELAY_NEXT_SCAN;
 }
 
-static void iwl3945_bg_post_associate(struct work_struct *data)
-{
-       struct iwl3945_priv *priv = container_of(data, struct iwl3945_priv,
-                                            post_associate.work);
-
-       mutex_lock(&priv->mutex);
-       iwl3945_post_associate(priv);
-       mutex_unlock(&priv->mutex);
-}
-
 static void iwl3945_bg_abort_scan(struct work_struct *work)
 {
        struct iwl3945_priv *priv = container_of(work, struct iwl3945_priv, abort_scan);
                 */
                mutex_lock(&priv->mutex);
                iwl3945_scan_cancel_timeout(priv, 100);
-               cancel_delayed_work(&priv->post_associate);
                mutex_unlock(&priv->mutex);
        }
 
 
        if (iwl3945_is_ready_rf(priv)) {
                iwl3945_scan_cancel_timeout(priv, 100);
-               cancel_delayed_work(&priv->post_associate);
                priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK;
                iwl3945_commit_rxon(priv);
        }
 
        iwl3945_reset_qos(priv);
 
-       cancel_delayed_work(&priv->post_associate);
-
        spin_lock_irqsave(&priv->lock, flags);
        priv->assoc_id = 0;
        priv->assoc_capability = 0;
 
        iwl3945_reset_qos(priv);
 
-       queue_work(priv->workqueue, &priv->post_associate.work);
+       iwl3945_post_associate(priv);
 
        mutex_unlock(&priv->mutex);
 
        INIT_WORK(&priv->rf_kill, iwl3945_bg_rf_kill);
        INIT_WORK(&priv->beacon_update, iwl3945_bg_beacon_update);
        INIT_WORK(&priv->set_monitor, iwl3945_bg_set_monitor);
-       INIT_DELAYED_WORK(&priv->post_associate, iwl3945_bg_post_associate);
        INIT_DELAYED_WORK(&priv->init_alive_start, iwl3945_bg_init_alive_start);
        INIT_DELAYED_WORK(&priv->alive_start, iwl3945_bg_alive_start);
        INIT_DELAYED_WORK(&priv->scan_check, iwl3945_bg_scan_check);
        cancel_delayed_work_sync(&priv->init_alive_start);
        cancel_delayed_work(&priv->scan_check);
        cancel_delayed_work(&priv->alive_start);
-       cancel_delayed_work(&priv->post_associate);
        cancel_work_sync(&priv->beacon_update);
 }