Patchwork bridge: Correctly clamp MAX forward_delay when enabling STP

login
register
mail settings
Submitter Vlad Yasevich
Date Oct. 15, 2013, 6:57 p.m.
Message ID <1381863465-27304-1-git-send-email-vyasevic@redhat.com>
Download mbox | patch
Permalink /patch/283770/
State Accepted
Delegated to: David Miller
Headers show

Comments

Vlad Yasevich - Oct. 15, 2013, 6:57 p.m.
Commit be4f154d5ef0ca147ab6bcd38857a774133f5450
	bridge: Clamp forward_delay when enabling STP
had a typo when attempting to clamp maximum forward delay.

It is possible to set bridge_forward_delay to be higher then
permitted maximum when STP is off.  When turning STP on, the
higher then allowed delay has to be clamed down to max value.

CC: Herbert Xu <herbert@gondor.apana.org.au>
CC: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
---
 net/bridge/br_stp_if.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Veaceslav Falico - Oct. 15, 2013, 7:17 p.m.
On Tue, Oct 15, 2013 at 02:57:45PM -0400, Vlad Yasevich wrote:
>Commit be4f154d5ef0ca147ab6bcd38857a774133f5450
>	bridge: Clamp forward_delay when enabling STP
>had a typo when attempting to clamp maximum forward delay.
>
>It is possible to set bridge_forward_delay to be higher then
>permitted maximum when STP is off.  When turning STP on, the
>higher then allowed delay has to be clamed down to max value.
>
>CC: Herbert Xu <herbert@gondor.apana.org.au>
>CC: Stephen Hemminger <shemminger@vyatta.com>
>Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>

I think it should also be queued for stable, as it's present there also.
David, mind adding it?

As for the code - great catch!

Reviewed-by: Veaceslav Falico <vfalico@redhat.com>

>---
> net/bridge/br_stp_if.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
>index 108084a..656a6f3 100644
>--- a/net/bridge/br_stp_if.c
>+++ b/net/bridge/br_stp_if.c
>@@ -134,7 +134,7 @@ static void br_stp_start(struct net_bridge *br)
>
> 	if (br->bridge_forward_delay < BR_MIN_FORWARD_DELAY)
> 		__br_set_forward_delay(br, BR_MIN_FORWARD_DELAY);
>-	else if (br->bridge_forward_delay < BR_MAX_FORWARD_DELAY)
>+	else if (br->bridge_forward_delay > BR_MAX_FORWARD_DELAY)
> 		__br_set_forward_delay(br, BR_MAX_FORWARD_DELAY);
>
> 	if (r == 0) {
>-- 
>1.8.3.1
>
>--
>To unsubscribe from this list: send the line "unsubscribe netdev" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Herbert Xu - Oct. 16, 2013, 12:56 a.m.
On Tue, Oct 15, 2013 at 02:57:45PM -0400, Vlad Yasevich wrote:
> Commit be4f154d5ef0ca147ab6bcd38857a774133f5450
> 	bridge: Clamp forward_delay when enabling STP
> had a typo when attempting to clamp maximum forward delay.
> 
> It is possible to set bridge_forward_delay to be higher then
> permitted maximum when STP is off.  When turning STP on, the
> higher then allowed delay has to be clamed down to max value.
> 
> CC: Herbert Xu <herbert@gondor.apana.org.au>
> CC: Stephen Hemminger <shemminger@vyatta.com>
> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>

Good catch!

Acked-by: Herbert Xu <herbert@gondor.apana.org.au>

Thanks,
David Miller - Oct. 17, 2013, 8:12 p.m.
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Wed, 16 Oct 2013 08:56:57 +0800

> On Tue, Oct 15, 2013 at 02:57:45PM -0400, Vlad Yasevich wrote:
>> Commit be4f154d5ef0ca147ab6bcd38857a774133f5450
>> 	bridge: Clamp forward_delay when enabling STP
>> had a typo when attempting to clamp maximum forward delay.
>> 
>> It is possible to set bridge_forward_delay to be higher then
>> permitted maximum when STP is off.  When turning STP on, the
>> higher then allowed delay has to be clamed down to max value.
>> 
>> CC: Herbert Xu <herbert@gondor.apana.org.au>
>> CC: Stephen Hemminger <shemminger@vyatta.com>
>> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> 
> Good catch!
> 
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>

Applied and queued up for -stable, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index 108084a..656a6f3 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -134,7 +134,7 @@  static void br_stp_start(struct net_bridge *br)
 
 	if (br->bridge_forward_delay < BR_MIN_FORWARD_DELAY)
 		__br_set_forward_delay(br, BR_MIN_FORWARD_DELAY);
-	else if (br->bridge_forward_delay < BR_MAX_FORWARD_DELAY)
+	else if (br->bridge_forward_delay > BR_MAX_FORWARD_DELAY)
 		__br_set_forward_delay(br, BR_MAX_FORWARD_DELAY);
 
 	if (r == 0) {