return 0;
 }
 
-static bool hns3_checksum_complete(struct hns3_enet_ring *ring,
+static void hns3_checksum_complete(struct hns3_enet_ring *ring,
                                   struct sk_buff *skb, u32 ptype, u16 csum)
 {
        if (ptype == HNS3_INVALID_PTYPE ||
            hns3_rx_ptype_tbl[ptype].ip_summed != CHECKSUM_COMPLETE)
-               return false;
+               return;
 
        hns3_ring_stats_update(ring, csum_complete);
        skb->ip_summed = CHECKSUM_COMPLETE;
        skb->csum = csum_unfold((__force __sum16)csum);
-
-       return true;
 }
 
 static void hns3_rx_handle_csum(struct sk_buff *skb, u32 l234info,
                ptype = hnae3_get_field(ol_info, HNS3_RXD_PTYPE_M,
                                        HNS3_RXD_PTYPE_S);
 
-       if (hns3_checksum_complete(ring, skb, ptype, csum))
-               return;
+       hns3_checksum_complete(ring, skb, ptype, csum);
 
        /* check if hardware has done checksum */
        if (!(bd_base_info & BIT(HNS3_RXD_L3L4P_B)))
        if (unlikely(l234info & (BIT(HNS3_RXD_L3E_B) | BIT(HNS3_RXD_L4E_B) |
                                 BIT(HNS3_RXD_OL3E_B) |
                                 BIT(HNS3_RXD_OL4E_B)))) {
+               skb->ip_summed = CHECKSUM_NONE;
                hns3_ring_stats_update(ring, l3l4_csum_err);
 
                return;