β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-5173

ata_jmicron_setmode reads PCI config from the ATA disk device instead of the controller β€” 80-pin cable detect and multifunction PATA routing are permanently dead

Summary

pci_read_config on the disk device hits the ata-channel kobj default -> constant ENXIO=6, so 6&0x40 and 6&0x08 are always 0: 40-conductor cables get UDMA100/133 negotiated (CRC storms/on-wire corruption risk) and multifunction PATA disks mis-route into ata_sata_setmode. Every sibling reads GRANDPARENT(dev). Hardware-gated (no JMicron in guest); dispatch chain proven from source. gparent fix.

Discussion (0)

No comments yet.

PoC verification

Evidence pack

findings/poc/DF-5173 Β· 1 files
FileTypeDescriptionSize
verdict.json file 1.0 KB view raw

Fix verification

not_testable
baseline no→ patch + rebuild →patched clean
per-fix-DF-5173

Confirmed kernel references

Detail

Evidence (decisive lines)

kobj dispatch chain proven from source: pcivar.h:302 -> subr_kobj.c:161-165 -> makeobjops.awk:281-293 (returns constant ENXIO=6)

Verified recommended fix

read config from GRANDPARENT(dev)

Verdict

untested (hardware-gated: no JMicron controller on audit guest)