Message ID | 20220513092526.9670-7-yunfei.dong@mediatek.com |
---|---|
State | Superseded |
Headers | show |
Series | support mt8195 decoder | expand |
On 5/18/22 13:29, yunfei.dong@mediatek.com wrote: > Dear Hans, > > Thanks for your review. > On Wed, 2022-05-18 at 11:37 +0200, Hans Verkuil wrote: >> Hi Yunfei, >> >> On 5/13/22 11:25, Yunfei Dong wrote: >>> When SCP timeout during playing video, kernel crashes with >>> following >>> message. It's caused by accessing NULL pointer in >>> vpu_dec_ipi_handler. >>> This patch doesn't solve the root cause of NULL pointer, but merely >>> prevent kernel crashed when encounter the NULL pointer. >> >> Is the root cause being addressed as well? Where is the root cause? >> Is it >> in this driver or in the scp (i.e. the remoteproc) driver? >> >> I need a bit more information to decide whether this series is ready >> to >> be merged for 5.20 or not. >> >> Regards, >> >> Hans >> > Vpu will be NUll when scp(micro processor) is hang or crash. Need to > keep kernel works well , so add this patch. OK, I think this should be stated in the commit log, and also in the code (see below). > > Best Regards, > Yunfei Dong <snip> >>> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c >>> b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c >>> index 35f4d5583084..1041dd663e76 100644 >>> --- a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c >>> +++ b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c >>> @@ -91,6 +91,11 @@ static void vpu_dec_ipi_handler(void *data, >>> unsigned int len, void *priv) >>> struct vdec_vpu_inst *vpu = (struct vdec_vpu_inst *) >>> (unsigned long)msg- >>>> ap_inst_addr; >>> >>> + if (!vpu) { >>> + mtk_v4l2_err("ap_inst_addr is NULL"); E.g., either add a comment here or perhaps change the error message to: "ap_inst_addr is NULL, did the SCP hang?" Or something along those lines. Shouldn't there be a \n at the end of this message as well? Or does mtk_v4l2_err add that? Regards, Hans >>> + return; >>> + } >>> + >>> mtk_vcodec_debug(vpu, "+ id=%X", msg->msg_id); >>> >>> vpu->failure = msg->status; >
Dear Hans, Thanks for your suggestion. On Wed, 2022-05-18 at 13:34 +0200, Hans Verkuil wrote: > > On 5/18/22 13:29, yunfei.dong@mediatek.com wrote: > > Dear Hans, > > > > Thanks for your review. > > On Wed, 2022-05-18 at 11:37 +0200, Hans Verkuil wrote: > > > Hi Yunfei, > > > > > > On 5/13/22 11:25, Yunfei Dong wrote: > > > > When SCP timeout during playing video, kernel crashes with > > > > following > > > > message. It's caused by accessing NULL pointer in > > > > vpu_dec_ipi_handler. > > > > This patch doesn't solve the root cause of NULL pointer, but > > > > merely > > > > prevent kernel crashed when encounter the NULL pointer. > > > > > > Is the root cause being addressed as well? Where is the root > > > cause? > > > Is it > > > in this driver or in the scp (i.e. the remoteproc) driver? > > > > > > I need a bit more information to decide whether this series is > > > ready > > > to > > > be merged for 5.20 or not. > > > > > > Regards, > > > > > > Hans > > > > > > > Vpu will be NUll when scp(micro processor) is hang or crash. Need > > to > > keep kernel works well , so add this patch. > > OK, I think this should be stated in the commit log, and also in the > code > (see below). > > > > > Best Regards, > > Yunfei Dong > > <snip> > > > > > diff --git > > > > a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c > > > > b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c > > > > index 35f4d5583084..1041dd663e76 100644 > > > > --- a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c > > > > +++ b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c > > > > @@ -91,6 +91,11 @@ static void vpu_dec_ipi_handler(void *data, > > > > unsigned int len, void *priv) > > > > struct vdec_vpu_inst *vpu = (struct vdec_vpu_inst *) > > > > (unsigned long)msg- > > > > > ap_inst_addr; > > > > > > > > > > > > + if (!vpu) { > > > > + mtk_v4l2_err("ap_inst_addr is NULL"); > > E.g., either add a comment here or perhaps change the error message > to: > > "ap_inst_addr is NULL, did the SCP hang?" > > Or something along those lines. > I will change the message in next patch like below. mtk_v4l2_err("ap_inst_addr is NULL, did the SCP hang or crash?"); > Shouldn't there be a \n at the end of this message as well? Or does > mtk_v4l2_err add that? > mtk_v4l2_err add '\n' in the end. > Regards, > > Hans > Best Regards, Yunfei Dong > > > > + return; > > > > + } > > > > + > > > > mtk_vcodec_debug(vpu, "+ id=%X", msg->msg_id); > > > > > > > > vpu->failure = msg->status;
diff --git a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c index 35f4d5583084..1041dd663e76 100644 --- a/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c +++ b/drivers/media/platform/mediatek/vcodec/vdec_vpu_if.c @@ -91,6 +91,11 @@ static void vpu_dec_ipi_handler(void *data, unsigned int len, void *priv) struct vdec_vpu_inst *vpu = (struct vdec_vpu_inst *) (unsigned long)msg->ap_inst_addr; + if (!vpu) { + mtk_v4l2_err("ap_inst_addr is NULL"); + return; + } + mtk_vcodec_debug(vpu, "+ id=%X", msg->msg_id); vpu->failure = msg->status;