• Greg Edwards's avatar
    igb: do not drop PF mailbox lock after read of VF message · 46b3bb9b
    Greg Edwards authored
    When the PF receives a mailbox message from the VF, it grabs the mailbox
    lock, reads the VF message from the mailbox, ACKs the message and drops
    the lock.
    
    While the PF is performing the action for the VF message, nothing
    prevents another VF message from being posted to the mailbox.  The
    current code handles this condition by just dropping any new VF messages
    without processing them.  This results in a mailbox timeout in the VM
    for posted messages waiting for an ACK, and the VF is reset by the
    igbvf_watchdog_task in the VM.
    
    Given the right sequence of VF messages and mailbox timeouts, this
    condition can go on ad infinitum.
    
    Modify the PF mailbox read method to take an 'unlock' argument that
    optionally leaves the mailbox locked by the PF after reading the VF
    message.  This ensures another VF message is not posted to the mailbox
    until after the PF has completed processing the VF message and written
    its reply.
    Signed-off-by: default avatarGreg Edwards <gedwards@ddn.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    46b3bb9b
e1000_mbx.c 12.2 KB