• Jack Morgenstein's avatar
    IB/mlx4: SET_PORT called by mlx4_ib_modify_port should be wrapped · 61565013
    Jack Morgenstein authored
    mlx4_ib_modify_port is invoked in IB for resetting the Q_Key violations
    counters and for modifying the IB port capability flags.
    
    For example, when opensm is started up on the hypervisor,
    mlx4_ib_modify_port is called to set the port's IsSM flag.
    
    In multifunction mode, the SET_PORT command used in this flow should
    be wrapped (so that the PF port capability flags are also tracked,
    thus enabling the aggregate of all the VF/PF capability flags to be
    tracked properly).
    
    The procedure mlx4_SET_PORT() in main.c is also renamed to mlx4_ib_SET_PORT()
    to differentiate it from procedure mlx4_SET_PORT() in port.c.
    mlx4_ib_SET_PORT() is used exclusively by mlx4_ib_modify_port().
    
    Finally, the CM invokes ib_modify_port() to set the IsCMSupported flag
    even when running over RoCE.  Therefore, when RoCE is active,
    mlx4_ib_modify_port should return OK unconditionally (since the
    capability flags and qkey violations counter are not relevant).
    Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    61565013
main.c 66.2 KB