diff options
author | Giuseppe Cavallaro | 2016-02-29 14:27:33 +0100 |
---|---|---|
committer | David S. Miller | 2016-03-02 20:21:31 +0100 |
commit | 96951366ce8546662de56f58a3885b94326f9670 (patch) | |
tree | 795934ecd0893d40a9e161a4cbd25f7221257292 /drivers/net/ethernet/stmicro/stmmac/chain_mode.c | |
parent | stmmac: add last_segment field to dma data (diff) | |
download | kernel-qcow2-linux-96951366ce8546662de56f58a3885b94326f9670.tar.gz kernel-qcow2-linux-96951366ce8546662de56f58a3885b94326f9670.tar.xz kernel-qcow2-linux-96951366ce8546662de56f58a3885b94326f9670.zip |
stmmac: add is_jumbo field to dma data
Optimize tx_clean by avoiding a des3 read in stmmac_clean_desc3().
In ring mode, TX, des3 seems only used when xmit a jumbo frame.
In case of normal descriptors, it may also be used for time
stamping.
Clean it in the above two case, without reading it.
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Alexandre TORGUE <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/chain_mode.c')
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/chain_mode.c b/drivers/net/ethernet/stmicro/stmmac/chain_mode.c index 355eafb5d6c7..dacb6542c6dd 100644 --- a/drivers/net/ethernet/stmicro/stmmac/chain_mode.c +++ b/drivers/net/ethernet/stmicro/stmmac/chain_mode.c @@ -152,7 +152,8 @@ static void stmmac_clean_desc3(void *priv_ptr, struct dma_desc *p) struct stmmac_priv *priv = (struct stmmac_priv *)priv_ptr; unsigned int entry = priv->dirty_tx; - if (priv->tx_skbuff_dma[entry].last_segment && !priv->extend_desc) + if (priv->tx_skbuff_dma[entry].last_segment && !priv->extend_desc && + priv->hwts_tx_en) /* NOTE: Device will overwrite des3 with timestamp value if * 1588-2002 time stamping is enabled, hence reinitialize it * to keep explicit chaining in the descriptor. |