• J
    IB/mlx4: Signal node desc changes to SM by using FW to generate trap 144 · d0d68b86
    Jack Morgenstein 提交于
    The Node Description cannot be changed via MADs (it is read-only).
    Until now, it was changed in the driver via sysfs, and the new Node
    Description was simply inserted by the driver into MAD responses
    (replacing the description returned by FW).
    
    System startup scripts use the sysfs interface to change the node
    description at driver startup to show the hostname, etc. However, this
    has a race condition: the SM could discover the original FW node
    description rather than the system-specific description if it queried the
    port before the startup scripts finish running.
    
    For mlx4, we fix this with a new FW command (SET_NODE) that allows
    passing the new node description to FW.  When this command is invoked,
    FW sends a trap 144 to the SM.  When it gets this trap, the SM can
    query the node to obtain the new node description -- thus eliminating
    the effects of the race.
    
    This patch simply calls SET_NODE command when a new node description
    is entered via sysfs (thus causing trap 144 to be issued by the FW).
    We ignore all failures of the SET_NODE command (including those caused
    by using a device FW that predates the SET_NODE command), since in
    that case things work just as before.
    Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: NRoland Dreier <rolandd@cisco.com>
    d0d68b86
main.c 22.7 KB