+++ /dev/null
-From foo@baz Sat Jun 9 16:33:52 CEST 2018
-From: Petr Machata <petrm@mellanox.com>
-Date: Sun, 27 May 2018 09:48:41 +0300
-Subject: mlxsw: spectrum: Forbid creation of VLAN 1 over port/LAG
-
-From: Petr Machata <petrm@mellanox.com>
-
-[ Upstream commit 47bf9df2e8201d07c40670e093629f8dfd1b5d9f ]
-
-VLAN 1 is internally used for untagged traffic. Prevent creation of
-explicit netdevice for that VLAN, because that currently isn't supported
-and leads to the NULL pointer dereference cited below.
-
-Fix by preventing creation of VLAN devices with VID of 1 over mlxsw
-devices or LAG devices that involve mlxsw devices.
-
-[ 327.175816] ================================================================================
-[ 327.184544] UBSAN: Undefined behaviour in drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c:200:12
-[ 327.193667] member access within null pointer of type 'const struct mlxsw_sp_fid'
-[ 327.201226] CPU: 0 PID: 8983 Comm: ip Not tainted 4.17.0-rc4-petrm_net_ip6gre_headroom-custom-140 #11
-[ 327.210496] Hardware name: Mellanox Technologies Ltd. "MSN2410-CB2F"/"SA000874", BIOS 4.6.5 03/08/2016
-[ 327.219872] Call Trace:
-[ 327.222384] dump_stack+0xc3/0x12b
-[ 327.234007] ubsan_epilogue+0x9/0x49
-[ 327.237638] ubsan_type_mismatch_common+0x1f9/0x2d0
-[ 327.255769] __ubsan_handle_type_mismatch+0x90/0xa7
-[ 327.264716] mlxsw_sp_fid_type+0x35/0x50 [mlxsw_spectrum]
-[ 327.270255] mlxsw_sp_port_vlan_router_leave+0x46/0xc0 [mlxsw_spectrum]
-[ 327.277019] mlxsw_sp_inetaddr_port_vlan_event+0xe1/0x340 [mlxsw_spectrum]
-[ 327.315031] mlxsw_sp_netdevice_vrf_event+0xa8/0x100 [mlxsw_spectrum]
-[ 327.321626] mlxsw_sp_netdevice_event+0x276/0x430 [mlxsw_spectrum]
-[ 327.367863] notifier_call_chain+0x4c/0x150
-[ 327.372128] __netdev_upper_dev_link+0x1b3/0x260
-[ 327.399450] vrf_add_slave+0xce/0x170 [vrf]
-[ 327.403703] do_setlink+0x658/0x1d70
-[ 327.508998] rtnl_newlink+0x908/0xf20
-[ 327.559128] rtnetlink_rcv_msg+0x50c/0x720
-[ 327.571720] netlink_rcv_skb+0x16a/0x1f0
-[ 327.583450] netlink_unicast+0x2ca/0x3e0
-[ 327.599305] netlink_sendmsg+0x3e2/0x7f0
-[ 327.616655] sock_sendmsg+0x76/0xc0
-[ 327.620207] ___sys_sendmsg+0x494/0x5d0
-[ 327.666117] __sys_sendmsg+0xc2/0x130
-[ 327.690953] do_syscall_64+0x66/0x370
-[ 327.694677] entry_SYSCALL_64_after_hwframe+0x49/0xbe
-[ 327.699782] RIP: 0033:0x7f4c2f3f8037
-[ 327.703393] RSP: 002b:00007ffe8c389708 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
-[ 327.711035] RAX: ffffffffffffffda RBX: 000000005b03f53e RCX: 00007f4c2f3f8037
-[ 327.718229] RDX: 0000000000000000 RSI: 00007ffe8c389760 RDI: 0000000000000003
-[ 327.725431] RBP: 00007ffe8c389760 R08: 0000000000000000 R09: 00007f4c2f443630
-[ 327.732632] R10: 00000000000005eb R11: 0000000000000246 R12: 0000000000000000
-[ 327.739833] R13: 00000000006774e0 R14: 00007ffe8c3897e8 R15: 0000000000000000
-[ 327.747096] ================================================================================
-
-Fixes: 9589a7b5d7d9 ("mlxsw: spectrum: Handle VLAN devices linking / unlinking")
-Suggested-by: Ido Schimmel <idosch@mellanox.com>
-Signed-off-by: Petr Machata <petrm@mellanox.com>
-Signed-off-by: Ido Schimmel <idosch@mellanox.com>
-Acked-by: Jiri Pirko <jiri@mellanox.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
-+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
-@@ -4389,6 +4389,11 @@ static int mlxsw_sp_netdevice_port_vlan_
- err = -EINVAL;
- WARN_ON(1);
- }
-+ if (is_vlan_dev(upper_dev) &&
-+ vlan_dev_vlan_id(upper_dev) == 1) {
-+ NL_SET_ERR_MSG_MOD(extack, "Creating a VLAN device with VID 1 is unsupported: VLAN 1 carries untagged traffic");
-+ return -EINVAL;
-+ }
- break;
- }
-