From: Christophe JAILLET <christophe.jail...@wanadoo.fr>

[ Upstream commit 3b6471c7becd06325eb5e701cc2602b2edbbc7b6 ]

'res' is reassigned several times in the function and if we 'goto
error_unmap', its value is not the returned value of 'request_mem_region()'
anymore.

Introduce a new 'struct resource *' variable (i.e. res2) to keep a pointer
to the right resource, if needed in the error handling path.

Fixes: 4b4eda001704 ("Staging: media: Unmap and release region obtained by 
ioremap_nocache")

Signed-off-by: Christophe JAILLET <christophe.jail...@wanadoo.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/staging/media/davinci_vpfe/dm365_ipipe.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c 
b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
index 95942768639c..7bf2648affc0 100644
--- a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
+++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c
@@ -1777,7 +1777,7 @@ vpfe_ipipe_init(struct vpfe_ipipe_device *ipipe, struct 
platform_device *pdev)
        struct media_pad *pads = &ipipe->pads[0];
        struct v4l2_subdev *sd = &ipipe->subdev;
        struct media_entity *me = &sd->entity;
-       struct resource *res, *memres;
+       struct resource *res, *res2, *memres;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 4);
        if (!res)
@@ -1791,11 +1791,11 @@ vpfe_ipipe_init(struct vpfe_ipipe_device *ipipe, struct 
platform_device *pdev)
        if (!ipipe->base_addr)
                goto error_release;
 
-       res = platform_get_resource(pdev, IORESOURCE_MEM, 6);
-       if (!res)
+       res2 = platform_get_resource(pdev, IORESOURCE_MEM, 6);
+       if (!res2)
                goto error_unmap;
-       ipipe->isp5_base_addr = ioremap_nocache(res->start,
-                                               resource_size(res));
+       ipipe->isp5_base_addr = ioremap_nocache(res2->start,
+                                               resource_size(res2));
        if (!ipipe->isp5_base_addr)
                goto error_unmap;
 
-- 
2.20.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to