• Jacob Keller's avatar
    fm10k: reset max_queues on init_hw_vf failure · 0e8d5b59
    Jacob Keller authored
    VF drivers must detect how many queues are available. Previously, the
    driver assumed that each VF has at minimum 1 queue. This assumption is
    incorrect, since it is possible that the PF has not yet assigned the
    queues to the VF by the time the VF checks. To resolve this, we added a
    check first to ensure that the first queue is infact owned by the VF at
    init_hw_vf time. However, the code flow did not reset hw->mac.max_queues
    to 0. In some cases, such as during reinit flows, we call init_hw_vf
    without clearing the previous value of hw->mac.max_queues. Due to this,
    when init_hw_vf errors out, if its error code is not properly handled
    the VF driver may still believe it has queues which no longer belong to
    it. Fix this by clearing the hw->mac.max_queues on exit due to errors.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarBruce Allan <bruce.w.allan@intel.com>
    Tested-by: default avatarKrishneil Singh <Krishneil.k.singh@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    0e8d5b59
fm10k_vf.c 16.8 KB