Message ID | 20200123132807.613-2-nikolay@cumulusnetworks.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | [net-next,1/4] net: bridge: check port state before br_allowed_egress | expand |
On Thu, 23 Jan 2020 15:28:04 +0200 Nikolay Aleksandrov <nikolay@cumulusnetworks.com> wrote: > return ((p->flags & BR_HAIRPIN_MODE) || skb->dev != p->dev) && > - br_allowed_egress(vg, skb) && p->state == BR_STATE_FORWARDING && > + p->state == BR_STATE_FORWARDING && br_allowed_egress(vg, skb) && > nbp_switchdev_allowed_egress(p, skb) && > !br_skb_isolated(p, skb); > } Maybe break this complex return for readability?
On 23 January 2020 18:25:42 EET, Stephen Hemminger <stephen@networkplumber.org> wrote: >On Thu, 23 Jan 2020 15:28:04 +0200 >Nikolay Aleksandrov <nikolay@cumulusnetworks.com> wrote: > >> return ((p->flags & BR_HAIRPIN_MODE) || skb->dev != p->dev) && >> - br_allowed_egress(vg, skb) && p->state == BR_STATE_FORWARDING && >> + p->state == BR_STATE_FORWARDING && br_allowed_egress(vg, skb) && >> nbp_switchdev_allowed_egress(p, skb) && >> !br_skb_isolated(p, skb); >> } > >Maybe break this complex return for readability? Sure, sounds good, but is not the point of this commit. I'll prepare a separate cleanup patch for that. Thanks, Nik
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 86637000f275..7629b63f6f30 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -25,7 +25,7 @@ static inline int should_deliver(const struct net_bridge_port *p, vg = nbp_vlan_group_rcu(p); return ((p->flags & BR_HAIRPIN_MODE) || skb->dev != p->dev) && - br_allowed_egress(vg, skb) && p->state == BR_STATE_FORWARDING && + p->state == BR_STATE_FORWARDING && br_allowed_egress(vg, skb) && nbp_switchdev_allowed_egress(p, skb) && !br_skb_isolated(p, skb); }
If we make sure that br_allowed_egress is called only when we have BR_STATE_FORWARDING state then we can avoid a test later when we add per-vlan state. Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> --- net/bridge/br_forward.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)