diff options
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r-- | include/linux/skbuff.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2738d355cdf9..2b0a30a6e31c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -179,6 +179,9 @@ struct nf_bridge_info { | |||
179 | u8 bridged_dnat:1; | 179 | u8 bridged_dnat:1; |
180 | __u16 frag_max_size; | 180 | __u16 frag_max_size; |
181 | struct net_device *physindev; | 181 | struct net_device *physindev; |
182 | |||
183 | /* always valid & non-NULL from FORWARD on, for physdev match */ | ||
184 | struct net_device *physoutdev; | ||
182 | union { | 185 | union { |
183 | /* prerouting: detect dnat in orig/reply direction */ | 186 | /* prerouting: detect dnat in orig/reply direction */ |
184 | __be32 ipv4_daddr; | 187 | __be32 ipv4_daddr; |
@@ -189,9 +192,6 @@ struct nf_bridge_info { | |||
189 | * skb is out in neigh layer. | 192 | * skb is out in neigh layer. |
190 | */ | 193 | */ |
191 | char neigh_header[8]; | 194 | char neigh_header[8]; |
192 | |||
193 | /* always valid & non-NULL from FORWARD on, for physdev match */ | ||
194 | struct net_device *physoutdev; | ||
195 | }; | 195 | }; |
196 | }; | 196 | }; |
197 | #endif | 197 | #endif |
@@ -2707,6 +2707,9 @@ static inline void skb_postpull_rcsum(struct sk_buff *skb, | |||
2707 | { | 2707 | { |
2708 | if (skb->ip_summed == CHECKSUM_COMPLETE) | 2708 | if (skb->ip_summed == CHECKSUM_COMPLETE) |
2709 | skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); | 2709 | skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); |
2710 | else if (skb->ip_summed == CHECKSUM_PARTIAL && | ||
2711 | skb_checksum_start_offset(skb) <= len) | ||
2712 | skb->ip_summed = CHECKSUM_NONE; | ||
2710 | } | 2713 | } |
2711 | 2714 | ||
2712 | unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len); | 2715 | unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len); |