ice: Gracefully handle reset failure in ice_alloc_vfs()
authorBrett Creeley <brett.creeley@intel.com>
Tue, 16 Apr 2019 17:24:32 +0000 (10:24 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 23 May 2019 17:51:54 +0000 (10:51 -0700)
commit72f9c2039859e6303550f202d6cc6b8d8af0178c
tree347792370ad4fef7110ba9dd5d3e612860dbbd38
parenta17a5ff6812c264ca7f5c98c493644447c9a5ce6
ice: Gracefully handle reset failure in ice_alloc_vfs()

Currently if ice_reset_all_vfs() fails in ice_alloc_vfs() we fail to
free some resources, reset variables, and return an error value.
Fix this by adding another unroll case to free the pf->vf array, set
the pf->num_alloc_vfs to 0, and return an error code.

Without this, if ice_reset_all_vfs() fails in ice_alloc_vfs() we will
not be able to do SRIOV without hard rebooting the system because
rmmod'ing the driver does not work.

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c