• J
    fm10k: reset max_queues on init_hw_vf failure · 0e8d5b59
    Jacob Keller 提交于
    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: NJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: NBruce Allan <bruce.w.allan@intel.com>
    Tested-by: NKrishneil Singh <Krishneil.k.singh@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    0e8d5b59
fm10k_vf.c 16.8 KB