lkml.org 
[lkml]   [2019]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 054/177] ath10k: Correct error handling of dma_map_single()
    Date
    From: Bjorn Andersson <bjorn.andersson@linaro.org>

    [ Upstream commit d43810b2c1808ac865aa1a2a2c291644bf95345c ]

    The return value of dma_map_single() should be checked for errors using
    dma_mapping_error() and the skb has been dequeued so it needs to be
    freed.

    This was found when enabling CONFIG_DMA_API_DEBUG and it warned about the
    missing dma_mapping_error() call.

    Fixes: 1807da49733e ("ath10k: wmi: add management tx by reference support over wmi")
    Reported-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath10k/mac.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
    index 174e0ce31c42b..448e3a8c33a6d 100644
    --- a/drivers/net/wireless/ath/ath10k/mac.c
    +++ b/drivers/net/wireless/ath/ath10k/mac.c
    @@ -3844,8 +3844,10 @@ void ath10k_mgmt_over_wmi_tx_work(struct work_struct *work)
    ar->running_fw->fw_file.fw_features)) {
    paddr = dma_map_single(ar->dev, skb->data,
    skb->len, DMA_TO_DEVICE);
    - if (!paddr)
    + if (dma_mapping_error(ar->dev, paddr)) {
    + ieee80211_free_txskb(ar->hw, skb);
    continue;
    + }
    ret = ath10k_wmi_mgmt_tx_send(ar, skb, paddr);
    if (ret) {
    ath10k_warn(ar, "failed to transmit management frame by ref via WMI: %d\n",
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-12-10 22:44    [W:2.487 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site