Commit 26793bfb authored by Amritha Nambiar's avatar Amritha Nambiar Committed by Jakub Kicinski
Browse files

net: Add NAPI IRQ support

parent 5a5131d6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2978,6 +2978,8 @@ void ice_q_vector_set_napi_queues(struct ice_q_vector *q_vector, bool locked)
		ice_queue_set_napi(q_vector->vsi->netdev, tx_ring->q_index,
				   NETDEV_QUEUE_TYPE_TX, &q_vector->napi,
				   locked);
	/* Also set the interrupt number for the NAPI */
	netif_napi_set_irq(&q_vector->napi, q_vector->irq.virq);
}

/**
+6 −0
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ struct napi_struct {
	/* control-path-only fields follow */
	struct list_head	dev_list;
	struct hlist_node	napi_hash_node;
	int			irq;
};

enum {
@@ -2665,6 +2666,11 @@ void netif_queue_set_napi(struct net_device *dev, unsigned int queue_index,
			  enum netdev_queue_type type,
			  struct napi_struct *napi);

static inline void netif_napi_set_irq(struct napi_struct *napi, int irq)
{
	napi->irq = irq;
}

/* Default NAPI poll() weight
 * Device drivers are strongly advised to not use bigger value
 */
+1 −0
Original line number Diff line number Diff line
@@ -6471,6 +6471,7 @@ void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
	 */
	if (dev->threaded && napi_kthread_create(napi))
		dev->threaded = 0;
	netif_napi_set_irq(napi, -1);
}
EXPORT_SYMBOL(netif_napi_add_weight);

+4 −0
Original line number Diff line number Diff line
@@ -180,7 +180,11 @@ netdev_nl_napi_fill_one(struct sk_buff *rsp, struct napi_struct *napi,
	if (nla_put_u32(rsp, NETDEV_A_NAPI_IFINDEX, napi->dev->ifindex))
		goto nla_put_failure;

	if (napi->irq >= 0 && nla_put_u32(rsp, NETDEV_A_NAPI_IRQ, napi->irq))
		goto nla_put_failure;

	genlmsg_end(rsp, hdr);

	return 0;

nla_put_failure: