[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160213.060838.90896525204354915.davem@davemloft.net>
Date: Sat, 13 Feb 2016 06:08:38 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: vivien.didelot@...oirfairelinux.com
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
kernel@...oirfairelinux.com, andrew@...n.ch,
kevin.smith@...csyscorp.com, sfeldma@...il.com, jiri@...nulli.us,
nikolay@...ulusnetworks.com, f.fainelli@...il.com
Subject: Re: [PATCH net] net: dsa: mv88e6xxx: fix software VLAN deletion
From: Vivien Didelot <vivien.didelot@...oirfairelinux.com>
Date: Fri, 5 Feb 2016 14:04:39 -0500
> The current bridge code calls switchdev_port_obj_del on a VLAN port even
> if the corresponding switchdev_port_obj_add call returned -EOPNOTSUPP.
>
> If the DSA driver doesn't return -EOPNOTSUPP for a software port VLAN in
> its port_vlan_del function, the VLAN is not deleted. Unbridging the port
> also generates a stack trace for the same reason.
>
> This can be quickly tested on a VLAN filtering enabled system with:
>
> # brctl addbr br0
> # brctl addif br0 lan0
> # brctl addbr br1
> # brctl addif br1 lan1
> # brctl delif br1 lan1
>
> Both bridges have a default default_pvid set to 1. lan0 uses the
> hardware VLAN 1 while lan1 falls back to the software VLAN 1.
>
> Unbridging lan1 does not delete its software VLAN, and thus generates
> the following stack trace:
...
> To fix this, return -EOPNOTSUPP in _mv88e6xxx_port_vlan_del instead of
> -ENOENT if the hardware VLAN doesn't exist or the port is not a member.
>
> Signed-off-by: Vivien Didelot <vivien.didelot@...oirfairelinux.com>
Applied.
Powered by blists - more mailing lists