Message ID | 1315581474-4430-1-git-send-email-daniel@gaisler.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Daniel Hellstrom <daniel@gaisler.com> Date: Fri, 9 Sep 2011 17:17:54 +0200 > The GRETH GBIT core does not do checksum offloading for IP > segmentation. This patch adds a check in the xmit function to > determine if the stack has calculated the checksum for us. > > Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/greth.c b/drivers/net/greth.c index 22e24a3..6775c24 100644 --- a/drivers/net/greth.c +++ b/drivers/net/greth.c @@ -489,7 +489,8 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev) if (nr_frags != 0) status = GRETH_TXBD_MORE; - status |= GRETH_TXBD_CSALL; + if (skb->ip_summed == CHECKSUM_PARTIAL) + status |= GRETH_TXBD_CSALL; status |= skb_headlen(skb) & GRETH_BD_LEN; if (greth->tx_next == GRETH_TXBD_NUM_MASK) status |= GRETH_BD_WR; @@ -512,7 +513,9 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev) greth->tx_skbuff[curr_tx] = NULL; bdp = greth->tx_bd_base + curr_tx; - status = GRETH_TXBD_CSALL | GRETH_BD_EN; + status = GRETH_BD_EN; + if (skb->ip_summed == CHECKSUM_PARTIAL) + status |= GRETH_TXBD_CSALL; status |= frag->size & GRETH_BD_LEN; /* Wrap around descriptor ring */
The GRETH GBIT core does not do checksum offloading for IP segmentation. This patch adds a check in the xmit function to determine if the stack has calculated the checksum for us. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> --- drivers/net/greth.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)