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);
>  }
>  
>  

Reply via email to