On Mon, Oct 12, 2020 at 11:20:50AM +0200, Gerhard Roth wrote: > ix(4) relies on link-state change interrupts the update the link state > via if_link_state_change(). However, after ixgbe_stop() all interrupts > for the device are disabled and there won't be any IXGBE_EICR_LSC > interrupt. > > Simple solution: manually update link state after ixgbe_stop().
route monitor shows that there was a "link: no carrier" routing message missing. Your diff fixes this during ifconfig down. Tested with ix0 at pci3 dev 0 function 0 "Intel 82598AF" rev 0x01, msix, 4 queues, address 00:1b:21:0d:db:8f OK bluhm@ > --- sys/dev/pci/if_ix.c 2020/07/18 07:18:22 1.172 > +++ sys/dev/pci/if_ix.c 2020/10/12 09:13:59 > @@ -1606,6 +1606,8 @@ ixgbe_stop(void *arg) > /* Should we really clear all structures on stop? */ > ixgbe_free_transmit_structures(sc); > ixgbe_free_receive_structures(sc); > + > + ixgbe_update_link_status(sc); > } > >