]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
net: hns3: add unlikely for error check
authorPeng Li <lipeng321@huawei.com>
Thu, 28 Jun 2018 04:12:23 +0000 (12:12 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 5 Sep 2018 12:18:37 +0000 (14:18 +0200)
BugLink: https://bugs.launchpad.net/bugs/1787477
The first bd of a packet is invalid and invalid ring head for tx
IRQ is not offen, they may occur when there is error,
Add unlikely for error check branch is better for performance.

Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 0e6084aa1c4eba8913143ea30254d50ed01724eb)
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

index 0ce0d0e4d07a2788ba9831031eacf19e6f647de1..1092076911f027868a8fba5606fcfc0a7d9796ef 100644 (file)
@@ -1917,7 +1917,7 @@ bool hns3_clean_tx_ring(struct hns3_enet_ring *ring, int budget)
        if (is_ring_empty(ring) || head == ring->next_to_clean)
                return true; /* no data to poll */
 
-       if (!is_valid_clean_head(ring, head)) {
+       if (unlikely(!is_valid_clean_head(ring, head))) {
                netdev_err(netdev, "wrong head (%d, %d-%d)\n", head,
                           ring->next_to_use, ring->next_to_clean);
 
@@ -2174,7 +2174,7 @@ static int hns3_handle_rx_bd(struct hns3_enet_ring *ring,
        bd_base_info = le32_to_cpu(desc->rx.bd_base_info);
 
        /* Check valid BD */
-       if (!hnae_get_bit(bd_base_info, HNS3_RXD_VLD_B))
+       if (unlikely(!hnae_get_bit(bd_base_info, HNS3_RXD_VLD_B)))
                return -EFAULT;
 
        va = (unsigned char *)desc_cb->buf + desc_cb->page_offset;