On Fri, Apr 4, 2014 at 9:20 PM, wei zhang <asuka....@163.com> wrote: > At 2014-04-05 07:05:59,"Jesse Gross" <je...@nicira.com> wrote: >>On Tue, Apr 1, 2014 at 5:23 PM, Wei Zhang <asuka....@163.com> wrote: >>> >>> v2 -> v1: use the same logic of the gre_rcv() to distinguish which packet is >>> intended to us! >> >>As a tip on kernel process: if you put the version information after >>three dashes below the signed-off-by line then git will automatically >>remove it when the final patch is applied. > > Thanks, should I modify it and send a v3 patch? > >> >>> diff --git a/net/openvswitch/vport-gre.c b/net/openvswitch/vport-gre.c >>> index a3d6951..f391df1 100644 >>> --- a/net/openvswitch/vport-gre.c >>> +++ b/net/openvswitch/vport-gre.c >>> @@ -110,6 +110,21 @@ static int gre_rcv(struct sk_buff *skb, >>> return PACKET_RCVD; >>> } >>> >>> +/* Called with rcu_read_lock and BH disabled. */ >>> +static int gre_err(struct sk_buff *skb, u32 info, >>> + const struct tnl_ptk_info *tpi) >>> +{ >>> + struct ovs_net *ovs_net; >>> + struct vport *vport; >>> + >>> + ovs_net = net_generic(dev_net(skb->dev), ovs_net_id); >>> + vport = rcu_dereference(ovs_net->vport_net.gre_vport); >>> + if (unlikely(!vport)) >>> + return PACKET_REJECT; >>> + else >>> + return PACKET_RCVD; >> >>Sorry, I forgot to say this before - if we receive the packet then we >>should also call consume_skb() on it. > > Maybe there is no need to call consume_skb()? The icmp_rcv() would > call kfree_skb() for us. I also checked the ipgre_err(), it return > PACKET_RCVD without call consume_skb() too.
Thanks, you are right. I applied your patch as is. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/