icr = core->mac[ICR] & core->mac[IMS];
- if (msix_enabled(core->owner)) {
+ if (core->mac[GPIE] & E1000_GPIE_MSIX_MODE) {
if (icr) {
causes = 0;
if (icr & E1000_ICR_DRSTA) {
trace_e1000e_irq_pending_interrupts(core->mac[ICR] & core->mac[IMS],
core->mac[ICR], core->mac[IMS]);
- if (msi_enabled(core->owner)) {
+ if (msix_enabled(core->owner)) {
+ if (icr) {
+ trace_e1000e_irq_msix_notify_vec(0);
+ msix_notify(core->owner, 0);
+ }
+ } else if (msi_enabled(core->owner)) {
if (icr) {
msi_notify(core->owner, 0);
}