summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
diff options
context:
space:
mode:
authorIoana Radulescu <ruxandra.radulescu@freescale.com>2013-07-18 14:47:27 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-07-30 20:50:04 (GMT)
commitd90ed17cd894d4bc171f44567da4e480450cd0b5 (patch)
tree9256411b3e9bbfa94a2c88cf2018afc058875aa5 /drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
parentc534d862cf781e277333886b7ce677c30affc2a4 (diff)
downloadlinux-fsl-qoriq-d90ed17cd894d4bc171f44567da4e480450cd0b5.tar.xz
dpaa_eth: Fix computation of FD headroom
The Rx/Tx headrooms are aligned to a configurable value; if that value is zero however, FMD will interpret it as a "don't care" and use its own internal default, which is currently 64. If the user configures a zero headroom alignment, use our own default, otherwise we risk getting out of sync with the actual hardware configuration. Also, don't assume the Rx headroom is always equal to the Tx headroom plus the Kconfigurable Rx extra headroom, since alignment may change this. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com> Change-Id: Iaf12deb55f4330edb46c6d358114f8f757b64f08 Reviewed-on: http://git.am.freescale.net:8181/3479 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com> Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com> Reviewed-by: Sovaiala Cristian-Constantin-B39531 <Cristian.Sovaiala@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c')
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
index 1d4f3ca..d5b52e1 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
@@ -364,7 +364,7 @@ static struct sk_buff *__hot contig_fd_to_skb(const struct dpa_priv_s *priv,
if (unlikely(!skb))
return NULL;
- BUG_ON(fd_off != priv->tx_headroom + dpa_get_rx_extra_headroom());
+ BUG_ON(fd_off != priv->rx_headroom);
skb_reserve(skb, fd_off);
skb_put(skb, dpa_fd_length(fd));
@@ -464,8 +464,7 @@ static struct sk_buff *__hot sg_fd_to_skb(const struct dpa_priv_s *priv,
/* Make sure forwarded skbs will have enough space
* on Tx, if extra headers are added.
*/
- BUG_ON(fd_off != priv->tx_headroom +
- dpa_get_rx_extra_headroom());
+ BUG_ON(fd_off != priv->rx_headroom);
skb_reserve(skb, fd_off);
skb_put(skb, sgt[i].length);
} else {