• Todd Rimmer's avatar
    IB/qib: Correct ordering of reregister vs. port active events · 4ccf28a2
    Todd Rimmer authored
    When a port first goes active with SMA Set(PortInfo) and reregister
    bit set, the driver sends up the reregister event followed by a port
    active event.
    
    The problem is that in response to reregister event most apps try to
    issue a SA query of some sort, but that fails because port is not
    active.
    
    The qib driver needs to a trivial change to correct this behavior.
    
    This issue has been there for a while; however the recent serdes work
    has probably made the delay between the reregister event and the
    active event larger and hence opened the race far enough so that its
    being seen more often.
    
    The patch also changes the clientrereg local to a u8 and saves off the
    rereg bit into it.  The code following the nested subn_get_portinfo()
    now restores that bit per o14-12.2.1 with a logical OR from that copy.
    Reviewed-by: default avatarRam Vepa <ram.vepa@qlogic.com>
    Signed-off-by: default avatarMike Marciniszyn <mike.marciniszyn@qlogic.com>
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    4ccf28a2
qib_mad.c 61.4 KB