On Tue, Oct 20, 2026 at 01:01:55AM -0700, sushi wrote:
> >Synopsis:
> inteldrm page fault panic on boot with Intel Arc A550M
>
> >Category: kernel
> >Environment:
> System : OpenBSD 8.0
> Details : OpenBSD 8.0 (GENERIC.MP) #84: Tue Oct 6 23:13:49 MDT 2026
>
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>
> Architecture: OpenBSD.amd64
> Machine : amd64
> >Description:
> During an upgrade from OpenBSD 7.9 to 8.0, the system panics consistently
> during boot while initializing the inteldrm / i915 driver stack. The crash
> occurs specifically during backlight configuration.
> >How-To-Repeat:
> Attempt to boot OpenBSD 8.0 normally with 'inteldrm' enabled on a system
> utilizing an Intel Arc A550M graphics card.
> >Fix:
> workaround:
> boot> -c
> UKC> disable inteldrm
> UKC> quit
>
> [Crash Traceback Summary]
> kernel: page fault trap, code=0
> stopped at drm_connector_list_iter_next+0x70
> drm_connector_list_iter_next(...)
> inteldrm_native_backlight(...) at inteldrm_native_backlight
> inteldrm_init_backlight(...) at inteldrm_init_backlight
> i915_driver_probe(...) at i915_driver_probe
> inteldrm_attachhook(...) at inteldrm_attachhook
> config_process_deferred_mountroot()
> main() at main
The connector state is not initialised when the device has no
display controller.
Try this:
Index: sys/dev/pci/drm/i915/i915_driver.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_driver.c,v
diff -u -p -r1.37 i915_driver.c
--- sys/dev/pci/drm/i915/i915_driver.c 5 Oct 2026 08:20:26 -0000 1.37
+++ sys/dev/pci/drm/i915/i915_driver.c 21 Oct 2026 05:42:29 -0000
@@ -2582,9 +2582,14 @@ void
inteldrm_native_backlight(struct drm_i915_private *dev_priv)
{
struct drm_device *dev = &dev_priv->drm;
+ struct intel_display *display = dev_priv->display;
struct drm_connector_list_iter conn_iter;
struct drm_connector *connector;
+ /* connector state not initialised with no crtc */
+ if (!intel_display_device_present(display))
+ return;
+
drm_connector_list_iter_begin(dev, &conn_iter);
drm_for_each_connector_iter(connector, &conn_iter) {
struct intel_connector *intel_connector;
@@ -2628,10 +2633,15 @@ inteldrm_firmware_backlight(struct drm_i
struct wsdisplay_param *dp)
{
struct drm_device *dev = &dev_priv->drm;
+ struct intel_display *display = dev_priv->display;
struct drm_connector_list_iter conn_iter;
struct drm_connector *connector;
struct backlight_properties props;
struct backlight_device *bd;
+
+ /* connector state not initialised with no crtc */
+ if (!intel_display_device_present(display))
+ return;
memset(&props, 0, sizeof(props));
props.type = BACKLIGHT_FIRMWARE;