rtnetlink: Fix regression in bridge VLAN configuration
Cited commit started returning errors when notification info is not filled by the bridge driver, resulting in the following regression: # ip link add name br1 type bridge vlan_filtering 1 # bridge vlan add dev br1 vid 555 self pvid untagged RTNETLINK answers: Invalid argument As long as the bridge driver does not fill notification info for the bridge device itself, an empty notification should not be considered as an error. This is explained in commit59ccaaaa49
("bridge: dont send notification when skb->len == 0 in rtnl_bridge_notify"). Fix by removing the error and add a comment to avoid future bugs. Fixes:a8db57c1d2
("rtnetlink: Fix missing error code in rtnl_bridge_notify()") Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Nikolay Aleksandrov <nikolay@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
93124d4a90
Коммит
d2e381c496
|
@ -4842,10 +4842,12 @@ static int rtnl_bridge_notify(struct net_device *dev)
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto errout;
|
goto errout;
|
||||||
|
|
||||||
if (!skb->len) {
|
/* Notification info is only filled for bridge ports, not the bridge
|
||||||
err = -EINVAL;
|
* device itself. Therefore, a zero notification length is valid and
|
||||||
|
* should not result in an error.
|
||||||
|
*/
|
||||||
|
if (!skb->len)
|
||||||
goto errout;
|
goto errout;
|
||||||
}
|
|
||||||
|
|
||||||
rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
|
rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче