struct hostap_ieee80211_hdr *hdr = (struct hostap_ieee80211_hdr *) skb->data; 
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; 
static void handle_deauth(local_info_t *local, struct sk_buff *skb,			  struct hostap_80211_rx_status *rx_stats){	struct net_device *dev = local->dev;	struct hostap_ieee80211_hdr *hdr =		(struct hostap_ieee80211_hdr *) skb->data;	char *body = (char *) (skb->data + IEEE80211_MGMT_HDR_LEN);	int len;	u16 reason_code, *pos;	struct sta_info *sta = NULL;	len = skb->len - IEEE80211_MGMT_HDR_LEN;	if (len < 2) {		printk("handle_deauth - too short payload (len=%d)\n", len);		return;	}	pos = (u16 *) body;	reason_code = __le16_to_cpu(*pos);	PDEBUG(DEBUG_AP, "%s: deauthentication: " MACSTR " len=%d, "	       "reason_code=%d\n", dev->name, MAC2STR(hdr->addr2), len,	       reason_code);	spin_lock_bh(&local->ap->sta_table_lock);	sta = ap_get_sta(local->ap, hdr->addr2);	if (sta != NULL) {		if ((sta->flags & WLAN_STA_ASSOC) && !sta->ap)			hostap_event_expired_sta(local->dev, sta);		sta->flags &= ~(WLAN_STA_AUTH | WLAN_STA_ASSOC);	}	spin_unlock_bh(&local->ap->sta_table_lock);	if (sta == NULL) {		printk("%s: deauthentication from " MACSTR ", "	       "reason_code=%d, but STA not authenticated\n", dev->name,		       MAC2STR(hdr->addr2), reason_code);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c0f72ca8e4f1b459b5582c1c8dcaf7e53151f069/hostap_ap.c/clean/drivers/net/wireless/hostap/hostap_ap.c