|
@@ -4040,12 +4040,17 @@ static inline int nf_ingress(struct sk_buff *skb, struct packet_type **pt_prev,
|
|
|
{
|
|
|
#ifdef CONFIG_NETFILTER_INGRESS
|
|
|
if (nf_hook_ingress_active(skb)) {
|
|
|
+ int ingress_retval;
|
|
|
+
|
|
|
if (*pt_prev) {
|
|
|
*ret = deliver_skb(skb, *pt_prev, orig_dev);
|
|
|
*pt_prev = NULL;
|
|
|
}
|
|
|
|
|
|
- return nf_hook_ingress(skb);
|
|
|
+ rcu_read_lock();
|
|
|
+ ingress_retval = nf_hook_ingress(skb);
|
|
|
+ rcu_read_unlock();
|
|
|
+ return ingress_retval;
|
|
|
}
|
|
|
#endif /* CONFIG_NETFILTER_INGRESS */
|
|
|
return 0;
|