Message ID | 20220305091411.18255-1-baijiaju1990@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | e0058f0fa80f6e09c4d363779c241c45a3c56b94 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2] net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare() | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Sat, 5 Mar 2022 01:14:11 -0800 you wrote: > The function dma_alloc_coherent() in qed_vf_hw_prepare() can fail, so > its return value should be checked. > > Fixes: 1408cc1fa48c ("qed: Introduce VFs") > Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> > Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> > > [...] Here is the summary with links: - [v2] net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare() https://git.kernel.org/netdev/net/c/e0058f0fa80f You are awesome, thank you!
diff --git a/drivers/net/ethernet/qlogic/qed/qed_vf.c b/drivers/net/ethernet/qlogic/qed/qed_vf.c index 597cd9cd57b5..7b0e390c0b07 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_vf.c +++ b/drivers/net/ethernet/qlogic/qed/qed_vf.c @@ -513,6 +513,9 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn) p_iov->bulletin.size, &p_iov->bulletin.phys, GFP_KERNEL); + if (!p_iov->bulletin.p_virt) + goto free_pf2vf_reply; + DP_VERBOSE(p_hwfn, QED_MSG_IOV, "VF's bulletin Board [%p virt 0x%llx phys 0x%08x bytes]\n", p_iov->bulletin.p_virt, @@ -552,6 +555,10 @@ int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn) return rc; +free_pf2vf_reply: + dma_free_coherent(&p_hwfn->cdev->pdev->dev, + sizeof(union pfvf_tlvs), + p_iov->pf2vf_reply, p_iov->pf2vf_reply_phys); free_vf2pf_request: dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(union vfpf_tlvs),
The function dma_alloc_coherent() in qed_vf_hw_prepare() can fail, so its return value should be checked. Fixes: 1408cc1fa48c ("qed: Introduce VFs") Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> --- v2: * Fix a memory leak of p_iov->pf2vf_reply in error handling code. Thank Jakub for good advice. --- drivers/net/ethernet/qlogic/qed/qed_vf.c | 7 +++++++ 1 file changed, 7 insertions(+)