[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CA+G9fYuTpeu1MdLVe3ZNp3Bvx0c79mXwh2qun5MWseEweRO=FQ@mail.gmail.com>
Date: Tue, 30 Apr 2019 18:50:17 +0530
From: Naresh Kamboju <naresh.kamboju@...aro.org>
To: Hans Verkuil <hverkuil-cisco@...all.nl>
Cc: open list <linux-kernel@...r.kernel.org>,
linux-media@...r.kernel.org,
Sami Tolvanen <samitolvanen@...gle.com>,
paul.kocialkowski@...tlin.com, ezequiel@...labora.com,
treding@...dia.com, niklas.soderlund+renesas@...natech.se,
sakari.ailus@...ux.intel.com,
Hans Verkuil <hans.verkuil@...co.com>, mchehab@...nel.org,
lkft-triage@...ts.linaro.org
Subject: Re: vidioc_g_edid: BUG: Unable to handle kernel NULL pointer
dereference at virtual address 00000716
Hi Hans,
On Tue, 30 Apr 2019 at 12:58, Hans Verkuil <hverkuil-cisco@...all.nl> wrote:
>
> On 4/30/19 9:10 AM, Naresh Kamboju wrote:
> > v4l2-compliance test running on linux stable 4.9 reported kernel bug.
> > The crash is pointing to kernel module "vivid.ko" which was loaded by
> > test case. ( modprobe vivid.ko)
> >
> >
>
> It's a CEC related bug, this vivid patch should fix it. It's a backport of
> commit ed356f110403 ("media: vivid: check if the cec_adapter is valid"). This
> commit was only backported to 4.12 and up since it didn't apply to older kernels.
I have tested this patch on x86_64 and confirms this works.
v4l2-compliance test runs to complete successfully.
>
> Feel free to post this patch (after testing!) to the stable mailinglist for
> inclusion into 4.9.
I will post this patch on stable mailing list.
>
> Regards,
>
> Hans
>
> Signed-off-by: Hans Verkuil <hverkuil-cisco@...all.nl>
> ---
> --- a/drivers/media/platform/vivid/vivid-vid-common.c 2019-04-30 09:23:37.296797292 +0200
> +++ b/drivers/media/platform/vivid/vivid-vid-common.c 2019-04-30 09:24:09.581261759 +0200
> @@ -841,6 +841,7 @@
> 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;
> }
Best regards
Naresh Kamboju
Powered by blists - more mailing lists