From: Al Viro Date: Sun, 14 Oct 2007 18:41:09 +0000 (+0100) Subject: fix endianness bug in inet_lro X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=f53f4137baedc1be179880d35f390e20445428ba;p=openwrt%2Fstaging%2Fblogic.git fix endianness bug in inet_lro all uses of and almost all assignments to lro_desc->tcp_ack assume that it's net-endian; one converts net-endian to host-endian and sticks it in lro_desc->tcp_ack. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds --- diff --git a/include/linux/inet_lro.h b/include/linux/inet_lro.h index bb1c8773a1a1..1246d46abbc0 100644 --- a/include/linux/inet_lro.h +++ b/include/linux/inet_lro.h @@ -54,7 +54,7 @@ struct net_lro_desc { __wsum data_csum; __be32 tcp_rcv_tsecr; __be32 tcp_rcv_tsval; - u32 tcp_ack; + __be32 tcp_ack; u32 tcp_next_seq; u32 skb_tot_frags_len; u16 ip_tot_len; diff --git a/net/ipv4/inet_lro.c b/net/ipv4/inet_lro.c index 7f22474b52c4..ac3b1d3dba2e 100644 --- a/net/ipv4/inet_lro.c +++ b/net/ipv4/inet_lro.c @@ -159,7 +159,7 @@ static void lro_init_desc(struct net_lro_desc *lro_desc, struct sk_buff *skb, lro_desc->iph = iph; lro_desc->tcph = tcph; lro_desc->tcp_next_seq = ntohl(tcph->seq) + tcp_data_len; - lro_desc->tcp_ack = ntohl(tcph->ack_seq); + lro_desc->tcp_ack = tcph->ack_seq; lro_desc->tcp_window = tcph->window; lro_desc->pkt_aggr_cnt = 1;