HomeFreeBSD

ioat(4): Don't "complete" DMA descriptors prematurely

Description

ioat(4): Don't "complete" DMA descriptors prematurely

In r304602, I mistakenly removed the ioat_process_events check that we weren't
processing events before the hardware had completed the descriptor
("last_seen"). Reinstate that logic.

Keep the defensive loop condition and additionally make sure we've actually
completed a descriptor before blindly chasing the ring around.

In reset, queue and finish the startup command before allowing any event
processing or submission to occur. Avoid potential missed callouts by
requeueing the poll later.

Details

Provenance
cemAuthored on
Parents
rS305026: When the EFI implementation (like U-Boot) does not support WaitForKey, we
Branches
Unknown
Tags
Unknown