if (skb->nfcache & NFC_IPVS_PROPERTY)
return NF_ACCEPT;
+ if (skb->ip_summed == CHECKSUM_HW) {
+ if (skb_checksum_help(pskb, (out == NULL)))
+ return NF_DROP;
+ if (skb != *pskb)
+ skb = *pskb;
+ }
+
iph = skb->nh.iph;
if (unlikely(iph->protocol == IPPROTO_ICMP)) {
int related, verdict = ip_vs_out_icmp(pskb, &related);
return NF_ACCEPT;
}
+ if (skb->ip_summed == CHECKSUM_HW) {
+ if (skb_checksum_help(pskb, (out == NULL)))
+ return NF_DROP;
+ if (skb != *pskb)
+ skb = *pskb;
+ }
+
iph = skb->nh.iph;
if (unlikely(iph->protocol == IPPROTO_ICMP)) {
int related, verdict = ip_vs_in_icmp(pskb, &related);