Avoid getting into a WARNING as below by checking, while in the prepare
state of the transactional operation, if there is space for a new VLAN.
If we reached the maximum number, return an appropriate error.
[ 6503.657564] eth3: Commit of object (id=1) failed.
[ 6503.657588] WARNING: CPU: 2 PID: 17144 at net/switchdev/switchdev.c:277 switchdev_port_obj_add_now+0xcc/0x110
...
[ 6503.657628] x1 : 70887ce26695c500 x0 : 0000000000000000
[ 6503.657630] Call trace:
[ 6503.657633] switchdev_port_obj_add_now+0xcc/0x110
[ 6503.657635] switchdev_port_obj_add+0x40/0xc0
[ 6503.657638] br_switchdev_port_vlan_add+0x50/0x78
[ 6503.657640] __vlan_add+0x2dc/0x758
[ 6503.657642] nbp_vlan_add+0xc0/0x180
[ 6503.657644] br_vlan_info.isra.0+0x68/0x128
[ 6503.657646] br_process_vlan_info+0x224/0x2f8
[ 6503.657647] br_afspec+0x158/0x188
[ 6503.657649] br_setlink+0x1a4/0x290
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20200721091919.20394-7-ioana.ciornei@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>