eth: fbnic: avoid double free when failing to DMA-map FW msg
[ Upstream commit 5bd1bafd4474ee26f504b41aba11f3e2a1175b88 ]
The semantics are that caller of fbnic_mbx_map_msg() retains
the ownership of the message on error. All existing callers
dutifully free the page.
Fixes: da3cde0820 ("eth: fbnic: Add FW communication mechanism")
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20250616195510.225819-1-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
31d50dfe9c
commit
670179265a
@@ -127,11 +127,8 @@ static int fbnic_mbx_map_msg(struct fbnic_dev *fbd, int mbx_idx,
|
||||
return -EBUSY;
|
||||
|
||||
addr = dma_map_single(fbd->dev, msg, PAGE_SIZE, direction);
|
||||
if (dma_mapping_error(fbd->dev, addr)) {
|
||||
free_page((unsigned long)msg);
|
||||
|
||||
if (dma_mapping_error(fbd->dev, addr))
|
||||
return -ENOSPC;
|
||||
}
|
||||
|
||||
mbx->buf_info[tail].msg = msg;
|
||||
mbx->buf_info[tail].addr = addr;
|
||||
|
||||
Reference in New Issue
Block a user