Message ID | 20190213185115.25877-15-anirudh.venkataramanan@intel.com |
---|---|
State | Accepted |
Delegated to: | Jeff Kirsher |
Headers | show |
Series | Implementation updates for ice | expand |
> -----Original Message----- > From: Intel-wired-lan [mailto:intel-wired-lan-bounces@osuosl.org] On > Behalf Of Anirudh Venkataramanan > Sent: Wednesday, February 13, 2019 10:51 AM > To: intel-wired-lan@lists.osuosl.org > Subject: [Intel-wired-lan] [PATCH S14 14/15] ice: Put > __ICE_PREPARED_FOR_RESET check in ice_prepare_for_reset > > From: Brett Creeley <brett.creeley@intel.com> > > Currently we check if the __ICE_PREPARED_FOR_RESET bit is set prior to > calling ice_prepare_for_reset in ice_reset_subtask(), but we aren't checking > that bit in ice_do_reset() before calling ice_prepare_for_reset(). This is not > consistent and can cause issues if > ice_prepare_for_reset() is called prior to ice_do_reset(). Fix this by checking > if the __ICE_PREPARED_FOR_RESET bit is set internal to > ice_prepare_for_reset(). > > Signed-off-by: Brett Creeley <brett.creeley@intel.com> > Signed-off-by: Anirudh Venkataramanan > <anirudh.venkataramanan@intel.com> > --- > drivers/net/ethernet/intel/ice/ice_main.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index ced774dd879b..6e069e84d486 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -403,6 +403,10 @@ ice_prepare_for_reset(struct ice_pf *pf) { struct ice_hw *hw = &pf->hw; + /* already prepared for reset */ + if (test_bit(__ICE_PREPARED_FOR_RESET, pf->state)) + return; + /* Notify VFs of impending reset */ if (ice_check_sq_alive(hw, &hw->mailboxq)) ice_vc_notify_reset(pf); @@ -486,8 +490,7 @@ static void ice_reset_subtask(struct ice_pf *pf) /* return if no valid reset type requested */ if (reset_type == ICE_RESET_INVAL) return; - if (!test_bit(__ICE_PREPARED_FOR_RESET, pf->state)) - ice_prepare_for_reset(pf); + ice_prepare_for_reset(pf); /* make sure we are ready to rebuild */ if (ice_check_reset(&pf->hw)) {