DF-5643 / run_c.log
=== GRAB (owner = fakesmbb0) ===
ctl: grab -> ioctl ok, ret=0
=== PARK (kthread parks in smbus_request_bus) ===
ctl: park -> ioctl ok, ret=1
=== VETO (detach while owned; softc freed under the parked waiter) ===
ctl: veto -> ioctl ok, ret=0
=== 3s later: waiter state (kernel thread df5642_park) ===
PID STAT WCHAN UCOMM
-1 B5 smbreq df5642_park
=== WAKUAF (wakeup the freed softc) ===
ctl: wakuaf -> ioctl ok, ret=1
=== waiter after wakeup ===
PID STAT WCHAN UCOMM
RUN-C-DONE
[df5642] attach done: smbus0=0xfffff8011745d280 cdev=0xfffff8008da318c0 (now: kldload smb)
[df5642] attach: nchildren=4
[df5642] attach: child[0] = (unnamed) (unit=0 state=0)
[df5642] attach: child[1] = (unnamed) (unit=1040 state=0)
[df5642] attach: child[2] = (unnamed) (unit=1104 state=0)
[df5642] attach: child[3] = (unnamed) (unit=1127 state=0)
[df5642] GRAB: request(fakesmbb0, DONTWAIT)=0 owner=0xfffff8011745d1e0 (caller=0xfffff8011745d1e0)
[df5642] PARK-T: calling request(nexus0, WAIT|NOINTR) softc=0xfffff8008d560cc8
[df5642] PARK: waiter started=1 done=0 (parked on softc=0xfffff8008d560cc8)
[df5642] VETO: pre-detach owner=0xfffff8011745d1e0 (must be non-NULL)
[df5642] VETO: device_detach(smbus0)=0 <<< BUS DETACHED UNDER ITS OWNER (must be EBUSY=16)
[df5642] VETO: post-detach softc=0 (NULL = freed under the owner)
[df5642] WAKUAF: done=0; wakeup(freed sc=0xfffff8008d560cc8)
[df5642] PARK-T: request RETURNED 0 (post-free resume)
[df5642] WAKUAF: after wakeup: done=1 error=0 (done=0 -> waiter re-parked on FREED softc)