diff options
-rw-r--r-- | hw/xfree86/common/xf86platformBus.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c index 15988b8b1..4ceff086c 100644 --- a/hw/xfree86/common/xf86platformBus.c +++ b/hw/xfree86/common/xf86platformBus.c @@ -560,22 +560,22 @@ xf86platformRemoveDevice(int index) if (found) break; } - if (!found) { - ErrorF("failed to find screen to remove\n"); - goto out; - } - xf86GPUScreens[i]->pScreen->CloseScreen(xf86GPUScreens[i]->pScreen); + if (found) { + xf86GPUScreens[i]->pScreen->CloseScreen(xf86GPUScreens[i]->pScreen); - RemoveGPUScreen(xf86GPUScreens[i]->pScreen); - xf86DeleteScreen(xf86GPUScreens[i]); + RemoveGPUScreen(xf86GPUScreens[i]->pScreen); + xf86DeleteScreen(xf86GPUScreens[i]); + } xf86UnclaimPlatformSlot(&xf86_platform_devices[index], NULL); xf86_remove_platform_device(index); - RRResourcesChanged(xf86Screens[0]->pScreen); - RRTellChanged(xf86Screens[0]->pScreen); + if (found) { + RRResourcesChanged(xf86Screens[0]->pScreen); + RRTellChanged(xf86Screens[0]->pScreen); + } out: return; } |