Page MenuHomeFreeBSD

bhyve nvme: Fix Controller init error cases
ClosedPublic

Authored by chuck on Jun 10 2022, 9:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Oct 3 2024, 10:00 AM
Unknown Object (File)
Sep 24 2024, 4:45 PM
Unknown Object (File)
Sep 24 2024, 4:29 AM
Unknown Object (File)
Sep 23 2024, 6:58 AM
Unknown Object (File)
Sep 16 2024, 12:32 PM
Unknown Object (File)
Sep 15 2024, 6:37 PM
Unknown Object (File)
Sep 7 2024, 10:00 PM
Unknown Object (File)
Sep 4 2024, 8:53 AM
Subscribers

Details

Summary

Fuzzing of bhyve uncovered an assertion failure in the NVMe emulation.
Investigation uncovered several corner cases the code did not handle.
This change handles several Controller initialization errors, including

  • bad AQ sizes
  • bad AQ vm_map_gpa
  • doorbell writes prior to RDY
  • doorbell writes to uninitialized queue
  • CSTS.RDY if CFS set

PR: 256317,256319,256320,256322
Reported by: Cheolwoo Myung <cwmyung@snu.ac.kr>

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 45938
Build 42826: arc lint + arc unit