Page MenuHomeFreeBSD

nvme: limit namespace character-device I/O size
ClosedPublic

Authored by seuros on Aug 24 2026, 6:19 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 14, 11:54 PM
Unknown Object (File)
Tue, Oct 13, 3:40 PM
Unknown Object (File)
Tue, Oct 13, 1:45 AM
Unknown Object (File)
Sun, Oct 11, 4:08 PM
Unknown Object (File)
Sat, Oct 10, 5:31 PM
Unknown Object (File)
Wed, Oct 7, 3:56 AM
Unknown Object (File)
Wed, Oct 7, 3:56 AM
Unknown Object (File)
Wed, Oct 7, 2:16 AM
Subscribers

Details

Summary

The namespace character device does not initialize si_iosize_max, so
physio falls back to DFLTPHYS and can produce a bio larger than the
qpair payload DMA tag on a controller whose maximum transfer size is
below 64KB. Such a bio fails DMA mapping and is never submitted.

Approved by: ngie (co-mentor)
MFC after: 1 week

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Aug 24 2026, 10:27 PM
This revision now requires review to proceed.Aug 25 2026, 6:34 AM
ngie added a subscriber: ngie.

Could this be reproed using nvmecontrol reset? How can one confirm that the new value is being set properly? Asking as part of a "brain-storm" for a regression test of some kind.
Approved by: ngie (co-mentor)

This revision is now accepted and ready to land.Aug 29 2026, 2:02 AM
sys/dev/nvme/nvme_ns.c
606

A comment here about why we need to update this after a reset would be nice. Why would it change?