* [PATCH v2 0/2] DSA tagging mismatches
@ 2014-10-24 21:44 Andrew Lunn
2014-10-24 21:44 ` [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches Andrew Lunn
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Andrew Lunn @ 2014-10-24 21:44 UTC (permalink / raw)
To: davem; +Cc: f.fainelli, netdev, Andrew Lunn
The second patch is a fix, which should be applied to -rc. It is
possible to get a DSA configuration which does not work. The patch
stops this happening.
The first patch detects this situation, and errors out the probe of
DSA, making it more obvious something is wrong. It is not required to
apply it -rc.
v2 fixes the use case pointed out by Florian, that a switch driver
may use DSA_TAG_PROTO_NONE which the patch did not correctly handle.
Andrew Lunn (2):
net: dsa: Error out on tagging protocol mismatches
dsa: mv88e6171: Fix tagging protocol/Kconfig
drivers/net/dsa/mv88e6171.c | 2 +-
net/dsa/dsa.c | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
--
2.1.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches
2014-10-24 21:44 [PATCH v2 0/2] DSA tagging mismatches Andrew Lunn
@ 2014-10-24 21:44 ` Andrew Lunn
2014-10-24 22:42 ` Florian Fainelli
2014-10-24 21:44 ` [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig Andrew Lunn
2014-10-28 19:28 ` [PATCH v2 0/2] DSA tagging mismatches David Miller
2 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2014-10-24 21:44 UTC (permalink / raw)
To: davem; +Cc: f.fainelli, netdev, Andrew Lunn, alexander.h.duyck
If there is a mismatch between enabled tagging protocols and the
protocol the switch supports, error out, rather than continue with a
situation which is unlikely to work.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
cc: alexander.h.duyck@intel.com
---
v2: Handle the use case of DSA_TAG_PROTO_NONE
net/dsa/dsa.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index 22f34cf4cb27..6317b41c99b0 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -174,8 +174,11 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
dst->rcv = brcm_netdev_ops.rcv;
break;
#endif
- default:
+ case DSA_TAG_PROTO_NONE:
break;
+ default:
+ ret = -ENOPROTOOPT;
+ goto out;
}
dst->tag_protocol = drv->tag_protocol;
--
2.1.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig
2014-10-24 21:44 [PATCH v2 0/2] DSA tagging mismatches Andrew Lunn
2014-10-24 21:44 ` [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches Andrew Lunn
@ 2014-10-24 21:44 ` Andrew Lunn
2014-10-24 22:45 ` Florian Fainelli
2014-10-28 19:28 ` [PATCH v2 0/2] DSA tagging mismatches David Miller
2 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2014-10-24 21:44 UTC (permalink / raw)
To: davem; +Cc: f.fainelli, netdev, Andrew Lunn
The mv88e6171 can support two different tagging protocols, DSA and
EDSA. The switch driver structure only allows one protocol to be
enumerated, and DSA was chosen. However the Kconfig entry ensures the
EDSA tagging code is built. With a minimal configuration, we then end
up with a mismatch. The probe is successful, EDSA tagging is used, but
the switch is configured for DSA, resulting in mangled packets.
Change the switch driver structure to enumerate EDSA, fixing the
mismatch.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Fixes: 42f272539487 ("net: DSA: Marvell mv88e6171 switch driver")
---
drivers/net/dsa/mv88e6171.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/dsa/mv88e6171.c b/drivers/net/dsa/mv88e6171.c
index 1020a7af67cf..78d8e876f3aa 100644
--- a/drivers/net/dsa/mv88e6171.c
+++ b/drivers/net/dsa/mv88e6171.c
@@ -395,7 +395,7 @@ static int mv88e6171_get_sset_count(struct dsa_switch *ds)
}
struct dsa_switch_driver mv88e6171_switch_driver = {
- .tag_protocol = DSA_TAG_PROTO_DSA,
+ .tag_protocol = DSA_TAG_PROTO_EDSA,
.priv_size = sizeof(struct mv88e6xxx_priv_state),
.probe = mv88e6171_probe,
.setup = mv88e6171_setup,
--
2.1.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches
2014-10-24 21:44 ` [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches Andrew Lunn
@ 2014-10-24 22:42 ` Florian Fainelli
0 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-10-24 22:42 UTC (permalink / raw)
To: Andrew Lunn, davem; +Cc: netdev, Alexander Duyck
On 10/24/2014 02:44 PM, Andrew Lunn wrote:
> If there is a mismatch between enabled tagging protocols and the
> protocol the switch supports, error out, rather than continue with a
> situation which is unlikely to work.
>
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
> cc: alexander.h.duyck@intel.com
> ---
>
> v2: Handle the use case of DSA_TAG_PROTO_NONE
>
> net/dsa/dsa.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
> index 22f34cf4cb27..6317b41c99b0 100644
> --- a/net/dsa/dsa.c
> +++ b/net/dsa/dsa.c
> @@ -174,8 +174,11 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
> dst->rcv = brcm_netdev_ops.rcv;
> break;
> #endif
> - default:
> + case DSA_TAG_PROTO_NONE:
> break;
> + default:
> + ret = -ENOPROTOOPT;
> + goto out;
> }
>
> dst->tag_protocol = drv->tag_protocol;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig
2014-10-24 21:44 ` [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig Andrew Lunn
@ 2014-10-24 22:45 ` Florian Fainelli
0 siblings, 0 replies; 6+ messages in thread
From: Florian Fainelli @ 2014-10-24 22:45 UTC (permalink / raw)
To: Andrew Lunn, davem; +Cc: netdev
On 10/24/2014 02:44 PM, Andrew Lunn wrote:
> The mv88e6171 can support two different tagging protocols, DSA and
> EDSA. The switch driver structure only allows one protocol to be
> enumerated, and DSA was chosen. However the Kconfig entry ensures the
> EDSA tagging code is built. With a minimal configuration, we then end
> up with a mismatch. The probe is successful, EDSA tagging is used, but
> the switch is configured for DSA, resulting in mangled packets.
>
> Change the switch driver structure to enumerate EDSA, fixing the
> mismatch.
>
> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
> Fixes: 42f272539487 ("net: DSA: Marvell mv88e6171 switch driver")
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> drivers/net/dsa/mv88e6171.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/dsa/mv88e6171.c b/drivers/net/dsa/mv88e6171.c
> index 1020a7af67cf..78d8e876f3aa 100644
> --- a/drivers/net/dsa/mv88e6171.c
> +++ b/drivers/net/dsa/mv88e6171.c
> @@ -395,7 +395,7 @@ static int mv88e6171_get_sset_count(struct dsa_switch *ds)
> }
>
> struct dsa_switch_driver mv88e6171_switch_driver = {
> - .tag_protocol = DSA_TAG_PROTO_DSA,
> + .tag_protocol = DSA_TAG_PROTO_EDSA,
> .priv_size = sizeof(struct mv88e6xxx_priv_state),
> .probe = mv88e6171_probe,
> .setup = mv88e6171_setup,
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/2] DSA tagging mismatches
2014-10-24 21:44 [PATCH v2 0/2] DSA tagging mismatches Andrew Lunn
2014-10-24 21:44 ` [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches Andrew Lunn
2014-10-24 21:44 ` [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig Andrew Lunn
@ 2014-10-28 19:28 ` David Miller
2 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2014-10-28 19:28 UTC (permalink / raw)
To: andrew; +Cc: f.fainelli, netdev
From: Andrew Lunn <andrew@lunn.ch>
Date: Fri, 24 Oct 2014 23:44:03 +0200
> The second patch is a fix, which should be applied to -rc. It is
> possible to get a DSA configuration which does not work. The patch
> stops this happening.
>
> The first patch detects this situation, and errors out the probe of
> DSA, making it more obvious something is wrong. It is not required to
> apply it -rc.
>
> v2 fixes the use case pointed out by Florian, that a switch driver
> may use DSA_TAG_PROTO_NONE which the patch did not correctly handle.
Series applied, thanks Andrew.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-10-28 19:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-24 21:44 [PATCH v2 0/2] DSA tagging mismatches Andrew Lunn
2014-10-24 21:44 ` [PATCH v2 1/2] net: dsa: Error out on tagging protocol mismatches Andrew Lunn
2014-10-24 22:42 ` Florian Fainelli
2014-10-24 21:44 ` [PATCH v2 2/2] dsa: mv88e6171: Fix tagging protocol/Kconfig Andrew Lunn
2014-10-24 22:45 ` Florian Fainelli
2014-10-28 19:28 ` [PATCH v2 0/2] DSA tagging mismatches David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).