Index: acx-mac80211-20100302/acx_func.h
===================================================================
--- acx-mac80211-20100302.orig/acx_func.h	2010-03-06 12:57:25.000000000 +0100
+++ acx-mac80211-20100302/acx_func.h	2010-03-06 12:58:10.000000000 +0100
@@ -704,9 +704,9 @@
 void acx_free_modes(acx_device_t *adev);
 int acx_i_op_tx(struct ieee80211_hw *ieee,	struct sk_buff *skb);
 int acx_e_op_add_interface(struct ieee80211_hw* ieee,
-		struct ieee80211_if_init_conf *conf);
+		struct ieee80211_vif *vif);
 void acx_e_op_remove_interface(struct ieee80211_hw* ieee,
-		struct ieee80211_if_init_conf *conf);
+		struct ieee80211_vif *vif);
 int acx_net_reset(struct ieee80211_hw *ieee);
 int acx_e_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 		struct ieee80211_vif *vif, struct ieee80211_sta *sta,
Index: acx-mac80211-20100302/common.c
===================================================================
--- acx-mac80211-20100302.orig/common.c	2010-03-06 12:57:31.000000000 +0100
+++ acx-mac80211-20100302/common.c	2010-03-06 12:59:51.000000000 +0100
@@ -4402,7 +4402,7 @@
 }
 
 int acx_e_op_add_interface(struct ieee80211_hw *ieee,
-		      struct ieee80211_if_init_conf *conf)
+		      struct ieee80211_vif *vif)
 {
 	acx_device_t *adev = ieee2adev(ieee);
 	unsigned long flags;
@@ -4414,14 +4414,14 @@
 	acx_sem_lock(adev);
 	acx_lock(adev, flags);
 
-	if (conf->type == NL80211_IFTYPE_MONITOR) {
+	if (vif->type == NL80211_IFTYPE_MONITOR) {
 		adev->interface.monitor++;
 	} else {
 		if (adev->interface.operating)
 			goto out_unlock;
 		adev->interface.operating = 1;
-		adev->interface.mac_addr = conf->mac_addr;
-		adev->interface.type = conf->type;
+		adev->interface.mac_addr = vif->addr;
+		adev->interface.type = vif->type;
 	}
 //	adev->mode = conf->type;
 
@@ -4436,8 +4436,8 @@
 
 	printk(KERN_INFO "acx: Virtual interface added "
 	       "(type: 0x%08X, MAC: %s)\n",
-	       conf->type,
-	       acx_print_mac(mac, conf->mac_addr));
+	       vif->type,
+	       acx_print_mac(mac, vif->addr));
 
     out_unlock:
 	acx_unlock(adev, flags);
@@ -4448,7 +4448,7 @@
 }
 
 void acx_e_op_remove_interface(struct ieee80211_hw *hw,
-			  struct ieee80211_if_init_conf *conf)
+			  struct ieee80211_vif *vif)
 {
 	acx_device_t *adev = ieee2adev(hw);
 
@@ -4457,23 +4457,23 @@
 	FN_ENTER;
 	acx_sem_lock(adev);
 
-	if (conf->type == NL80211_IFTYPE_MONITOR) {
+	if (vif->type == NL80211_IFTYPE_MONITOR) {
 		adev->interface.monitor--;
 //      assert(bcm->interface.monitor >= 0);
 	} else {
 		adev->interface.operating = 0;
 	}
 
-	log(L_DEBUG, "acx: %s: interface.operating=%d, conf->type=%d\n",
+	log(L_DEBUG, "acx: %s: interface.operating=%d, vif->type=%d\n",
 			__func__,
-			adev->interface.operating, conf->type);
+			adev->interface.operating, vif->type);
 
 	if (adev->initialized)
 		acx_s_select_opmode(adev);
 
 	log(L_ANY, "acx: Virtual interface removed: "
 	       "type=%d, MAC=%s\n",
-	       conf->type, acx_print_mac(mac, conf->mac_addr));
+	       vif->type, acx_print_mac(mac, vif->addr));
 
 	acx_sem_unlock(adev);
 
