Skip to content

Commit 385565a

Browse files
tlendackydavem330
authored andcommitted
amd-xgbe: Use napi_alloc_skb when allocating skb in softirq
Use the napi_alloc_skb function to allocate an skb when running within the softirq context to avoid calls to local_irq_save/restore. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 4a57ebc commit 385565a

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

drivers/net/ethernet/amd/xgbe/xgbe-drv.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1821,16 +1821,15 @@ static void xgbe_rx_refresh(struct xgbe_channel *channel)
18211821
lower_32_bits(rdata->rdesc_dma));
18221822
}
18231823

1824-
static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
1824+
static struct sk_buff *xgbe_create_skb(struct napi_struct *napi,
18251825
struct xgbe_ring_data *rdata,
18261826
unsigned int *len)
18271827
{
1828-
struct net_device *netdev = pdata->netdev;
18291828
struct sk_buff *skb;
18301829
u8 *packet;
18311830
unsigned int copy_len;
18321831

1833-
skb = netdev_alloc_skb_ip_align(netdev, rdata->rx.hdr.dma_len);
1832+
skb = napi_alloc_skb(napi, rdata->rx.hdr.dma_len);
18341833
if (!skb)
18351834
return NULL;
18361835

@@ -2000,7 +1999,7 @@ static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
20001999
rdata->rx.hdr.dma_len,
20012000
DMA_FROM_DEVICE);
20022001

2003-
skb = xgbe_create_skb(pdata, rdata, &put_len);
2002+
skb = xgbe_create_skb(napi, rdata, &put_len);
20042003
if (!skb) {
20052004
error = 1;
20062005
goto skip_data;

0 commit comments

Comments
 (0)