netif_wake_queue(vif->ndev);
 
        /* Update connect & link status atomically */
-       spin_lock_bh(&ar->lock);
+       spin_lock_bh(&vif->if_lock);
        set_bit(CONNECTED, &vif->flags);
        clear_bit(CONNECT_PEND, &vif->flags);
        netif_carrier_on(vif->ndev);
-       spin_unlock_bh(&ar->lock);
+       spin_unlock_bh(&vif->if_lock);
 
        aggr_reset_state(vif->aggr_cntxt);
        vif->reconnect_flag = 0;
        }
 
        /* update connect & link status atomically */
-       spin_lock_bh(&ar->lock);
+       spin_lock_bh(&vif->if_lock);
        clear_bit(CONNECTED, &vif->flags);
        netif_carrier_off(vif->ndev);
-       spin_unlock_bh(&ar->lock);
+       spin_unlock_bh(&vif->if_lock);
 
        if ((reason != CSERV_DISCONNECT) || (vif->reconnect_flag != 1))
                vif->reconnect_flag = 0;
 
 static int ath6kl_open(struct net_device *dev)
 {
-       struct ath6kl *ar = ath6kl_priv(dev);
        struct ath6kl_vif *vif = netdev_priv(dev);
 
-       spin_lock_bh(&ar->lock);
-
        set_bit(WLAN_ENABLED, &vif->flags);
 
        if (test_bit(CONNECTED, &vif->flags)) {
        } else
                netif_carrier_off(dev);
 
-       spin_unlock_bh(&ar->lock);
-
        return 0;
 }
 
 
                return HTC_SEND_FULL_DROP;
 
 stop_net_queues:
-       spin_lock_bh(&ar->lock);
+       spin_lock_bh(&vif->if_lock);
        set_bit(NETQ_STOPPED, &vif->flags);
-       spin_unlock_bh(&ar->lock);
+       spin_unlock_bh(&vif->if_lock);
        netif_stop_queue(vif->ndev);
 
        return HTC_SEND_FULL_KEEP;
         * Take lock to protect buffer counts and adaptive power throughput
         * state.
         */
-       spin_lock_bh(&ar->lock);
+       spin_lock_bh(&vif->if_lock);
 
        vif->net_stats.rx_packets++;
        vif->net_stats.rx_bytes += packet->act_len;
 
-       spin_unlock_bh(&ar->lock);
+       spin_unlock_bh(&vif->if_lock);
 
 
        ath6kl_dbg_dump(ATH6KL_DBG_RAW_BYTES, __func__, "rx ",