diff options
| author | Patrick McHardy <kaber@trash.net> | 2005-08-20 20:40:41 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2005-08-20 20:40:41 -0400 |
| commit | 7e71af49d46e4c25f17a2c8f53d62ffd14f01007 (patch) | |
| tree | a7724eb37fff88f707ebd3e59cc86b8e2b582f4e | |
| parent | f93592ff4fa4a55aa7640d435fa93338e190294d (diff) | |
[NETFILTER]: Fix HW checksum handling in TCPMSS target
Most importantly, remove bogus BUG() in receive path.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/ipv4/netfilter/ipt_TCPMSS.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv4/netfilter/ipt_TCPMSS.c b/net/ipv4/netfilter/ipt_TCPMSS.c index 1049050b2bfb..7b84a254440e 100644 --- a/net/ipv4/netfilter/ipt_TCPMSS.c +++ b/net/ipv4/netfilter/ipt_TCPMSS.c | |||
| @@ -61,6 +61,10 @@ ipt_tcpmss_target(struct sk_buff **pskb, | |||
| 61 | if (!skb_ip_make_writable(pskb, (*pskb)->len)) | 61 | if (!skb_ip_make_writable(pskb, (*pskb)->len)) |
| 62 | return NF_DROP; | 62 | return NF_DROP; |
| 63 | 63 | ||
| 64 | if ((*pskb)->ip_summed == CHECKSUM_HW && | ||
| 65 | skb_checksum_help(*pskb, out == NULL)) | ||
| 66 | return NF_DROP; | ||
| 67 | |||
| 64 | iph = (*pskb)->nh.iph; | 68 | iph = (*pskb)->nh.iph; |
| 65 | tcplen = (*pskb)->len - iph->ihl*4; | 69 | tcplen = (*pskb)->len - iph->ihl*4; |
| 66 | 70 | ||
| @@ -186,9 +190,6 @@ ipt_tcpmss_target(struct sk_buff **pskb, | |||
| 186 | newmss); | 190 | newmss); |
| 187 | 191 | ||
| 188 | retmodified: | 192 | retmodified: |
| 189 | /* We never hw checksum SYN packets. */ | ||
| 190 | BUG_ON((*pskb)->ip_summed == CHECKSUM_HW); | ||
| 191 | |||
| 192 | (*pskb)->nfcache |= NFC_UNKNOWN | NFC_ALTERED; | 193 | (*pskb)->nfcache |= NFC_UNKNOWN | NFC_ALTERED; |
| 193 | return IPT_CONTINUE; | 194 | return IPT_CONTINUE; |
| 194 | } | 195 | } |
