On Mon, Mar 27, 2017 at 08:13:17PM -0400, Harry Wentland wrote: > On Wednesday, March 22, 2017 10:50:52 PM EDT Daniel Vetter wrote: > > No need to grab both plane and crtc locks at the same time, we can do > > them one after the other. If userspace races it'll get what it > > deserves either way. > > > > This removes another user of drm_modeset_lock_crtc. There's only one > > left. > > > > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > > --- > > drivers/gpu/drm/drm_crtc.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > > index 660b4c8715de..df1ff0b8818b 100644 > > --- a/drivers/gpu/drm/drm_crtc.c > > +++ b/drivers/gpu/drm/drm_crtc.c > > @@ -406,16 +406,18 @@ int drm_mode_getcrtc(struct drm_device *dev, > > if (!crtc) > > return -ENOENT; > > > > - drm_modeset_lock_crtc(crtc, crtc->primary); > > crtc_resp->gamma_size = crtc->gamma_size; > > > > + drm_modeset_lock(&crtc->primary->mutex, NULL); > > if (crtc->primary->state && crtc->primary->state->fb) > > crtc_resp->fb_id = crtc->primary->state->fb->base.id; > > else if (!crtc->primary->state && crtc->primary->fb) > > crtc_resp->fb_id = crtc->primary->fb->base.id; > > else > > crtc_resp->fb_id = 0; > > + drm_modeset_unlock(&crtc->primary->mutex); > > > > + drm_modeset_lock(&crtc->mutex, NULL); > > if (crtc->state) { > > crtc_resp->x = crtc->primary->state->src_x >> 16; > > crtc_resp->y = crtc->primary->state->src_y >> 16; > > What about crtc->primary here? Shouldn't that also be locked with the crtc- > >primary->mutex or do we treat state differently? Still not 100% on the exact > locking semantics. I misread the code, I thought we only access crtc->state here. I'll shuffle this around so that crtc->primary->state is properly protected, that's indeed a bug. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx