提交 3605d751 编写于 作者: J James Minor 提交者: Kalle Valo

ath6kl: fix busreqs so they can be reused when sg is cleaned up

To reuse the busreqs in case of hardware restart, they must be
properly reinitialized.  If the scat_req pointer isn't reset to
0, __ath6kl_sdio_write_async() will assume there is sg work to be
done (causing a kernel OOPS).
Signed-off-by: NJames Minor <james.minor@ni.com>
Reviewed-by: NSteve deRosier <steve.derosier@lairdtech.com>
Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
上级 ebee76f7
...@@ -703,8 +703,10 @@ static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar) ...@@ -703,8 +703,10 @@ static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar)
* ath6kl_hif_rw_comp_handler() with status -ECANCELED so * ath6kl_hif_rw_comp_handler() with status -ECANCELED so
* that the packet is properly freed? * that the packet is properly freed?
*/ */
if (s_req->busrequest) if (s_req->busrequest) {
s_req->busrequest->scat_req = 0;
ath6kl_sdio_free_bus_req(ar_sdio, s_req->busrequest); ath6kl_sdio_free_bus_req(ar_sdio, s_req->busrequest);
}
kfree(s_req->virt_dma_buf); kfree(s_req->virt_dma_buf);
kfree(s_req->sgentries); kfree(s_req->sgentries);
kfree(s_req); kfree(s_req);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册