From: Daniel Vetter <daniel@ffwll.ch>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
syzbot+6ea337c427f5083ebdf2@syzkaller.appspotmail.com,
Daniel Vetter <daniel.vetter@ffwll.ch>,
Sean Paul <sean@poorly.run>, David Airlie <airlied@linux.ie>,
stable@vger.kernel.org
Subject: Re: [PATCH] drm: Reorder set_property_atomic to avoid returning with an active ww_ctx
Date: Mon, 7 Jan 2019 11:30:07 +0100 [thread overview]
Message-ID: <20190107103007.GE21184@phenom.ffwll.local> (raw)
In-Reply-To: <154651061429.27300.443406492276076372@skylake-alporthouse-com>
On Thu, Jan 03, 2019 at 10:16:54AM +0000, Chris Wilson wrote:
> Quoting Maarten Lankhorst (2019-01-03 09:03:27)
> > Op 30-12-2018 om 13:28 schreef Chris Wilson:
> > > Delay the drm_modeset_acquire_init() until after we check for an
> > > allocation failure so that we can return immediately upon error without
> > > having to unwind.
> > >
> > > WARNING: lock held when returning to user space!
> > > 4.20.0+ #174 Not tainted
> > > ------------------------------------------------
> > > syz-executor556/8153 is leaving the kernel with locks still held!
> > > 1 lock held by syz-executor556/8153:
> > > #0: 000000005100c85c (crtc_ww_class_acquire){+.+.}, at:
> > > set_property_atomic+0xb3/0x330 drivers/gpu/drm/drm_mode_object.c:462
> > >
> > > Reported-by: syzbot+6ea337c427f5083ebdf2@syzkaller.appspotmail.com
> > > Fixes: 144a7999d633 ("drm: Handle properties in the core for atomic drivers")
> > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > Cc: Sean Paul <sean@poorly.run>
> > > Cc: David Airlie <airlied@linux.ie>
> > > Cc: <stable@vger.kernel.org> # v4.14+
> > > ---
> > > drivers/gpu/drm/drm_mode_object.c | 5 +++--
> > > 1 file changed, 3 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_mode_object.c b/drivers/gpu/drm/drm_mode_object.c
> > > index bb1dd46496cd..a9005c1c2384 100644
> > > --- a/drivers/gpu/drm/drm_mode_object.c
> > > +++ b/drivers/gpu/drm/drm_mode_object.c
> > > @@ -459,12 +459,13 @@ static int set_property_atomic(struct drm_mode_object *obj,
> > > struct drm_modeset_acquire_ctx ctx;
> > > int ret;
> > >
> > > - drm_modeset_acquire_init(&ctx, 0);
> > > -
> > > state = drm_atomic_state_alloc(dev);
> > > if (!state)
> > > return -ENOMEM;
> > > +
> > > + drm_modeset_acquire_init(&ctx, 0);
> > > state->acquire_ctx = &ctx;
> > > +
> > > retry:
> > > if (prop == state->dev->mode_config.dpms_property) {
> > > if (obj->type != DRM_MODE_OBJECT_CONNECTOR) {
> >
> > Woops only now see you did the same.. :)
>
> I'm impressed that syszbot managed to hit it! Afaict, it is only a
> debugging faux pas with no real user impact, so perhaps the stable is
> overkill.
Yeah, "small allocs can't fail" will make sure this isn't a real world
bug. syzbot uses fault injection stuff to hit these (at least that's what
it did in one of the destilled minimal reproduction cases in some other
very similar report).
> > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Ta, pushed to drm-misc-next
So agreed -next makes sense, no fixes (but I'm sure the autoselect will
pick it up anyway, but that one can't be helped).
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
prev parent reply other threads:[~2019-01-07 10:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-30 12:28 [PATCH] drm: Reorder set_property_atomic to avoid returning with an active ww_ctx Chris Wilson
2019-01-03 9:03 ` Maarten Lankhorst
2019-01-03 10:16 ` Chris Wilson
2019-01-07 10:30 ` Daniel Vetter [this message]
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=20190107103007.GE21184@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=airlied@linux.ie \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=sean@poorly.run \
--cc=stable@vger.kernel.org \
--cc=syzbot+6ea337c427f5083ebdf2@syzkaller.appspotmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox