Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce449ba7 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

nfp: use correct index to mask link state irq



We were using an incorrect define to get the irq vector number.
NFP_NET_CFG_LSC is a control BAR offset, LSC interrupt vector
index is called NFP_NET_IRQ_LSC_IDX.  For machines with less
than 30 CPUs this meant that we were disabling/enabling IRQ 0.
For bigger hosts we were just playing with the 31st RX/TX
interrupt.

Fixes: 0ba40af9 ("nfp: move link state interrupt request/free calls")
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d5d8760b
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -2015,7 +2015,7 @@ static void nfp_net_open_stack(struct nfp_net *nn)


	netif_tx_wake_all_queues(nn->netdev);
	netif_tx_wake_all_queues(nn->netdev);


	enable_irq(nn->irq_entries[NFP_NET_CFG_LSC].vector);
	enable_irq(nn->irq_entries[NFP_NET_IRQ_LSC_IDX].vector);
	nfp_net_read_link_status(nn);
	nfp_net_read_link_status(nn);
}
}


@@ -2044,7 +2044,7 @@ static int nfp_net_netdev_open(struct net_device *netdev)
				      NFP_NET_IRQ_LSC_IDX, nn->lsc_handler);
				      NFP_NET_IRQ_LSC_IDX, nn->lsc_handler);
	if (err)
	if (err)
		goto err_free_exn;
		goto err_free_exn;
	disable_irq(nn->irq_entries[NFP_NET_CFG_LSC].vector);
	disable_irq(nn->irq_entries[NFP_NET_IRQ_LSC_IDX].vector);


	nn->rx_rings = kcalloc(nn->num_rx_rings, sizeof(*nn->rx_rings),
	nn->rx_rings = kcalloc(nn->num_rx_rings, sizeof(*nn->rx_rings),
			       GFP_KERNEL);
			       GFP_KERNEL);
@@ -2133,7 +2133,7 @@ static void nfp_net_close_stack(struct nfp_net *nn)
{
{
	unsigned int r;
	unsigned int r;


	disable_irq(nn->irq_entries[NFP_NET_CFG_LSC].vector);
	disable_irq(nn->irq_entries[NFP_NET_IRQ_LSC_IDX].vector);
	netif_carrier_off(nn->netdev);
	netif_carrier_off(nn->netdev);
	nn->link_up = false;
	nn->link_up = false;