| From ca09bf7bb109a37a7ff05f230bb3fa3627e6625f Mon Sep 17 00:00:00 2001 |
| From: Lijun Pan <lijunp213@gmail.com> |
| Date: Tue, 13 Apr 2021 03:33:25 -0500 |
| Subject: ibmvnic: correctly use dev_consume/free_skb_irq |
| |
| From: Lijun Pan <lijunp213@gmail.com> |
| |
| commit ca09bf7bb109a37a7ff05f230bb3fa3627e6625f upstream. |
| |
| It is more correct to use dev_kfree_skb_irq when packets are dropped, |
| and to use dev_consume_skb_irq when packets are consumed. |
| |
| Fixes: 0d973388185d ("ibmvnic: Introduce xmit_more support using batched subCRQ hcalls") |
| Suggested-by: Thomas Falcon <tlfalcon@linux.ibm.com> |
| Signed-off-by: Lijun Pan <lijunp213@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/ibm/ibmvnic.c | 11 +++++++---- |
| 1 file changed, 7 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/net/ethernet/ibm/ibmvnic.c |
| +++ b/drivers/net/ethernet/ibm/ibmvnic.c |
| @@ -3274,9 +3274,6 @@ restart_loop: |
| |
| next = ibmvnic_next_scrq(adapter, scrq); |
| for (i = 0; i < next->tx_comp.num_comps; i++) { |
| - if (next->tx_comp.rcs[i]) |
| - dev_err(dev, "tx error %x\n", |
| - next->tx_comp.rcs[i]); |
| index = be32_to_cpu(next->tx_comp.correlators[i]); |
| if (index & IBMVNIC_TSO_POOL_MASK) { |
| tx_pool = &adapter->tso_pool[pool]; |
| @@ -3290,7 +3287,13 @@ restart_loop: |
| num_entries += txbuff->num_entries; |
| if (txbuff->skb) { |
| total_bytes += txbuff->skb->len; |
| - dev_consume_skb_irq(txbuff->skb); |
| + if (next->tx_comp.rcs[i]) { |
| + dev_err(dev, "tx error %x\n", |
| + next->tx_comp.rcs[i]); |
| + dev_kfree_skb_irq(txbuff->skb); |
| + } else { |
| + dev_consume_skb_irq(txbuff->skb); |
| + } |
| txbuff->skb = NULL; |
| } else { |
| netdev_warn(adapter->netdev, |