pf->num_alloc_vfs = 0;
        for (i = 0; i < tmp; i++) {
                if (test_bit(ICE_VF_STATE_INIT, pf->vf[i].vf_states)) {
-                       /* disable VF qp mappings */
+                       /* disable VF qp mappings and set VF disable state */
                        ice_dis_vf_mappings(&pf->vf[i]);
+                       set_bit(ICE_VF_STATE_DIS, pf->vf[i].vf_states);
                        ice_free_vf_res(&pf->vf[i]);
                }
        }
        if (!vf || vf->vf_id >= vf->pf->num_alloc_vfs)
                return;
 
-       /* verify if the VF is in either init or active before proceeding */
-       if (!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
-           !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states))
+       /* Bail out if VF is in disabled state, neither initialized, nor active
+        * state - otherwise proceed with notifications
+        */
+       if ((!test_bit(ICE_VF_STATE_INIT, vf->vf_states) &&
+            !test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) ||
+           test_bit(ICE_VF_STATE_DIS, vf->vf_states))
                return;
 
        pfe.event = VIRTCHNL_EVENT_RESET_IMPENDING;