• Juliet Kim's avatar
    ibmvnic: Skip fatal error reset after passive init · f9c6cea0
    Juliet Kim authored
    During MTU change, the following events may happen.
    Client-driven CRQ initialization fails due to partner’s CRQ closed,
    causing client to enqueue a reset task for FATAL_ERROR. Then passive
    (server-driven) CRQ initialization succeeds, causing client to
    release CRQ and enqueue a reset task for failover. If the passive
    CRQ initialization occurs before the FATAL reset task is processed,
    the FATAL error reset task would try to access a CRQ message queue
    that was freed, causing an oops. The problem may be most likely to
    occur during DLPAR add vNIC with a non-default MTU, because the DLPAR
    process will automatically issue a change MTU request.
    
    Fix this by not processing fatal error reset if CRQ is passively
    initialized after client-driven CRQ initialization fails.
    Signed-off-by: default avatarJuliet Kim <julietk@linux.vnet.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f9c6cea0
ibmvnic.c 142 KB