⬢ DragonFlyBSD Kernel Audit
DF-4202 / fix.diff
← back to finding ↓ download raw
--- sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
+++ amdgpu_connectors.fixed.c
@@ -402,10 +402,12 @@
 		 * registers or add a mode table, but this works and is much
 		 * simpler.
 		 */
 		mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
-		mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
-		DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
+		if (mode) {
+			mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
+			DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
+		}
 	}
 	return mode;
 }
 
@@ -456,9 +458,10 @@
 		if (common_modes[i].w < 320 || common_modes[i].h < 200)
 			continue;
 
 		mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, 60, false, false, false);
-		drm_mode_probed_add(connector, mode);
+		if (mode)
+			drm_mode_probed_add(connector, mode);
 	}
 }
 
 static int amdgpu_connector_set_property(struct drm_connector *connector,