media: davinci_vpfe: fix vpfe_ipipe_init() error handling
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 6 Apr 2018 10:26:34 +0000 (06:26 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 17 Apr 2018 09:23:06 +0000 (05:23 -0400)
commit3585fdc77e66a6f95858380dca29c3a804ba3525
tree79c8cb13d6e6036fb9b72a665f2b81014a28c08d
parenta8a04370208f2a9a4c72e6f17e6abb157c9bcf21
media: davinci_vpfe: fix vpfe_ipipe_init() error handling

As warned:
drivers/staging/media/davinci_vpfe/dm365_ipipe.c:1834 vpfe_ipipe_init() error: we previously assumed 'res' could be null (see line 1797)

There's something wrong at vpfe_ipipe_init():

1) it caches the resourse_size() from from the first region
   and reuses to the second region;

2) the "res" var is overridden 3 times;

3) at free logic, it assumes that "res->start" is not
   overridden by platform_get_resource(pdev, IORESOURCE_MEM, 6),
   but that's not true, as it can even be NULL there.

This patch fixes the above issues by:

a) store the resources used by release_mem_region() on
   a separate var;

b) stop caching resource_size(), using the function where
   needed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/staging/media/davinci_vpfe/dm365_ipipe.c