[lvc-project] [PATCH 5.10] iavf: use internal state to free traffic IRQs

Fedor Pchelkin pchelkin at ispras.ru
Thu Sep 3 18:31:30 MSK 2026


On Tue, 01. Sep 16:16, Victoria Votokina wrote:
> @@ -1478,15 +1478,16 @@ static void iavf_free_rss(struct iavf_adapter *adapter)
>  /**
>   * iavf_reinit_interrupt_scheme - Reallocate queues and vectors
>   * @adapter: board private structure
> + * @running: true if adapter->state == __IAVF_RUNNING
>   *
>   * Returns 0 on success, negative on failure
>   **/
> -static int iavf_reinit_interrupt_scheme(struct iavf_adapter *adapter)
> +static int iavf_reinit_interrupt_scheme(struct iavf_adapter *adapter, bool running)
>  {
>  	struct net_device *netdev = adapter->netdev;
>  	int err;
>  
> -	if (netif_running(netdev))
> +	if (running)
>  		iavf_free_traffic_irqs(adapter);
>  	iavf_free_misc_irq(adapter);
>  	iavf_reset_interrupt_capability(adapter);
> @@ -2177,7 +2178,7 @@ static void iavf_reset_task(struct work_struct *work)
>  	adapter->aq_required = 0;
>  
>  	if (adapter->flags & IAVF_FLAG_REINIT_ITR_NEEDED) {
> -		err = iavf_reinit_interrupt_scheme(adapter);
> +		err = iavf_reinit_interrupt_scheme(adapter, running);

Кстати в ветке 5.10 значение running определяется не только через
__IAVF_RUNNING:

	running = ((adapter->state == __IAVF_RUNNING) ||
		   (adapter->state == __IAVF_RESETTING));


Это требует доп. изучения.

>  		if (err)
>  			goto reset_err;
>  	}
> -- 
> 2.43.0
> 
> 



More information about the lvc-project mailing list