> thanks for the report
> 
> for the archives, trace from the photo:
> 
> panic: kernel diagnostic assertion "!cold" failed: file 
> "/usr/src/sys/dev/pci/drm/include/linux/completion.h", line 89
> db_enter+0x14
> panic+0xc3
> __assert+0x29
> drm_atomic_helper_swap_state+0x646
> intel_atomic_commit+0x162
> drm_atomic_commit+0xa7
> drm_client_modeset_commit_atomic+0x178
> drm_client_modeset_commit_locked+0x5a
> drm_fb_helper_restore_fbdev_mode_unlocked+0x48
> intel_fbdev_restore_mode+0x37
> inteldrm_show_screen+0x88
> wsdisplay_switch1+0xbc
> internal_command+0x2b2
> wskbd_translate+0xdf

The second part of the screenshot shows a deeper trace

Above Trace
+++ Additional trace +++
wskbd_cngetc(c00) at wskbd_cngetc+0x8e
boot(8) at boot+0x13c
cpu_spinup_finish() at cpu_spinup_finish
sys_reboot(ffff80003c1aca90,ffff80003c1a4330,ffff80003c1a42a0) at 
sys_reboot+0x81
syscall(ffff80003c1a4330) at syscall+0x532
Xsyscall() at Xsyscall+0x128

> drm code isn't able to handle requests when cold.  That is
> partly why all drm drivers use config_mountroot().

So the system will still reboot if i'm rebooting it, right (i guess the below 
change just affects the drm layer).

> Index: sys/dev/pci/drm/drm_fb_helper.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/drm_fb_helper.c,v
> diff -u -p -r1.38 drm_fb_helper.c
> --- sys/dev/pci/drm/drm_fb_helper.c 5 Apr 2024 14:31:57 -0000 1.38
> +++ sys/dev/pci/drm/drm_fb_helper.c 1 May 2024 01:47:05 -0000
> @@ -242,6 +242,10 @@ __drm_fb_helper_restore_fbdev_mode_unloc
> return 0;
>  
> #ifdef __OpenBSD__
> + /* if we can't sleep, return */
> + if (cold)
> + return -ENXIO;
> +
> force = true;
> #endif
>  
> 

Reply via email to