diff options
| -rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index 49127e4b42c2..76ef2d83919d 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c @@ -360,11 +360,14 @@ void zd_mac_tx_failed(struct ieee80211_hw *hw)  {  	struct sk_buff_head *q = &zd_hw_mac(hw)->ack_wait_queue;  	struct sk_buff *skb; -	struct ieee80211_tx_status status = {{0}}; +	struct ieee80211_tx_status status;  	skb = skb_dequeue(q);  	if (skb == NULL)  		return; + +	memset(&status, 0, sizeof(status)); +  	tx_status(hw, skb, &status, 0);  } @@ -389,7 +392,8 @@ void zd_mac_tx_to_dev(struct sk_buff *skb, int error)  		if (unlikely(error ||  		    (cb->control->flags & IEEE80211_TXCTL_NO_ACK)))  		{ -			struct ieee80211_tx_status status = {{0}}; +			struct ieee80211_tx_status status; +			memset(&status, 0, sizeof(status));  			tx_status(hw, skb, &status, !error);  		} else {  			struct sk_buff_head *q = @@ -603,7 +607,9 @@ static int filter_ack(struct ieee80211_hw *hw, struct ieee80211_hdr *rx_hdr,  		tx_hdr = (struct ieee80211_hdr *)skb->data;  		if (likely(!compare_ether_addr(tx_hdr->addr2, rx_hdr->addr1)))  		{ -			struct ieee80211_tx_status status = {{0}}; +			struct ieee80211_tx_status status; + +			memset(&status, 0, sizeof(status));  			status.flags = IEEE80211_TX_STATUS_ACK;  			status.ack_signal = stats->ssi;  			__skb_unlink(skb, q); | 
