]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: spectrum: Protect driver from buggy firmware
authorAmit Cohen <amcohen@nvidia.com>
Tue, 23 Nov 2021 07:52:56 +0000 (09:52 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Nov 2021 11:46:18 +0000 (11:46 +0000)
commitcb6f3d3ce9b09ba4d75077b3c803f0949f58d03d
tree7d44ef1bf1fe5c50e8983c20a402ea1625991667
parent94095e1092600634be57d5b355e9fc7424c49699
mlxsw: spectrum: Protect driver from buggy firmware

When processing port up/down events generated by the device's firmware,
the driver protects itself from events reported for non-existent local
ports, but not the CPU port (local port 0), which exists, but lacks a
netdev.

This can result in a NULL pointer dereference when calling
netif_carrier_{on,off}().

Fix this by bailing early when processing an event reported for the CPU
port. Problem was only observed when running on top of a buggy emulator.

Fixes: daa4ff70749a ("mlxsw: spectrum: Register CPU port with devlink")
Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c