2021-08-16 13:15:11

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.10 52/96] net: dsa: microchip: ksz8795: Fix VLAN filtering

From: Ben Hutchings <[email protected]>

[ Upstream commit 164844135a3f215d3018ee9d6875336beb942413 ]

Currently ksz8_port_vlan_filtering() sets or clears the VLAN Enable
hardware flag. That controls discarding of packets with a VID that
has not been enabled for any port on the switch.

Since it is a global flag, set the dsa_switch::vlan_filtering_is_global
flag so that the DSA core understands this can't be controlled per
port.

When VLAN filtering is enabled, the switch should also discard packets
with a VID that's not enabled on the ingress port. Set or clear each
external port's VLAN Ingress Filter flag in ksz8_port_vlan_filtering()
to make that happen.

Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index 1e101ab56cea..108a14db1f1a 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -790,8 +790,14 @@ static int ksz8795_port_vlan_filtering(struct dsa_switch *ds, int port,
if (switchdev_trans_ph_prepare(trans))
return 0;

+ /* Discard packets with VID not enabled on the switch */
ksz_cfg(dev, S_MIRROR_CTRL, SW_VLAN_ENABLE, flag);

+ /* Discard packets with VID not enabled on the ingress port */
+ for (port = 0; port < dev->phy_port_cnt; ++port)
+ ksz_port_cfg(dev, port, REG_PORT_CTRL_2, PORT_INGRESS_FILTER,
+ flag);
+
return 0;
}

@@ -1266,6 +1272,11 @@ static int ksz8795_switch_init(struct ksz_device *dev)
/* set the real number of ports */
dev->ds->num_ports = dev->port_cnt + 1;

+ /* VLAN filtering is partly controlled by the global VLAN
+ * Enable flag
+ */
+ dev->ds->vlan_filtering_is_global = true;
+
return 0;
}

--
2.30.2




2021-08-16 13:46:38

by Ben Hutchings

[permalink] [raw]
Subject: Re: [PATCH 5.10 52/96] net: dsa: microchip: ksz8795: Fix VLAN filtering

On Mon, Aug 16, 2021 at 03:02:02PM +0200, Greg Kroah-Hartman wrote:
> From: Ben Hutchings <[email protected]>
>
> [ Upstream commit 164844135a3f215d3018ee9d6875336beb942413 ]

This will probably work on its own, but it was tested as part of a
series of changes to VLAN handling in the driver. Since I initially
developed and tested that on top of 5.10-stable, I would prefer to
send you the complete series to apply together.

Ben.

> Currently ksz8_port_vlan_filtering() sets or clears the VLAN Enable
> hardware flag. That controls discarding of packets with a VID that
> has not been enabled for any port on the switch.
>
> Since it is a global flag, set the dsa_switch::vlan_filtering_is_global
> flag so that the DSA core understands this can't be controlled per
> port.
>
> When VLAN filtering is enabled, the switch should also discard packets
> with a VID that's not enabled on the ingress port. Set or clear each
> external port's VLAN Ingress Filter flag in ksz8_port_vlan_filtering()
> to make that happen.
>
> Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
> Signed-off-by: Ben Hutchings <[email protected]>
> Signed-off-by: David S. Miller <[email protected]>
> Signed-off-by: Sasha Levin <[email protected]>
> ---
> drivers/net/dsa/microchip/ksz8795.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
> index 1e101ab56cea..108a14db1f1a 100644
> --- a/drivers/net/dsa/microchip/ksz8795.c
> +++ b/drivers/net/dsa/microchip/ksz8795.c
> @@ -790,8 +790,14 @@ static int ksz8795_port_vlan_filtering(struct dsa_switch *ds, int port,
> if (switchdev_trans_ph_prepare(trans))
> return 0;
>
> + /* Discard packets with VID not enabled on the switch */
> ksz_cfg(dev, S_MIRROR_CTRL, SW_VLAN_ENABLE, flag);
>
> + /* Discard packets with VID not enabled on the ingress port */
> + for (port = 0; port < dev->phy_port_cnt; ++port)
> + ksz_port_cfg(dev, port, REG_PORT_CTRL_2, PORT_INGRESS_FILTER,
> + flag);
> +
> return 0;
> }
>
> @@ -1266,6 +1272,11 @@ static int ksz8795_switch_init(struct ksz_device *dev)
> /* set the real number of ports */
> dev->ds->num_ports = dev->port_cnt + 1;
>
> + /* VLAN filtering is partly controlled by the global VLAN
> + * Enable flag
> + */
> + dev->ds->vlan_filtering_is_global = true;
> +
> return 0;
> }
>
> --
> 2.30.2
>
>
>

--
Ben Hutchings ? Senior Embedded Software Engineer, Essensium-Mind ? mind.be

2021-08-16 16:29:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.10 52/96] net: dsa: microchip: ksz8795: Fix VLAN filtering

On Mon, Aug 16, 2021 at 03:28:58PM +0200, Ben Hutchings wrote:
> On Mon, Aug 16, 2021 at 03:02:02PM +0200, Greg Kroah-Hartman wrote:
> > From: Ben Hutchings <[email protected]>
> >
> > [ Upstream commit 164844135a3f215d3018ee9d6875336beb942413 ]
>
> This will probably work on its own, but it was tested as part of a
> series of changes to VLAN handling in the driver. Since I initially
> developed and tested that on top of 5.10-stable, I would prefer to
> send you the complete series to apply together.

What is the "complete series"? We have 7 patches for this driver in
this round of kernel rc reviews. What specific git ids are you
referring to?

thanks,

greg k-h

2021-08-16 17:50:22

by Ben Hutchings

[permalink] [raw]
Subject: Re: [PATCH 5.10 52/96] net: dsa: microchip: ksz8795: Fix VLAN filtering

On Mon, Aug 16, 2021 at 06:27:24PM +0200, Greg Kroah-Hartman wrote:
> On Mon, Aug 16, 2021 at 03:28:58PM +0200, Ben Hutchings wrote:
> > On Mon, Aug 16, 2021 at 03:02:02PM +0200, Greg Kroah-Hartman wrote:
> > > From: Ben Hutchings <[email protected]>
> > >
> > > [ Upstream commit 164844135a3f215d3018ee9d6875336beb942413 ]
> >
> > This will probably work on its own, but it was tested as part of a
> > series of changes to VLAN handling in the driver. Since I initially
> > developed and tested that on top of 5.10-stable, I would prefer to
> > send you the complete series to apply together.
>
> What is the "complete series"? We have 7 patches for this driver in
> this round of kernel rc reviews.

You have the full series queued up for 5.13, but only 2 of them for
5.10.

> What specific git ids are you referring to?

The fixes missing from the 5.10 queue are:

ef3b02a1d79b691f9a354c4903cf1e6917e315f9
8f4f58f88fe0d9bd591f21f53de7dbd42baeb3fa
af01754f9e3c553a2ee63b4693c79a3956e230ab
9130c2d30c17846287b803a9803106318cbe5266

(I also have another fix just for 5.10 because the issue was fixed by
a refactoring in 5.11 that wouldn't be suitable for stable.)

Ben.

--
Ben Hutchings ? Senior Embedded Software Engineer, Essensium-Mind ? mind.be

2021-08-16 18:11:44

by Ben Hutchings

[permalink] [raw]
Subject: [PATCH 5.10 2/5] net: dsa: microchip: ksz8795: Fix PVID tag insertion

commit ef3b02a1d79b691f9a354c4903cf1e6917e315f9 upstream.

ksz8795 has never actually enabled PVID tag insertion, and it also
programmed the PVID incorrectly. To fix this:

* Allow tag insertion to be controlled per ingress port. On most
chips, set bit 2 in Global Control 19. On KSZ88x3 this control
flag doesn't exist.

* When adding a PVID:
- Set the appropriate register bits to enable tag insertion on
egress at every other port if this was the packet's ingress port.
- Mask *out* the VID from the default tag, before or-ing in the new
PVID.

* When removing a PVID:
- Clear the same control bits to disable tag insertion.
- Don't update the default tag. This wasn't doing anything useful.

Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[bwh: Backport to 5.10:
- Drop the KSZ88x3 cases as those chips are not supported here
- Handle VID ranges in ksz8795_port_vlan_del()]
Signed-off-by: Ben Hutchings <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index 108a14db1f1a..3d36ffff1f4e 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -833,9 +833,11 @@ static void ksz8795_port_vlan_add(struct dsa_switch *ds, int port,

if (new_pvid) {
ksz_pread16(dev, port, REG_PORT_CTRL_VID, &vid);
- vid &= 0xfff;
+ vid &= ~VLAN_VID_MASK;
vid |= new_pvid;
ksz_pwrite16(dev, port, REG_PORT_CTRL_VID, vid);
+
+ ksz_pwrite8(dev, port, REG_PORT_CTRL_12, 0x0f);
}
}

@@ -844,8 +846,9 @@ static int ksz8795_port_vlan_del(struct dsa_switch *ds, int port,
{
bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED;
struct ksz_device *dev = ds->priv;
- u16 data, vid, pvid, new_pvid = 0;
+ u16 data, vid, pvid;
u8 fid, member, valid;
+ bool del_pvid = false;

ksz_pread16(dev, port, REG_PORT_CTRL_VID, &pvid);
pvid = pvid & 0xFFF;
@@ -865,14 +868,14 @@ static int ksz8795_port_vlan_del(struct dsa_switch *ds, int port,
}

if (pvid == vid)
- new_pvid = 1;
+ del_pvid = true;

ksz8795_to_vlan(fid, member, valid, &data);
ksz8795_w_vlan_table(dev, vid, data);
}

- if (new_pvid != pvid)
- ksz_pwrite16(dev, port, REG_PORT_CTRL_VID, pvid);
+ if (del_pvid)
+ ksz_pwrite8(dev, port, REG_PORT_CTRL_12, 0x00);

return 0;
}
@@ -1085,6 +1088,8 @@ static int ksz8795_setup(struct dsa_switch *ds)

ksz_cfg(dev, S_MIRROR_CTRL, SW_MIRROR_RX_TX, false);

+ ksz_cfg(dev, REG_SW_CTRL_19, SW_INS_TAG_ENABLE, true);
+
/* set broadcast storm protection 10% rate */
regmap_update_bits(dev->regmap[1], S_REPLACE_VID_CTRL,
BROADCAST_STORM_RATE,
--
2.20.1

2021-08-16 18:13:18

by Ben Hutchings

[permalink] [raw]
Subject: [PATCH 5.10 4/5] net: dsa: microchip: ksz8795: Fix VLAN untagged flag change on deletion

commit af01754f9e3c553a2ee63b4693c79a3956e230ab upstream.

When a VLAN is deleted from a port, the flags in struct
switchdev_obj_port_vlan are always 0. ksz8_port_vlan_del() copies the
BRIDGE_VLAN_INFO_UNTAGGED flag to the port's Tag Removal flag, and
therefore always clears it.

In case there are multiple VLANs configured as untagged on this port -
which seems useless, but is allowed - deleting one of them changes the
remaining VLANs to be tagged.

It's only ever necessary to change this flag when a VLAN is added to
the port, so leave it unchanged in ksz8_port_vlan_del().

Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[bwh: Backport to 5.10: adjust context]
Signed-off-by: Ben Hutchings <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index b4b164d75520..8f2b54ae57f2 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -895,7 +895,6 @@ static void ksz8795_port_vlan_add(struct dsa_switch *ds, int port,
static int ksz8795_port_vlan_del(struct dsa_switch *ds, int port,
const struct switchdev_obj_port_vlan *vlan)
{
- bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED;
struct ksz_device *dev = ds->priv;
u16 data, vid, pvid;
u8 fid, member, valid;
@@ -904,8 +903,6 @@ static int ksz8795_port_vlan_del(struct dsa_switch *ds, int port,
ksz_pread16(dev, port, REG_PORT_CTRL_VID, &pvid);
pvid = pvid & 0xFFF;

- ksz_port_cfg(dev, port, P_TAG_CTRL, PORT_REMOVE_TAG, untagged);
-
for (vid = vlan->vid_begin; vid <= vlan->vid_end; vid++) {
ksz8795_r_vlan_table(dev, vid, &data);
ksz8795_from_vlan(data, &fid, &member, &valid);
--
2.20.1

2021-08-16 18:13:18

by Ben Hutchings

[permalink] [raw]
Subject: [PATCH 5.10 1/5] net: dsa: microchip: Fix probing KSZ87xx switch with DT node for host port

The ksz8795 and ksz9477 drivers differ in the way they count ports.
For ksz8795, ksz_device::port_cnt does not include the host port
whereas for ksz9477 it does. This inconsistency was fixed in Linux
5.11 by a series of changes, but remains in 5.10-stable.

When probing, the common code treats a port device node with an
address >= dev->port_cnt as a fatal error. As a minimal fix, change
it to compare again dev->mib_port_cnt. This is the length of the
dev->ports array that the port number will be used to index, and
always includes the host port.

Cc: Woojung Huh <[email protected]>
Cc: Microchip Linux Driver Support <[email protected]>
Cc: Michael Grzeschik <[email protected]>
Cc: Marek Vasut <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
---
drivers/net/dsa/microchip/ksz_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
index d4a64dbde315..88fa0779e0bc 100644
--- a/drivers/net/dsa/microchip/ksz_common.c
+++ b/drivers/net/dsa/microchip/ksz_common.c
@@ -432,7 +432,7 @@ int ksz_switch_register(struct ksz_device *dev,
if (of_property_read_u32(port, "reg",
&port_num))
continue;
- if (port_num >= dev->port_cnt)
+ if (port_num >= dev->mib_port_cnt)
return -EINVAL;
of_get_phy_mode(port,
&dev->ports[port_num].interface);
--
2.20.1

2021-08-16 18:14:14

by Ben Hutchings

[permalink] [raw]
Subject: [PATCH 5.10 3/5] net: dsa: microchip: ksz8795: Reject unsupported VLAN configuration

commit 8f4f58f88fe0d9bd591f21f53de7dbd42baeb3fa upstream.

The switches supported by ksz8795 only have a per-port flag for Tag
Removal. This means it is not possible to support both tagged and
untagged VLANs on the same port. Reject attempts to add a VLAN that
requires the flag to be changed, unless there are no VLANs currently
configured.

VID 0 is excluded from this check since it is untagged regardless of
the state of the flag.

On the CPU port we could support tagged and untagged VLANs at the same
time. This will be enabled by a later patch.

Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[bwh: Backport to 5.10:
- This configuration has to be detected and rejected in the
port_vlan_prepare operation
- ksz8795_port_vlan_add() has to check again to decide whether to
change the Tag Removal flag, so put the common condition in a
separate function
- Handle VID ranges]
Signed-off-by: Ben Hutchings <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 55 +++++++++++++++++++++++++-
drivers/net/dsa/microchip/ksz_common.h | 1 +
2 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index 3d36ffff1f4e..b4b164d75520 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -801,15 +801,66 @@ static int ksz8795_port_vlan_filtering(struct dsa_switch *ds, int port,
return 0;
}

+static bool ksz8795_port_vlan_changes_remove_tag(
+ struct dsa_switch *ds, int port,
+ const struct switchdev_obj_port_vlan *vlan)
+{
+ bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED;
+ struct ksz_device *dev = ds->priv;
+ struct ksz_port *p = &dev->ports[port];
+
+ /* If a VLAN is added with untagged flag different from the
+ * port's Remove Tag flag, we need to change the latter.
+ * Ignore VID 0, which is always untagged.
+ */
+ return untagged != p->remove_tag &&
+ !(vlan->vid_begin == 0 && vlan->vid_end == 0);
+}
+
+int ksz8795_port_vlan_prepare(struct dsa_switch *ds, int port,
+ const struct switchdev_obj_port_vlan *vlan)
+{
+ struct ksz_device *dev = ds->priv;
+
+ /* Reject attempts to add a VLAN that requires the Remove Tag
+ * flag to be changed, unless there are no other VLANs
+ * currently configured.
+ */
+ if (ksz8795_port_vlan_changes_remove_tag(ds, port, vlan)) {
+ unsigned int vid;
+
+ for (vid = 1; vid < dev->num_vlans; ++vid) {
+ u8 fid, member, valid;
+
+ /* Skip the VIDs we are going to add or reconfigure */
+ if (vid == vlan->vid_begin) {
+ vid = vlan->vid_end;
+ continue;
+ }
+
+ ksz8795_from_vlan(dev->vlan_cache[vid].table[0],
+ &fid, &member, &valid);
+ if (valid && (member & BIT(port)))
+ return -EINVAL;
+ }
+ }
+
+ return ksz_port_vlan_prepare(ds, port, vlan);
+}
+
static void ksz8795_port_vlan_add(struct dsa_switch *ds, int port,
const struct switchdev_obj_port_vlan *vlan)
{
bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED;
struct ksz_device *dev = ds->priv;
+ struct ksz_port *p = &dev->ports[port];
u16 data, vid, new_pvid = 0;
u8 fid, member, valid;

- ksz_port_cfg(dev, port, P_TAG_CTRL, PORT_REMOVE_TAG, untagged);
+ if (ksz8795_port_vlan_changes_remove_tag(ds, port, vlan)) {
+ ksz_port_cfg(dev, port, P_TAG_CTRL, PORT_REMOVE_TAG, untagged);
+ p->remove_tag = untagged;
+ }

for (vid = vlan->vid_begin; vid <= vlan->vid_end; vid++) {
ksz8795_r_vlan_table(dev, vid, &data);
@@ -1128,7 +1179,7 @@ static const struct dsa_switch_ops ksz8795_switch_ops = {
.port_stp_state_set = ksz8795_port_stp_state_set,
.port_fast_age = ksz_port_fast_age,
.port_vlan_filtering = ksz8795_port_vlan_filtering,
- .port_vlan_prepare = ksz_port_vlan_prepare,
+ .port_vlan_prepare = ksz8795_port_vlan_prepare,
.port_vlan_add = ksz8795_port_vlan_add,
.port_vlan_del = ksz8795_port_vlan_del,
.port_fdb_dump = ksz_port_fdb_dump,
diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h
index a51c716ec920..309ad4a72d78 100644
--- a/drivers/net/dsa/microchip/ksz_common.h
+++ b/drivers/net/dsa/microchip/ksz_common.h
@@ -27,6 +27,7 @@ struct ksz_port_mib {
struct ksz_port {
u16 member;
u16 vid_member;
+ bool remove_tag; /* Remove Tag flag set, for ksz8795 only */
int stp_state;
struct phy_device phydev;

--
2.20.1

2021-08-16 18:14:16

by Ben Hutchings

[permalink] [raw]
Subject: [PATCH 5.10 5/5] net: dsa: microchip: ksz8795: Use software untagging on CPU port

commit 9130c2d30c17846287b803a9803106318cbe5266 upstream.

On the CPU port, we can support both tagged and untagged VLANs at the
same time by doing any necessary untagging in software rather than
hardware. To enable that, keep the CPU port's Remove Tag flag cleared
and set the dsa_switch::untag_bridge_pvid flag.

Fixes: e66f840c08a2 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
[bwh: Backport to 5.10: adjust context]
Signed-off-by: Ben Hutchings <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index 8f2b54ae57f2..ada0533b81fa 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -812,9 +812,11 @@ static bool ksz8795_port_vlan_changes_remove_tag(
/* If a VLAN is added with untagged flag different from the
* port's Remove Tag flag, we need to change the latter.
* Ignore VID 0, which is always untagged.
+ * Ignore CPU port, which will always be tagged.
*/
return untagged != p->remove_tag &&
- !(vlan->vid_begin == 0 && vlan->vid_end == 0);
+ !(vlan->vid_begin == 0 && vlan->vid_end == 0) &&
+ port != dev->cpu_port;
}

int ksz8795_port_vlan_prepare(struct dsa_switch *ds, int port,
@@ -1325,6 +1327,11 @@ static int ksz8795_switch_init(struct ksz_device *dev)
/* set the real number of ports */
dev->ds->num_ports = dev->port_cnt + 1;

+ /* We rely on software untagging on the CPU port, so that we
+ * can support both tagged and untagged VLANs
+ */
+ dev->ds->untag_bridge_pvid = true;
+
/* VLAN filtering is partly controlled by the global VLAN
* Enable flag
*/
--
2.20.1

2021-08-16 19:26:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.10 52/96] net: dsa: microchip: ksz8795: Fix VLAN filtering

On Mon, Aug 16, 2021 at 07:49:05PM +0200, Ben Hutchings wrote:
> On Mon, Aug 16, 2021 at 06:27:24PM +0200, Greg Kroah-Hartman wrote:
> > On Mon, Aug 16, 2021 at 03:28:58PM +0200, Ben Hutchings wrote:
> > > On Mon, Aug 16, 2021 at 03:02:02PM +0200, Greg Kroah-Hartman wrote:
> > > > From: Ben Hutchings <[email protected]>
> > > >
> > > > [ Upstream commit 164844135a3f215d3018ee9d6875336beb942413 ]
> > >
> > > This will probably work on its own, but it was tested as part of a
> > > series of changes to VLAN handling in the driver. Since I initially
> > > developed and tested that on top of 5.10-stable, I would prefer to
> > > send you the complete series to apply together.
> >
> > What is the "complete series"? We have 7 patches for this driver in
> > this round of kernel rc reviews.
>
> You have the full series queued up for 5.13, but only 2 of them for
> 5.10.
>
> > What specific git ids are you referring to?
>
> The fixes missing from the 5.10 queue are:
>
> ef3b02a1d79b691f9a354c4903cf1e6917e315f9
> 8f4f58f88fe0d9bd591f21f53de7dbd42baeb3fa
> af01754f9e3c553a2ee63b4693c79a3956e230ab
> 9130c2d30c17846287b803a9803106318cbe5266
>
> (I also have another fix just for 5.10 because the issue was fixed by
> a refactoring in 5.11 that wouldn't be suitable for stable.)

Thanks, sorry, I was looking at 5.13. All now queued up.

greg k-h