[4.9] media: vivid: check if the cec_adapter is valid

Message ID 20190502051546.12515-1-naresh.kamboju@linaro.org
State New
Headers show
Series
  • [4.9] media: vivid: check if the cec_adapter is valid
Related show

Commit Message

Naresh Kamboju May 2, 2019, 5:15 a.m.
commit ed356f110403f6acc64dcbbbfdc38662ab9b06c2 upstream.

If CEC is not enabled for the vivid driver, then the adap pointer is NULL
and 'adap->phys_addr' will fail.

Cc: <stable@vger.kernel.org> # v4.9
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

[ Naresh: Fixed rebase conflict ]
Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>

---
 drivers/media/platform/vivid/vivid-vid-common.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
2.17.1

Comments

Greg KH May 2, 2019, 11:46 a.m. | #1
On Thu, May 02, 2019 at 06:15:46AM +0100, Naresh Kamboju wrote:
> commit ed356f110403f6acc64dcbbbfdc38662ab9b06c2 upstream.

> 

> If CEC is not enabled for the vivid driver, then the adap pointer is NULL

> and 'adap->phys_addr' will fail.

> 

> Cc: <stable@vger.kernel.org> # v4.9

> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

> [ Naresh: Fixed rebase conflict ]

> Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>

> ---

>  drivers/media/platform/vivid/vivid-vid-common.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/media/platform/vivid/vivid-vid-common.c b/drivers/media/platform/vivid/vivid-vid-common.c

> index f9a810e3f521..d380c2da1926 100644

> --- a/drivers/media/platform/vivid/vivid-vid-common.c

> +++ b/drivers/media/platform/vivid/vivid-vid-common.c

> @@ -841,6 +841,7 @@ int vidioc_g_edid(struct file *file, void *_fh,

>  	if (edid->start_block + edid->blocks > dev->edid_blocks)

>  		edid->blocks = dev->edid_blocks - edid->start_block;

>  	memcpy(edid->edid, dev->edid, edid->blocks * 128);

> -	cec_set_edid_phys_addr(edid->edid, edid->blocks * 128, adap->phys_addr);

> +        if (adap)


No tabs?

I'll go fix that up by hand :(

Patch

diff --git a/drivers/media/platform/vivid/vivid-vid-common.c b/drivers/media/platform/vivid/vivid-vid-common.c
index f9a810e3f521..d380c2da1926 100644
--- a/drivers/media/platform/vivid/vivid-vid-common.c
+++ b/drivers/media/platform/vivid/vivid-vid-common.c
@@ -841,6 +841,7 @@  int vidioc_g_edid(struct file *file, void *_fh,
 	if (edid->start_block + edid->blocks > dev->edid_blocks)
 		edid->blocks = dev->edid_blocks - edid->start_block;
 	memcpy(edid->edid, dev->edid, edid->blocks * 128);
-	cec_set_edid_phys_addr(edid->edid, edid->blocks * 128, adap->phys_addr);
+        if (adap)
+		cec_set_edid_phys_addr(edid->edid, edid->blocks * 128, adap->phys_addr);
 	return 0;
 }