[Nouveau] [PATCH] drm/nouveau: fix duplication of nv50_head_atom struct
Peteris Rudzusiks
peteris.rudzusiks at gmail.com
Tue May 14 19:57:37 UTC 2019
On Tue, May 14, 2019 at 04:55:05PM +1000, Ben Skeggs wrote:
> On Sun, 12 May 2019 at 04:23, Peteris Rudzusiks
> <peteris.rudzusiks at gmail.com> wrote:
> >
> > nv50_head_atomic_duplicate_state() makes a copy of nv50_head_atom
> > struct. This patch adds copying of struct member named "or", which
> > previously was left uninitialized in the duplicated structure.
> >
> > Due to this bug, incorrect nhsync and nvsync values were sometimes used.
> > In my particular case, that lead to a mismatch between the output
> > resolution of the graphics device (GeForce GT 630 OEM) and the reported
> > input signal resolution on the display. xrandr reported 1680x1050, but
> > the display reported 1280x1024. As a result of this mismatch, the output
> > on the display looked like it was cropped (only part of the output was
> > actually visible on the display).
> >
> > git bisect pointed to commit 2ca7fb5c1cc6 ("drm/nouveau/kms/nv50: handle
> > SetControlOutputResource from head"), which added the member "or" to
> > nv50_head_atom structure, but forgot to copy it in
> > nv50_head_atomic_duplicate_state().
> >
> > Fixes: 2ca7fb5c1cc6 ("drm/nouveau/kms/nv50: handle SetControlOutputResource from head")
> > Signed-off-by: Peteris Rudzusiks <peteris.rudzusiks at gmail.com>
> Oops, nice catch. Thank you for this, I've merged it in my tree and
> will get it upstream ASAP.
>
> Thanks,
> Ben.
>
Hi Ben,
Thank you for taking the time to review and merge this patch.
I'm new to the Linux kernel development process, so I am not sure what
happens next. Does inclusion in your tree imply that this fix will end
up in some (most likely - next) mainline kernel? Will it also be
backported to 4.19 LTS branch?
This bug affects all kernel versions starting from v4.18. Probably not
that many systems though.
Cheers,
Peteris
> > ---
> > drivers/gpu/drm/nouveau/dispnv50/head.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c
> > index 2e7a0c347ddb..adce62f4e18f 100644
> > --- a/drivers/gpu/drm/nouveau/dispnv50/head.c
> > +++ b/drivers/gpu/drm/nouveau/dispnv50/head.c
> > @@ -413,6 +413,7 @@ nv50_head_atomic_duplicate_state(struct drm_crtc *crtc)
> > asyh->ovly = armh->ovly;
> > asyh->dither = armh->dither;
> > asyh->procamp = armh->procamp;
> > + asyh->or = armh->or;
> > asyh->dp = armh->dp;
> > asyh->clr.mask = 0;
> > asyh->set.mask = 0;
> > --
> > 2.17.1
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the Nouveau
mailing list