From 7acc156970fcd3bb40958b77b76f948579ab54d9 Mon Sep 17 00:00:00 2001 From: Rohith Kollalsi Date: Thu, 24 Feb 2022 12:19:38 +0530 Subject: [PATCH] usb: u_qdss: Add proper error handling for map failure of iova dma_map_resource() API returns DMA_MAPPING_ERROR i.e -1 upon error. The current code checks against NULL which makes it think that the API returned successfully. The incorrect IOVA further results into SMMU fault. To fix this, add proper error handling for mapping failure of iova. Change-Id: I080049029ce01be13c603a1d709e37189a09484e Signed-off-by: Rohith Kollalsi --- drivers/usb/gadget/function/u_qdss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/u_qdss.c b/drivers/usb/gadget/function/u_qdss.c index 37cb678e0eef..b9d9b981db3f 100644 --- a/drivers/usb/gadget/function/u_qdss.c +++ b/drivers/usb/gadget/function/u_qdss.c @@ -73,7 +73,7 @@ int set_qdss_data_connection(struct f_qdss *qdss, int enable) bam_info.qdss_bam_iova = dma_map_resource(dev->parent, bam_info.qdss_bam_phys, bam_info.qdss_bam_size, DMA_BIDIRECTIONAL, 0); - if (!bam_info.qdss_bam_iova) { + if (dma_mapping_error(dev, bam_info.qdss_bam_iova)) { pr_err("dma_map_resource failed\n"); return -ENOMEM; }