Page MenuHomeFreeBSD

[aacraid] Handle both AIF and SYNC interrupts

Authored by luporl on Feb 27 2020, 7:31 PM.



Without this change, if an AIF interrupt comes at the same time a SYNC command is finished, the SYNC interrupt will be lost.
This happens because all interrupt bits (bellbits) are cleared, but only one of them is handled.

Debugging shows that, (at least) when !sc->msi_enabled and (sc->flags & AAC_FLAGS_SYNC_MODE) is true (sync mode), both bits may be set at the same time.

Diff Detail

rS FreeBSD src repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

luporl created this revision.Feb 27 2020, 7:31 PM
luporl added inline comments.Feb 27 2020, 7:33 PM
930–931 ↗(On Diff #68903)

This is needed to avoid entering the if block below, that uses structure fields that are not initialized (and probably not needed) in sync mode.

scottl accepted this revision.Mar 9 2020, 6:24 PM
This revision is now accepted and ready to land.Mar 9 2020, 6:24 PM
This revision was automatically updated to reflect the committed changes.