Raspberry Pi 4 panics when using /dev/led/led1

From: Mats Mellstrand via freebsd-arm <freebsd-arm_at_freebsd.org>
Date: Mon, 23 Aug 2021 13:07:34 UTC
Raspberry Pi 4
8 Gbyte
Booting from USB stick

Latest snapshot

FreeBSD XX 14.0-CURRENT FreeBSD 14.0-CURRENT #0 main-n248803-eba8e643b19: Thu Aug 19 10:08:23 UTC 2021     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC  arm64

Booting works fine.

# morse -l “SOS” > /dev/led/led0

works as expected.

But when I try:

# morse -l "SOS" > /dev/led/led1
# lock order reversal: (sleepable after non-sleepable)
 1st 0xffff000000c31c58 LED mtx (LED mtx, sleep mutex) @ /usr/src/sys/kern/kern_mutex.c:211
 2nd 0xffffa00000ffec10 Raspberry Pi firmware gpio (Raspberry Pi firmware gpio, sx) @ /usr/src/sys/arm/broadcom/bcm2835/raspberrypi_gpio.c:252
lock order LED mtx -> Raspberry Pi firmware gpio attempted at:
#0 0xffff0000004e1b58 at witness_checkorder+0xc0c
#1 0xffff00000047e348 at _sx_xlock+0x7c
#2 0xffff0000007edc60 at rpi_fw_gpio_pin_set+0xe8
#3 0xffff0000001e998c at led_timeout+0xe8
#4 0xffff000000491368 at softclock_call_cc+0x13c
#5 0xffff000000491674 at softclock+0x44
#6 0xffff000000430e64 at ithread_loop+0x2a8
#7 0xffff00000042d724 at fork_exit+0x74
#8 0xffff0000007774cc at fork_trampoline+0x14
panic: malloc(M_WAITOK) with sleeping prohibited
cpuid = 0
time = 1629719529
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
vpanic() at vpanic+0x184
panic() at panic+0x44
malloc_dbg() at malloc_dbg+0xf8
malloc() at malloc+0x2c
bcm2835_firmware_property() at bcm2835_firmware_property+0x44
rpi_fw_gpio_pin_set() at rpi_fw_gpio_pin_set+0x100
led_timeout() at led_timeout+0xe8
softclock_call_cc() at softclock_call_cc+0x13c
softclock() at softclock+0x44
ithread_loop() at ithread_loop+0x2a8
fork_exit() at fork_exit+0x74
fork_trampoline() at fork_trampoline+0x14
KDB: enter: panic
[ thread pid 12 tid 100028 ]
Stopped at      kdb_enter+0x44: undefined       f905011f
db>