+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 *