Message ID | 20190529221523.22399-7-bigeasy@linutronix.de |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | Avoid local_irq_save() and use napi_alloc_frag() where possible | expand |
Hello! On 30.05.2019 1:15, Sebastian Andrzej Siewior wrote: > tg3_alloc_rx_data() uses netdev_alloc_frag() for sbk allocation. All ^^^ skb? > callers of tg3_alloc_rx_data() either hold the tp->lock lock (which is ^^^^^^^^^ Sort of tautological. > held with BH disabled) or run in NAPI context. > > Use napi_alloc_frag() for skb allocations. > > Cc: Siva Reddy Kallam <siva.kallam@broadcom.com> > Cc: Prashant Sreedharan <prashant@broadcom.com> > Cc: Michael Chan <mchan@broadcom.com> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> [...] MBR, Sergei
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 6d1f9c822548e..4c404d2213f98 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -6710,7 +6710,7 @@ static int tg3_alloc_rx_data(struct tg3 *tp, struct tg3_rx_prodring_set *tpr, skb_size = SKB_DATA_ALIGN(data_size + TG3_RX_OFFSET(tp)) + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); if (skb_size <= PAGE_SIZE) { - data = netdev_alloc_frag(skb_size); + data = napi_alloc_frag(skb_size); *frag_size = skb_size; } else { data = kmalloc(skb_size, GFP_ATOMIC);
tg3_alloc_rx_data() uses netdev_alloc_frag() for sbk allocation. All callers of tg3_alloc_rx_data() either hold the tp->lock lock (which is held with BH disabled) or run in NAPI context. Use napi_alloc_frag() for skb allocations. Cc: Siva Reddy Kallam <siva.kallam@broadcom.com> Cc: Prashant Sreedharan <prashant@broadcom.com> Cc: Michael Chan <mchan@broadcom.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/net/ethernet/broadcom/tg3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)