Commit 4171ec06 authored by Intiyaz Basha's avatar Intiyaz Basha Committed by David S. Miller

liquidio: Removed duplicate Tx queue status check

Napi is checking Tx queue status and waking the Tx queue if required.
Same operation is being done while freeing every Tx buffer.
So removed the duplicate operation of checking Tx queue status from the Tx
buffer free functions.
Signed-off-by: default avatarIntiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e32ac250
...@@ -1634,28 +1634,6 @@ static int octeon_pci_os_setup(struct octeon_device *oct) ...@@ -1634,28 +1634,6 @@ static int octeon_pci_os_setup(struct octeon_device *oct)
return 0; return 0;
} }
/**
* \brief Check Tx queue state for a given network buffer
* @param lio per-network private data
* @param skb network buffer
*/
static inline int check_txq_state(struct lio *lio, struct sk_buff *skb)
{
int q, iq;
q = skb->queue_mapping;
iq = lio->linfo.txpciq[(q % lio->oct_dev->num_iqs)].s.q_no;
if (octnet_iq_is_full(lio->oct_dev, iq))
return 0;
if (__netif_subqueue_stopped(lio->netdev, q)) {
INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq, tx_restart, 1);
netif_wake_subqueue(lio->netdev, q);
}
return 1;
}
/** /**
* \brief Unmap and free network buffer * \brief Unmap and free network buffer
* @param buf buffer * @param buf buffer
...@@ -1673,8 +1651,6 @@ static void free_netbuf(void *buf) ...@@ -1673,8 +1651,6 @@ static void free_netbuf(void *buf)
dma_unmap_single(&lio->oct_dev->pci_dev->dev, finfo->dptr, skb->len, dma_unmap_single(&lio->oct_dev->pci_dev->dev, finfo->dptr, skb->len,
DMA_TO_DEVICE); DMA_TO_DEVICE);
check_txq_state(lio, skb);
tx_buffer_free(skb); tx_buffer_free(skb);
} }
...@@ -1715,8 +1691,6 @@ static void free_netsgbuf(void *buf) ...@@ -1715,8 +1691,6 @@ static void free_netsgbuf(void *buf)
list_add_tail(&g->list, &lio->glist[iq]); list_add_tail(&g->list, &lio->glist[iq]);
spin_unlock(&lio->glist_lock[iq]); spin_unlock(&lio->glist_lock[iq]);
check_txq_state(lio, skb); /* mq support: sub-queue state check */
tx_buffer_free(skb); tx_buffer_free(skb);
} }
...@@ -1762,8 +1736,6 @@ static void free_netsgbuf_with_resp(void *buf) ...@@ -1762,8 +1736,6 @@ static void free_netsgbuf_with_resp(void *buf)
spin_unlock(&lio->glist_lock[iq]); spin_unlock(&lio->glist_lock[iq]);
/* Don't free the skb yet */ /* Don't free the skb yet */
check_txq_state(lio, skb);
} }
/** /**
......
...@@ -953,29 +953,6 @@ static int octeon_pci_os_setup(struct octeon_device *oct) ...@@ -953,29 +953,6 @@ static int octeon_pci_os_setup(struct octeon_device *oct)
return 0; return 0;
} }
/**
* \brief Check Tx queue state for a given network buffer
* @param lio per-network private data
* @param skb network buffer
*/
static int check_txq_state(struct lio *lio, struct sk_buff *skb)
{
int q, iq;
q = skb->queue_mapping;
iq = lio->linfo.txpciq[q % lio->oct_dev->num_iqs].s.q_no;
if (octnet_iq_is_full(lio->oct_dev, iq))
return 0;
if (__netif_subqueue_stopped(lio->netdev, q)) {
INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq, tx_restart, 1);
netif_wake_subqueue(lio->netdev, q);
}
return 1;
}
/** /**
* \brief Unmap and free network buffer * \brief Unmap and free network buffer
* @param buf buffer * @param buf buffer
...@@ -993,8 +970,6 @@ static void free_netbuf(void *buf) ...@@ -993,8 +970,6 @@ static void free_netbuf(void *buf)
dma_unmap_single(&lio->oct_dev->pci_dev->dev, finfo->dptr, skb->len, dma_unmap_single(&lio->oct_dev->pci_dev->dev, finfo->dptr, skb->len,
DMA_TO_DEVICE); DMA_TO_DEVICE);
check_txq_state(lio, skb);
tx_buffer_free(skb); tx_buffer_free(skb);
} }
...@@ -1036,8 +1011,6 @@ static void free_netsgbuf(void *buf) ...@@ -1036,8 +1011,6 @@ static void free_netsgbuf(void *buf)
list_add_tail(&g->list, &lio->glist[iq]); list_add_tail(&g->list, &lio->glist[iq]);
spin_unlock(&lio->glist_lock[iq]); spin_unlock(&lio->glist_lock[iq]);
check_txq_state(lio, skb); /* mq support: sub-queue state check */
tx_buffer_free(skb); tx_buffer_free(skb);
} }
...@@ -1083,8 +1056,6 @@ static void free_netsgbuf_with_resp(void *buf) ...@@ -1083,8 +1056,6 @@ static void free_netsgbuf_with_resp(void *buf)
spin_unlock(&lio->glist_lock[iq]); spin_unlock(&lio->glist_lock[iq]);
/* Don't free the skb yet */ /* Don't free the skb yet */
check_txq_state(lio, skb);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment