• Amit Cohen's avatar
    mlxsw: spectrum: Guard against invalid local ports · bcdfd615
    Amit Cohen authored
    When processing events generated by the device's firmware, the driver
    protects itself from events reported for non-existent local ports, but
    not for the CPU port (local port 0), which exists, but does not have all
    the fields as any local port.
    
    This can result in a NULL pointer dereference when trying access
    'struct mlxsw_sp_port' fields which are not initialized for CPU port.
    
    Commit 63b08b1f ("mlxsw: spectrum: Protect driver from buggy firmware")
    already handled such issue by bailing early when processing a PUDE event
    reported for the CPU port.
    
    Generalize the approach by moving the check to a common function and
    making use of it in all relevant places.
    Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    bcdfd615
spectrum.c 143 KB