|
|
@@ -339,10 +339,12 @@ int rtl8366_vlan_prepare(struct dsa_switch *ds, int port,
|
|
|
const struct switchdev_obj_port_vlan *vlan)
|
|
|
{
|
|
|
struct realtek_smi *smi = ds->priv;
|
|
|
+ u16 vid;
|
|
|
int ret;
|
|
|
|
|
|
- if (!smi->ops->is_vlan_valid(smi, port))
|
|
|
- return -EINVAL;
|
|
|
+ for (vid = vlan->vid_begin; vid < vlan->vid_end; vid++)
|
|
|
+ if (!smi->ops->is_vlan_valid(smi, vid))
|
|
|
+ return -EINVAL;
|
|
|
|
|
|
dev_info(smi->dev, "prepare VLANs %04x..%04x\n",
|
|
|
vlan->vid_begin, vlan->vid_end);
|
|
|
@@ -370,8 +372,9 @@ void rtl8366_vlan_add(struct dsa_switch *ds, int port,
|
|
|
u16 vid;
|
|
|
int ret;
|
|
|
|
|
|
- if (!smi->ops->is_vlan_valid(smi, port))
|
|
|
- return;
|
|
|
+ for (vid = vlan->vid_begin; vid < vlan->vid_end; vid++)
|
|
|
+ if (!smi->ops->is_vlan_valid(smi, vid))
|
|
|
+ return;
|
|
|
|
|
|
dev_info(smi->dev, "add VLAN on port %d, %s, %s\n",
|
|
|
port,
|