diff -uprN xorg-server-1.17.2-org/hw/kdrive/ephyr/hostx.c xorg-server-1.17.2/hw/kdrive/ephyr/hostx.c --- xorg-server-1.17.2-org/hw/kdrive/ephyr/hostx.c 2015-06-17 00:21:07.000000000 +0900 +++ xorg-server-1.17.2/hw/kdrive/ephyr/hostx.c 2018-01-11 18:41:17.836034140 +0900 @@ -809,7 +809,6 @@ hostx_screen_init(KdScreenInfo *screen, xcb_shm_detach(HostX.conn, scrpriv->shminfo.shmseg); xcb_image_destroy(scrpriv->ximg); shmdt(scrpriv->shminfo.shmaddr); - shmctl(scrpriv->shminfo.shmid, IPC_RMID, 0); } else { free(scrpriv->ximg->data); @@ -841,7 +840,6 @@ hostx_screen_init(KdScreenInfo *screen, ("Can't attach SHM Segment, falling back to plain XImages"); HostX.have_shm = FALSE; xcb_image_destroy (scrpriv->ximg); - shmctl(scrpriv->shminfo.shmid, IPC_RMID, 0); } else { EPHYR_DBG("SHM segment attached %p", scrpriv->shminfo.shmaddr); @@ -850,8 +848,10 @@ hostx_screen_init(KdScreenInfo *screen, scrpriv->shminfo.shmseg, scrpriv->shminfo.shmid, FALSE); + xcb_aux_sync(HostX.conn); shm_success = TRUE; } + shmctl(scrpriv->shminfo.shmid, IPC_RMID, 0); } if (!ephyr_glamor && !shm_success) {