From: Maarten Lankhorst <maarten.lankhorst@canonical.com>
To: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: "Ortwin Glück" <odi@odi.ch>,
airlied@redhat.com, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, bskeggs@redhat.com
Subject: Re: drm/nouveau: crash regression in 3.5
Date: Mon, 30 Jul 2012 10:46:32 +0200 [thread overview]
Message-ID: <501649E8.6010002@canonical.com> (raw)
In-Reply-To: <20120729201532.GA3566@joi.lan>
Hey,
Op 29-07-12 22:15, Marcin Slusarz schreef:
> On Thu, Jul 26, 2012 at 02:56:22PM +0200, Ortwin Glück wrote:
>> On 25.07.2012 20:42, Marcin Slusarz wrote:
>>> Good, below patch should fix this panic.
>>>
>>> Note that you can hit an oops in drm_handle_vblank because patch from
>>> http://lists.freedesktop.org/archives/dri-devel/2012-May/023498.html
>>> has not been applied (yet?).
>> After applying your patch, it still crashes, although with a slightly
>> different stack trace. I then also applied the second patch, but that
>> doesn't make any difference. New log attached.
>>
>> Looks like interrupt occurs before nouveau_software_context_new() is
>> called? Shouldn't the initialization be done from
>> nouveau_irq_preinstall() so it is available when the irq occurs? Again,
>> I am not an expert here. Just guessing...
> No, the real problem is: with "noaccel" we don't register "software engine",
> but vblank ISR relies on its existance and happily derefences NULL pointer.
>
> Now, this patch should fix it for real...
>
> ---
> From: Marcin Slusarz <marcin.slusarz@gmail.com>
> Subject: [PATCH] drm/nouveau: disable vblank interrupts before registering PDISPLAY ISR
>
> Currently, we register vblank IRQ handler and later we disable vblank
> interrupts. So, for the short amount of time, we rely on vblank ISR
> to operate correctly, even if vblank interrupts are never going to be
> used later.
>
> In "noaccel" case, software engine - which is used by vblank ISR - is not
> registered, so if vblank interrupt triggers in a wrong moment, we can hit
> NULL pointer dereference in nouveau_software_vblank.
>
> To fix it, disable vblank interrupts before registering PDISPLAY ISR.
>
> Reported-by: Ortwin Glück <odi@odi.ch>
> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
> Cc: stable@vger.kernel.org [3.5]
>
I can confirm this bug when I was working on adding d0 vblank, but it seems
to me like nv*_display_create would be a more logical place to put the disable
call. This will make it more clear that vblank is disabled before the irq is registered.
Also maybe add a WARN_ON(!nv_engine(dev, NVOBJ_ENGINE_SW)); in
nouveau_vblank_enable and/or return -EINVAL in that case?
If you add the modification to nouveau_vblank_enable:
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
~Maarten
next prev parent reply other threads:[~2012-07-30 8:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-23 18:01 drm/nouveau: crash regression in 3.5 Ortwin Glück
2012-07-24 17:00 ` Marcin Slusarz
2012-07-24 17:22 ` Ortwin Glück
2012-07-24 20:57 ` Marcin Slusarz
2012-07-25 8:46 ` Ortwin Glück
2012-07-25 18:42 ` Marcin Slusarz
2012-07-26 12:56 ` Ortwin Glück
2012-07-26 15:47 ` Marcin Slusarz
2012-07-29 20:15 ` Marcin Slusarz
2012-07-29 20:15 ` Marcin Slusarz
2012-07-30 8:46 ` Maarten Lankhorst [this message]
2012-07-30 11:16 ` Ortwin Glück
2012-07-30 17:16 ` Marcin Slusarz
2012-07-31 7:06 ` Ortwin Glück
2012-08-01 15:47 ` Ortwin Glück
2012-08-02 11:26 ` Ortwin Glück
2012-08-02 16:56 ` Marcin Slusarz
2012-10-30 17:47 ` Ortwin Glück
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=501649E8.6010002@canonical.com \
--to=maarten.lankhorst@canonical.com \
--cc=airlied@redhat.com \
--cc=bskeggs@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcin.slusarz@gmail.com \
--cc=odi@odi.ch \
/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.