Page MenuHomeFreeBSD

virtio_console: Defer device notifications until DRIVER_OK
AcceptedPublic

Authored by kfv on Sat, Oct 10, 12:31 PM.
Tags
None
Referenced Files
F175661701: D60582.id189351.diff
Mon, Oct 12, 8:41 AM
F175651610: D60582.id.diff
Mon, Oct 12, 7:15 AM
F175648401: D60582.diff
Mon, Oct 12, 6:47 AM
F175558419: D60582.id189351.diff
Sun, Oct 11, 4:57 PM
Unknown Object (File)
Sun, Oct 11, 5:42 AM
Unknown Object (File)
Sat, Oct 10, 6:38 PM
Unknown Object (File)
Sat, Oct 10, 5:24 PM
Unknown Object (File)
Sat, Oct 10, 5:02 PM
Subscribers
None

Details

Summary

vtcon_attach() notifies the receive queues before DRIVER_OK
is set, violating §3.1.1, and waits for DEVICE_READY to be
consumed, which the device must not do before DRIVER_OK as
per section §2.1.2. Since the transport sets DRIVER_OK only
after attach returns, a compliant multiport device hangs
during attach. Implement the virtio_attach_completed method
and move both operations there.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 77955
Build 74838: arc lint + arc unit

Event Timeline

kfv requested review of this revision.Sat, Oct 10, 12:31 PM
kfv created this revision.

No objection style-wise.

I am not familiar with this component, please seek external code review.

Approved for commit once you get a positive code review from somebody else.

This revision is now accepted and ready to land.Sat, Oct 10, 8:52 PM