diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8192ce/trx.c')
| -rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ce/trx.c | 16 | 
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c index 17342475614..b9b1a6e0b16 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c @@ -488,7 +488,7 @@ static void _rtl92ce_translate_rx_signal_stuff(struct ieee80211_hw *hw,  	u8 *praddr;  	__le16 fc;  	u16 type, c_fc; -	bool packet_matchbssid, packet_toself, packet_beacon; +	bool packet_matchbssid, packet_toself, packet_beacon = false;  	tmp_buf = skb->data + pstats->rx_drvinfo_size + pstats->rx_bufshift; @@ -611,8 +611,14 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,  	dma_addr_t mapping = pci_map_single(rtlpci->pdev,  					    skb->data, skb->len,  					    PCI_DMA_TODEVICE); +  	u8 bw_40 = 0; +	if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { +		RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, +			 "DMA mapping error"); +		return; +	}  	rcu_read_lock();  	sta = get_sta(hw, mac->vif, mac->bssid);  	if (mac->opmode == NL80211_IFTYPE_STATION) { @@ -620,8 +626,7 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,  	} else if (mac->opmode == NL80211_IFTYPE_AP ||  		mac->opmode == NL80211_IFTYPE_ADHOC) {  		if (sta) -			bw_40 = sta->ht_cap.cap & -				IEEE80211_HT_CAP_SUP_WIDTH_20_40; +			bw_40 = sta->bandwidth >= IEEE80211_STA_RX_BW_40;  	}  	seq_number = (le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4; @@ -774,6 +779,11 @@ void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)(skb->data);  	__le16 fc = hdr->frame_control; +	if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { +		RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, +			 "DMA mapping error"); +		return; +	}  	CLEAR_PCI_TX_DESC_CONTENT(pdesc, TX_DESC_SIZE);  	if (firstseg)  |