diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 592bbcc1d1298ddf16a32a34af25bb4f53fccd41..c9f7291bfa4195238bdef56840f80683937b42f1 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -1298,10 +1298,10 @@ static int hns3_nic_maybe_stop_tx(struct hns3_enet_ring *ring, dev_kfree_skb_any(skb); *out_skb = new_skb; - bd_num = hns3_nic_bd_num(skb); - if ((skb_is_gso(skb) && bd_num > HNS3_MAX_BD_NUM_TSO) || - (!skb_is_gso(skb) && bd_num > HNS3_MAX_BD_NUM_NORMAL)) { - trace_hns3_over_8bd(skb); + bd_num = hns3_nic_bd_num(new_skb); + if ((skb_is_gso(new_skb) && bd_num > HNS3_MAX_BD_NUM_TSO) || + (!skb_is_gso(new_skb) && bd_num > HNS3_MAX_BD_NUM_NORMAL)) { + trace_hns3_over_8bd(new_skb); return -ENOMEM; }