diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8192se/trx.c')
| -rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c index 0e9f6ebf078..206561d7282 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192se/trx.c +++ b/drivers/net/wireless/rtlwifi/rtl8192se/trx.c @@ -611,6 +611,11 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,  		    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; +	}  	if (mac->opmode == NL80211_IFTYPE_STATION) {  		bw_40 = mac->bw_40;  	} else if (mac->opmode == NL80211_IFTYPE_AP || @@ -763,6 +768,7 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,  void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,  	bool firstseg, bool lastseg, struct sk_buff *skb)  { +	struct rtl_priv *rtlpriv = rtl_priv(hw);  	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));  	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));  	struct rtl_tcb_desc *tcb_desc = (struct rtl_tcb_desc *)(skb->cb); @@ -770,7 +776,12 @@ void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,  	dma_addr_t mapping = pci_map_single(rtlpci->pdev, skb->data, skb->len,  			PCI_DMA_TODEVICE); -    /* Clear all status	*/ +	if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { +		RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, +			 "DMA mapping error"); +		return; +	} +	/* Clear all status	*/  	CLEAR_PCI_TX_DESC_CONTENT(pdesc, TX_CMDDESC_SIZE_RTL8192S);  	/* This bit indicate this packet is used for FW download. */  |