All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Andrzej Hajda <a.hajda@samsung.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 15/17] drm/tegra: Fix potential bug on driver unload
Date: Tue, 4 Nov 2014 13:30:34 +0100	[thread overview]
Message-ID: <20141104123031.GA23240@ulmo.nvidia.com> (raw)
In-Reply-To: <5458B1A2.1020309@samsung.com>


[-- Attachment #1.1: Type: text/plain, Size: 1635 bytes --]

On Tue, Nov 04, 2014 at 11:59:46AM +0100, Andrzej Hajda wrote:
> Hi Thierry,
> 
> Just passing by.
> 
> On 11/03/2014 10:27 AM, Thierry Reding wrote:
> > From: Thierry Reding <treding@nvidia.com>
> > 
> > The HDMI hotplug signal may toggle after the DRM driver has been
> > unloaded. Make sure not to call into DRM if that's the case.
> > 
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> > ---
> >  drivers/gpu/drm/tegra/output.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c
> > index 6b393cfbb5e7..def74914dd72 100644
> > --- a/drivers/gpu/drm/tegra/output.c
> > +++ b/drivers/gpu/drm/tegra/output.c
> > @@ -181,7 +181,8 @@ static irqreturn_t hpd_irq(int irq, void *data)
> >  {
> >  	struct tegra_output *output = data;
> >  
> > -	drm_helper_hpd_irq_event(output->connector.dev);
> > +	if (output->connector.dev)
> > +		drm_helper_hpd_irq_event(output->connector.dev);
> >  
> >  	return IRQ_HANDLED;
> >  }
> > 
> 
> Since output->connector.dev is not synchronized between irq and other
> code this patch do not solves the issue, it just decreases chances of
> the disaster.

You're right. I guess in addition to this we could call enable_irq()
when the connector is bound to the DRM device and disable_irq() when it
is unbound. Actually, that should even allow drm_helper_hpd_irq_event()
to be called unconditionally because .dev could not be NULL in that
case.

Upon closer inspection it seems like the majority of drivers would fall
prey to this particular race.

Thierry

[-- Attachment #1.2: Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-11-04 12:30 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-03  9:27 [PATCH 01/17] drm/tegra: dc: Add powergate support Thierry Reding
2014-11-03  9:27 ` [PATCH 02/17] drm/tegra: Do not enable output on .mode_set() Thierry Reding
2014-11-03 17:18   ` Sean Paul
2014-11-04 14:50     ` Thierry Reding
2014-11-04 15:11       ` Sean Paul
2014-11-04 15:26         ` Thierry Reding
2014-11-04 16:38           ` Daniel Vetter
2014-11-03  9:27 ` [PATCH 03/17] drm/tegra: dsi: Make FIFO depths host parameters Thierry Reding
2014-11-03 17:20   ` Sean Paul
2014-11-04 15:45     ` Thierry Reding
2014-11-03  9:27 ` [PATCH v2 04/17] drm/tegra: dsi: Add ganged mode support Thierry Reding
2014-11-03 18:30   ` Sean Paul
2014-11-04 15:49     ` Thierry Reding
2014-11-03  9:27 ` [PATCH 05/17] drm/tegra: dsi: Set up PHY_TIMING & BTA_TIMING registers earlier Thierry Reding
2014-11-03  9:27 ` [PATCH 06/17] drm/tegra: dc: Add missing call to drm_vblank_on() Thierry Reding
2014-11-03 18:45   ` Sean Paul
2014-11-03 18:50     ` Daniel Vetter
2014-11-04 14:08     ` Thierry Reding
2014-11-04  4:21   ` Alexandre Courbot
2014-11-03  9:27 ` [PATCH 07/17] drm/tegra: gem: Extract tegra_bo_alloc_object() Thierry Reding
2014-11-03  9:27 ` [PATCH 08/17] drm/tegra: gem: Cleanup tegra_bo_create_with_handle() Thierry Reding
2014-11-03  9:27 ` [PATCH 09/17] drm/tegra: gem: Remove redundant drm_gem_free_mmap_offset() Thierry Reding
2014-11-03  9:27 ` [PATCH 10/17] drm/tegra: gem: Use dma_mmap_writecombine() Thierry Reding
2014-11-03  9:27 ` [PATCH v5 11/17] drm/tegra: Add IOMMU support Thierry Reding
2014-11-03  9:27 ` [PATCH 12/17] drm/tegra: dc: Factor out DC, window and cursor commit Thierry Reding
2014-11-03  9:27 ` [PATCH 13/17] drm/tegra: dc: Registers are 32 bits wide Thierry Reding
2014-11-03  9:27 ` [PATCH 14/17] drm/tegra: dc: Universal plane support Thierry Reding
2014-11-03  9:27 ` [PATCH 15/17] drm/tegra: Fix potential bug on driver unload Thierry Reding
2014-11-04 10:59   ` Andrzej Hajda
2014-11-04 12:30     ` Thierry Reding [this message]
2014-11-03  9:27 ` [PATCH 16/17] drm/tegra: gem: dumb: pitch and size are outputs Thierry Reding
2014-11-03  9:51   ` Daniel Vetter
2014-11-03 10:12     ` Thierry Reding
2014-11-03  9:27 ` [PATCH 17/17] drm/tegra: fb: Do not destroy framebuffer Thierry Reding
2014-11-03  9:53   ` Daniel Vetter
2014-11-04 16:08     ` Thierry Reding
2014-11-03 17:15 ` [PATCH 01/17] drm/tegra: dc: Add powergate support Sean Paul
2014-11-04 12:34   ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141104123031.GA23240@ulmo.nvidia.com \
    --to=thierry.reding@gmail.com \
    --cc=a.hajda@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.