mt76: add unlikely() for dma_mapping_error() check
authorRyder Lee <ryder.lee@mediatek.com>
Mon, 1 Apr 2019 07:16:42 +0000 (15:16 +0800)
committerFelix Fietkau <nbd@nbd.name>
Wed, 1 May 2019 11:03:59 +0000 (13:03 +0200)
In the tx/rx fastpath, the funciton dma_map_single() rarely fails.
This adds unlikely() optimization to this error check conditional.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c

index c629cb939719f282e576d0efe4ae7da857e2b234..4381155375e1e0b6a7f108382ef3e09006c19eed 100644 (file)
@@ -272,7 +272,7 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, enum mt76_txq_id qid,
 
        addr = dma_map_single(dev->dev, skb->data, skb->len,
                              DMA_TO_DEVICE);
-       if (dma_mapping_error(dev->dev, addr))
+       if (unlikely(dma_mapping_error(dev->dev, addr)))
                return -ENOMEM;
 
        buf.addr = addr;
@@ -315,7 +315,7 @@ mt76_dma_tx_queue_skb(struct mt76_dev *dev, enum mt76_txq_id qid,
 
        len = skb_headlen(skb);
        addr = dma_map_single(dev->dev, skb->data, len, DMA_TO_DEVICE);
-       if (dma_mapping_error(dev->dev, addr))
+       if (unlikely(dma_mapping_error(dev->dev, addr)))
                goto free;
 
        tx_info.buf[n].addr = t->dma_addr;
@@ -329,7 +329,7 @@ mt76_dma_tx_queue_skb(struct mt76_dev *dev, enum mt76_txq_id qid,
 
                addr = dma_map_single(dev->dev, iter->data, iter->len,
                                      DMA_TO_DEVICE);
-               if (dma_mapping_error(dev->dev, addr))
+               if (unlikely(dma_mapping_error(dev->dev, addr)))
                        goto unmap;
 
                tx_info.buf[n].addr = addr;
@@ -386,7 +386,7 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
                        break;
 
                addr = dma_map_single(dev->dev, buf, len, DMA_FROM_DEVICE);
-               if (dma_mapping_error(dev->dev, addr)) {
+               if (unlikely(dma_mapping_error(dev->dev, addr))) {
                        skb_free_frag(buf);
                        break;
                }