diff mbox series

[net-next,1/4] net: bridge: check port state before br_allowed_egress

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

Commit Message

Nikolay Aleksandrov Jan. 23, 2020, 1:28 p.m. UTC
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(-)

Comments

Stephen Hemminger Jan. 23, 2020, 4:25 p.m. UTC | #1
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?
Nikolay Aleksandrov Jan. 23, 2020, 5:58 p.m. UTC | #2
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 mbox series

Patch

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);
 }