static int hns3_skb_linearize(struct hns3_enet_ring *ring,
                              struct sk_buff *skb,
-                             u8 max_non_tso_bd_num,
                              unsigned int bd_num)
 {
        /* 'bd_num == UINT_MAX' means the skb' fraglist has a
         * will not help.
         */
        if (skb->len > HNS3_MAX_TSO_SIZE ||
-           (!skb_is_gso(skb) && skb->len >
-            HNS3_MAX_NON_TSO_SIZE(max_non_tso_bd_num))) {
+           (!skb_is_gso(skb) && skb->len > HNS3_MAX_NON_TSO_SIZE)) {
                u64_stats_update_begin(&ring->syncp);
                ring->stats.hw_limitation++;
                u64_stats_update_end(&ring->syncp);
                        goto out;
                }
 
-               if (hns3_skb_linearize(ring, skb, max_non_tso_bd_num,
-                                      bd_num))
+               if (hns3_skb_linearize(ring, skb, bd_num))
                        return -ENOMEM;
 
                bd_num = hns3_tx_bd_count(skb->len);
 
 
 #define HNS3_MAX_BD_SIZE                       65535
 #define HNS3_MAX_TSO_BD_NUM                    63U
-#define HNS3_MAX_TSO_SIZE \
-       (HNS3_MAX_BD_SIZE * HNS3_MAX_TSO_BD_NUM)
+#define HNS3_MAX_TSO_SIZE                      1048576U
+#define HNS3_MAX_NON_TSO_SIZE                  9728U
 
-#define HNS3_MAX_NON_TSO_SIZE(max_non_tso_bd_num) \
-       (HNS3_MAX_BD_SIZE * (max_non_tso_bd_num))
 
 #define HNS3_VECTOR_GL0_OFFSET                 0x100
 #define HNS3_VECTOR_GL1_OFFSET                 0x200