[PATCH v2] fpga: dfl: afu: Corrected error handling levels

From: Souptick Joarder
Date: Mon May 18 2020 - 14:12:04 EST


Corrected error handling goto sequnece. Level put_pages should
be called when pinned pages >= 0 && pinned != npages. Level
free_pages should be called when pinned pages < 0.

Fixes: fa8dda1edef9 (fpga: dfl: afu: add DFL_FPGA_PORT_DMA_MAP/
UNMAP ioctls support)

Signed-off-by: Souptick Joarder <jrdr.linux@xxxxxxxxx>
Acked-by: Wu Hao <hao.wu@xxxxxxxxx>
Reviewed-by: Xu Yilun <yilun.xu@xxxxxxxxx>
---
v2: Updated change logs and few reviews.

drivers/fpga/dfl-afu-dma-region.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/fpga/dfl-afu-dma-region.c b/drivers/fpga/dfl-afu-dma-region.c
index 62f9244..5942343 100644
--- a/drivers/fpga/dfl-afu-dma-region.c
+++ b/drivers/fpga/dfl-afu-dma-region.c
@@ -61,10 +61,10 @@ static int afu_dma_pin_pages(struct dfl_feature_platform_data *pdata,
region->pages);
if (pinned < 0) {
ret = pinned;
- goto put_pages;
+ goto free_pages;
} else if (pinned != npages) {
ret = -EFAULT;
- goto free_pages;
+ goto put_pages;
}

dev_dbg(dev, "%d pages pinned\n", pinned);
--
1.9.1