dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* drm/mediatek: fixup crtc event null pointer issue
@ 2022-03-14  7:42 Yongqiang Niu
  2022-03-14  7:42 ` [PATCH v1, 1/1] " Yongqiang Niu
  0 siblings, 1 reply; 6+ messages in thread
From: Yongqiang Niu @ 2022-03-14  7:42 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: devicetree, Project_Global_Chrome_Upstream_Group, David Airlie,
	Jassi Brar, linux-kernel, dri-devel, Yongqiang Niu,
	Dennis YC Hsieh, Fabien Parent, Rob Herring, linux-mediatek,
	Hsin-Yi Wang, Matthias Brugger, linux-arm-kernel

base linux v5.17-rc1

Yongqiang Niu (1):
  drm/mediatek: fixup crtc event null pointer issue

 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
 1 file changed, 3 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v1, 1/1] drm/mediatek: fixup crtc event null pointer issue
  2022-03-14  7:42 drm/mediatek: fixup crtc event null pointer issue Yongqiang Niu
@ 2022-03-14  7:42 ` Yongqiang Niu
  2022-03-17 12:49   ` Rex-BC Chen
  2022-03-28  9:34   ` CK Hu
  0 siblings, 2 replies; 6+ messages in thread
From: Yongqiang Niu @ 2022-03-14  7:42 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: devicetree, Project_Global_Chrome_Upstream_Group, David Airlie,
	Jassi Brar, linux-kernel, dri-devel, Yongqiang Niu,
	Dennis YC Hsieh, Fabien Parent, Rob Herring, linux-mediatek,
	Hsin-Yi Wang, Matthias Brugger, linux-arm-kernel

if crtc event is null pointer, do not send vblank event

Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
index d661edf7e0fe..265fed446628 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
@@ -92,6 +92,9 @@ static void mtk_drm_crtc_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)
 	struct drm_crtc *crtc = &mtk_crtc->base;
 	unsigned long flags;
 
+	if (!mtk_crtc->event)
+		return;
+
 	spin_lock_irqsave(&crtc->dev->event_lock, flags);
 	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
 	drm_crtc_vblank_put(crtc);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1, 1/1] drm/mediatek: fixup crtc event null pointer issue
  2022-03-14  7:42 ` [PATCH v1, 1/1] " Yongqiang Niu
@ 2022-03-17 12:49   ` Rex-BC Chen
  2022-03-28  9:34   ` CK Hu
  1 sibling, 0 replies; 6+ messages in thread
From: Rex-BC Chen @ 2022-03-17 12:49 UTC (permalink / raw)
  To: Yongqiang Niu, Chun-Kuang Hu
  Cc: devicetree, Project_Global_Chrome_Upstream_Group, David Airlie,
	Jassi Brar, linux-kernel, dri-devel, Dennis YC Hsieh,
	Fabien Parent, Rob Herring, linux-mediatek, Hsin-Yi Wang,
	Matthias Brugger, linux-arm-kernel

On Mon, 2022-03-14 at 15:42 +0800, Yongqiang Niu wrote:
> if crtc event is null pointer, do not send vblank event
> 
> Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> index d661edf7e0fe..265fed446628 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> @@ -92,6 +92,9 @@ static void mtk_drm_crtc_finish_page_flip(struct
> mtk_drm_crtc *mtk_crtc)
>  	struct drm_crtc *crtc = &mtk_crtc->base;
>  	unsigned long flags;
>  
> +	if (!mtk_crtc->event)
> +		return;
> +

Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>

>  	spin_lock_irqsave(&crtc->dev->event_lock, flags);
>  	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
>  	drm_crtc_vblank_put(crtc);


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1, 1/1] drm/mediatek: fixup crtc event null pointer issue
  2022-03-14  7:42 ` [PATCH v1, 1/1] " Yongqiang Niu
  2022-03-17 12:49   ` Rex-BC Chen
@ 2022-03-28  9:34   ` CK Hu
  2022-05-11 10:08     ` yongqiang.niu
  1 sibling, 1 reply; 6+ messages in thread
From: CK Hu @ 2022-03-28  9:34 UTC (permalink / raw)
  To: Yongqiang Niu, Chun-Kuang Hu
  Cc: devicetree, David Airlie, Dennis YC Hsieh, Jassi Brar,
	linux-kernel, dri-devel, Project_Global_Chrome_Upstream_Group,
	Fabien Parent, Rob Herring, linux-mediatek, Hsin-Yi Wang,
	Matthias Brugger, linux-arm-kernel

Hi, Yongqiang:

On Mon, 2022-03-14 at 15:42 +0800, Yongqiang Niu wrote:
> if crtc event is null pointer, do not send vblank event

This is a bug-fix, so add a Fixes tag here.

> 
> Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> index d661edf7e0fe..265fed446628 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> @@ -92,6 +92,9 @@ static void mtk_drm_crtc_finish_page_flip(struct
> mtk_drm_crtc *mtk_crtc)
>  	struct drm_crtc *crtc = &mtk_crtc->base;
>  	unsigned long flags;
>  
> +	if (!mtk_crtc->event)
> +		return;
> +
>  	spin_lock_irqsave(&crtc->dev->event_lock, flags);
>  	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);

I think pending_needs_vblank is used to protect this situation. It
seems that pending_needs_vblank should be protected by critical
section.

Regards,
CK

>  	drm_crtc_vblank_put(crtc);


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1, 1/1] drm/mediatek: fixup crtc event null pointer issue
  2022-03-28  9:34   ` CK Hu
@ 2022-05-11 10:08     ` yongqiang.niu
  2022-05-12  5:20       ` CK Hu
  0 siblings, 1 reply; 6+ messages in thread
From: yongqiang.niu @ 2022-05-11 10:08 UTC (permalink / raw)
  To: CK Hu, Chun-Kuang Hu
  Cc: devicetree, David Airlie, Dennis YC Hsieh, Jassi Brar,
	linux-kernel, dri-devel, Project_Global_Chrome_Upstream_Group,
	Fabien Parent, Rob Herring, linux-mediatek, Hsin-Yi Wang,
	Matthias Brugger, linux-arm-kernel

On Mon, 2022-03-28 at 17:34 +0800, CK Hu wrote:
> Hi, Yongqiang:
> 
> On Mon, 2022-03-14 at 15:42 +0800, Yongqiang Niu wrote:
> > if crtc event is null pointer, do not send vblank event
> 
> This is a bug-fix, so add a Fixes tag here.

Fixes tag will be added in next version.
> 
> > 
> > Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> > ---
> >  drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > index d661edf7e0fe..265fed446628 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > @@ -92,6 +92,9 @@ static void mtk_drm_crtc_finish_page_flip(struct
> > mtk_drm_crtc *mtk_crtc)
> >  	struct drm_crtc *crtc = &mtk_crtc->base;
> >  	unsigned long flags;
> >  
> > +	if (!mtk_crtc->event)
> > +		return;
> > +
> >  	spin_lock_irqsave(&crtc->dev->event_lock, flags);
> >  	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
> 
> I think pending_needs_vblank is used to protect this situation. It
> seems that pending_needs_vblank should be protected by critical
> section.
> 
> Regards,
> CK
actually, in the NG case pending_needs_vblank is true, but crtc->event
is null.

> 
> >  	drm_crtc_vblank_put(crtc);
> 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1, 1/1] drm/mediatek: fixup crtc event null pointer issue
  2022-05-11 10:08     ` yongqiang.niu
@ 2022-05-12  5:20       ` CK Hu
  0 siblings, 0 replies; 6+ messages in thread
From: CK Hu @ 2022-05-12  5:20 UTC (permalink / raw)
  To: yongqiang.niu, Chun-Kuang Hu
  Cc: devicetree, David Airlie, Dennis YC Hsieh, Jassi Brar,
	linux-kernel, dri-devel, Project_Global_Chrome_Upstream_Group,
	Fabien Parent, Rob Herring, linux-mediatek, Hsin-Yi Wang,
	Matthias Brugger, linux-arm-kernel

Hi, Yongqiang:

On Wed, 2022-05-11 at 18:08 +0800, yongqiang.niu wrote:
> On Mon, 2022-03-28 at 17:34 +0800, CK Hu wrote:
> > Hi, Yongqiang:
> > 
> > On Mon, 2022-03-14 at 15:42 +0800, Yongqiang Niu wrote:
> > > if crtc event is null pointer, do not send vblank event
> > 
> > This is a bug-fix, so add a Fixes tag here.
> 
> Fixes tag will be added in next version.
> > 
> > > 
> > > Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com>
> > > ---
> > >  drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > > b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > > index d661edf7e0fe..265fed446628 100644
> > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> > > @@ -92,6 +92,9 @@ static void
> > > mtk_drm_crtc_finish_page_flip(struct
> > > mtk_drm_crtc *mtk_crtc)
> > >  	struct drm_crtc *crtc = &mtk_crtc->base;
> > >  	unsigned long flags;
> > >  
> > > +	if (!mtk_crtc->event)
> > > +		return;
> > > +
> > >  	spin_lock_irqsave(&crtc->dev->event_lock, flags);
> > >  	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
> > 
> > I think pending_needs_vblank is used to protect this situation. It
> > seems that pending_needs_vblank should be protected by critical
> > section.
> > 
> > Regards,
> > CK
> 
> actually, in the NG case pending_needs_vblank is true, but crtc-
> >event
> is null.

It looks like that other driver access an invalid address which store
mtk_crtc->event, so mediatek drm driver has no bug and we should fix
the bug from other driver. This work around does not fix bug but just
hide the bug. So try to fix this bug in other driver.

Regards,
CK

> 
> > 
> > >  	drm_crtc_vblank_put(crtc);
> > 
> > 
> 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-05-12  5:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-14  7:42 drm/mediatek: fixup crtc event null pointer issue Yongqiang Niu
2022-03-14  7:42 ` [PATCH v1, 1/1] " Yongqiang Niu
2022-03-17 12:49   ` Rex-BC Chen
2022-03-28  9:34   ` CK Hu
2022-05-11 10:08     ` yongqiang.niu
2022-05-12  5:20       ` CK Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).