xf86-video-intel: src/sna/sna_display.c src/sna/sna_driver.c
Chris Wilson
ickle at kemper.freedesktop.org
Mon Mar 17 06:50:33 PDT 2014
src/sna/sna_display.c | 9 +++++++++
src/sna/sna_driver.c | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
New commits:
commit dc66e663a06f2ce7685eba1fdf9fad01786bcb4f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Mon Mar 17 13:46:05 2014 +0000
sna: Improve guard against loading palettes whilst headless
Whilst hosted, which is very similar to being headless, we do not even
have the kmode pointer and so checking kmode->count_crtcs is fatal.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index de08cb9..6e2d118 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3513,7 +3513,16 @@ bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna)
num_fake = 1;
mode->kmode = drmModeGetResources(sna->kgem.fd);
+ if (mode->kmode &&
+ (mode->kmode->count_crtcs == 0 ||
+ mode->kmode->count_connectors == 0)) {
+ drmModeFreeResources(mode->kmode);
+ mode->kmode = NULL;
+ }
if (mode->kmode) {
+ assert(mode->kmode->count_crtcs);
+ assert(mode->kmode->count_connectors);
+
xf86CrtcConfigInit(scrn, &sna_mode_funcs);
XF86_CRTC_CONFIG_PTR(scrn)->xf86_crtc_notify = sna_crtc_config_notify;
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index ef30149..5e1f440 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -1038,7 +1038,7 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
if (!miCreateDefColormap(screen))
return FALSE;
- if (sna->mode.kmode->count_crtcs &&
+ if (sna->mode.kmode &&
!xf86HandleColormaps(screen, 256, 8, sna_load_palette, NULL,
CMAP_RELOAD_ON_MODE_SWITCH |
CMAP_PALETTED_TRUECOLOR))
More information about the xorg-commit
mailing list