diff -urN mesa-18.1.2.orig/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c mesa-18.1.2/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c --- mesa-18.1.2.orig/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c 2018-07-04 12:45:31.057803594 +0200 +++ mesa-18.1.2/src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c 2018-07-04 12:47:02.030220461 +0200 @@ -368,10 +368,14 @@ DEBUG_PRINT("KMS-DEBUG: unmapped buffer %u (was %p)\n", kms_sw_dt->handle, kms_sw_dt->mapped); DEBUG_PRINT("KMS-DEBUG: unmapped buffer %u (was %p)\n", kms_sw_dt->handle, kms_sw_dt->ro_mapped); - munmap(kms_sw_dt->mapped, kms_sw_dt->size); - kms_sw_dt->mapped = NULL; - munmap(kms_sw_dt->ro_mapped, kms_sw_dt->size); - kms_sw_dt->ro_mapped = NULL; + if (kms_sw_dt->mapped != NULL) { + munmap(kms_sw_dt->mapped, kms_sw_dt->size); + kms_sw_dt->mapped = NULL; + } + if (kms_sw_dt->ro_mapped != NULL) { + munmap(kms_sw_dt->ro_mapped, kms_sw_dt->size); + kms_sw_dt->ro_mapped = NULL; + } } static struct sw_displaytarget *