Message ID | 1547643861-15340-1-git-send-email-wangyunjian@huawei.com |
---|---|
State | Superseded |
Delegated to: | David Miller |
Headers | show |
Series | [net,v3] net: bridge: Fix ethernet header pointer before check skb forwardable | expand |
On Wed, 16 Jan 2019 21:04:21 +0800 wangyunjian <wangyunjian@huawei.com> wrote: > if (unlikely(netpoll_tx_running(to->br->dev))) { > + skb_push(skb, ETH_HLEN); > if (!is_skb_forwardable(skb->dev, skb)) { > kfree_skb(skb); > } else { > - skb_push(skb, ETH_HLEN); > br_netpoll_send_skb(to, skb); > } > return; The patch looks correct. On minor style issue is that after moving skb_push out of the if statement, both branches of the statement now contain a single line and therefore the brackets are no longer necessary. Suprised that checkpatch did not complain about this.
> -----Original Message----- > From: Stephen Hemminger [mailto:stephen@networkplumber.org] > Sent: Thursday, January 17, 2019 1:33 AM > To: wangyunjian <wangyunjian@huawei.com> > Cc: netdev@vger.kernel.org; xudingke <xudingke@huawei.com>; > bridge@lists.linux-foundation.org; Nkolay Aleksandrov > <nikolay@cumulusnetworks.com>; Roopa Prabhu > <roopa@cumulusnetworks.com> > Subject: Re: [PATCH net v3] net: bridge: Fix ethernet header pointer before > check skb forwardable > > On Wed, 16 Jan 2019 21:04:21 +0800 > wangyunjian <wangyunjian@huawei.com> wrote: > > > if (unlikely(netpoll_tx_running(to->br->dev))) { > > + skb_push(skb, ETH_HLEN); > > if (!is_skb_forwardable(skb->dev, skb)) { > > kfree_skb(skb); > > } else { > > - skb_push(skb, ETH_HLEN); > > br_netpoll_send_skb(to, skb); > > } > > return; > > The patch looks correct. > > On minor style issue is that after moving skb_push out of the if statement, > both branches of the statement now contain a single line and therefore the > brackets are no longer necessary. Suprised that checkpatch did not complain > about this. OK, I'll fix it and send the v4 later. Thanks Yunjian
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 5372e20..74b688b 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -36,10 +36,10 @@ static inline int should_deliver(const struct net_bridge_port *p, int br_dev_queue_push_xmit(struct net *net, struct sock *sk, struct sk_buff *skb) { + skb_push(skb, ETH_HLEN); if (!is_skb_forwardable(skb->dev, skb)) goto drop; - skb_push(skb, ETH_HLEN); br_drop_fake_rtable(skb); if (skb->ip_summed == CHECKSUM_PARTIAL && @@ -97,10 +97,10 @@ static void __br_forward(const struct net_bridge_port *to, net = dev_net(indev); } else { if (unlikely(netpoll_tx_running(to->br->dev))) { + skb_push(skb, ETH_HLEN); if (!is_skb_forwardable(skb->dev, skb)) { kfree_skb(skb); } else { - skb_push(skb, ETH_HLEN); br_netpoll_send_skb(to, skb); } return;