[PATCH 3/3] Kludge -- Call RandR screen before cleaning up xf86 crtcs

Dave Airlie airlied at gmail.com
Mon Aug 13 23:43:11 PDT 2012


On Wed, Aug 8, 2012 at 10:49 AM, Keith Packard <keithp at keithp.com> wrote:
> The core RandR screen cleanup now involves cleaning up any GPU screen
> associations, and those call down into DDX to clean up the driver. If
> the pointers from the xf86 structures back to the core randr
> structures are set to NULL at that point, bad things happen.
>
> This patch "knows" that the core RandR close screen is underneath the
> xf86 randr close screen function, and so makes sure it gets called
> first.

Yeah its pretty kludgey but probably the best solution for now.

Reviewed-by: Dave Airlie <airlied at redhat.com>

>
> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
>  hw/xfree86/modes/xf86Crtc.c |   11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
> index 154f684..1947c5be 100644
> --- a/hw/xfree86/modes/xf86Crtc.c
> +++ b/hw/xfree86/modes/xf86Crtc.c
> @@ -726,6 +726,12 @@ xf86CrtcCloseScreen(ScreenPtr screen)
>
>      xf86RotateCloseScreen(screen);
>
> +    xf86RandR12CloseScreen(screen);
> +
> +    free(config->name);
> +
> +    screen->CloseScreen(screen);
> +
>      for (o = 0; o < config->num_output; o++) {
>          xf86OutputPtr output = config->output[o];
>
> @@ -749,10 +755,7 @@ xf86CrtcCloseScreen(ScreenPtr screen)
>          else if (screen->current_master)
>              DetachUnboundGPU(screen);
>      }
> -    xf86RandR12CloseScreen(screen);
> -
> -    free(config->name);
> -    return screen->CloseScreen(screen);
> +    return TRUE;
>  }
>
>  /*
> --
> 1.7.10.4
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list