It looks like "diffs" array is write-only. It also looks like ipv4 occurences use some csum_fold() trickery. Was is forgotten here? Should "diffs" be removed?
20 static unsigned int ip6t_hl_target(struct sk_buff **pskb, 21 const struct net_device *in, 22 const struct net_device *out, 23 unsigned int hooknum, 24 const struct xt_target *target, 25 const void *targinfo, void *userinfo) 26 { 27 struct ipv6hdr *ip6h; 28 const struct ip6t_HL_info *info = targinfo; 29 ===> u_int16_t diffs[2]; <=== 30 int new_hl; 31 32 if (!skb_make_writable(pskb, (*pskb)->len)) 33 return NF_DROP; 34 35 ip6h = (*pskb)->nh.ipv6h; 36 37 switch (info->mode) { 38 case IP6T_HL_SET: 39 new_hl = info->hop_limit; 40 break; 41 case IP6T_HL_INC: 42 new_hl = ip6h->hop_limit + info->hop_limit; 43 if (new_hl > 255) 44 new_hl = 255; 45 break; 46 case IP6T_HL_DEC: 47 new_hl = ip6h->hop_limit - info->hop_limit; 48 if (new_hl < 0) 49 new_hl = 0; 50 break; 51 default: 52 new_hl = ip6h->hop_limit; 53 break; 54 } 55 56 if (new_hl != ip6h->hop_limit) { 57 ===> diffs[0] = htons(((unsigned)ip6h->hop_limit) << 8) ^ 0xFFFF; 58 ip6h->hop_limit = new_hl; 59 ===> diffs[1] = htons(((unsigned)ip6h->hop_limit) << 8); 60 } 61 62 return IP6T_CONTINUE; 63 } - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html