From ef67b1b232de7f71e961f3d73b240df615ac767c Mon Sep 17 00:00:00 2001 From: Zhu Yanjun Date: Mon, 23 Oct 2017 02:50:22 -0400 Subject: [PATCH] xscore: add dma address check When "swiotlb buffer is full" error occurs, the DMA allocation will fail. The data conn and control conn are disconnected. Then xscore will make error handling. In this error handling, the unallocated DMA address is unmapped. This will result in the crash. To avoid crash, the dma address check is added. Orabug: 27074085 Signed-off-by: Zhu Yanjun Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Dhaval Giani --- drivers/infiniband/ulp/xsigo/xscore/xscore_api.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/xsigo/xscore/xscore_api.c b/drivers/infiniband/ulp/xsigo/xscore/xscore_api.c index 524922010f2d..1cb4d6593fee 100644 --- a/drivers/infiniband/ulp/xsigo/xscore/xscore_api.c +++ b/drivers/infiniband/ulp/xsigo/xscore/xscore_api.c @@ -1282,7 +1282,8 @@ static void xscore_reclaim_recv_buffers(struct xscore_conn_ctx *ctx) desc->sg_mapping[j], PAGE_SIZE, DMA_FROM_DEVICE); - } else if (desc->skb || desc->vaddr) { + } else if ((desc->skb || desc->vaddr) && + (desc->sg_mapping[0])) { ib_dma_unmap_single(ca, desc->sg_mapping[0], desc->size, DMA_FROM_DEVICE); -- 2.50.1