struct fm10k_hw *hw = &interface->hw;
        struct fm10k_mbx_info *mbx = &hw->mbx;
        u32 eicr;
-       s32 err = 0;
 
        /* unmask any set bits related to this interrupt */
        eicr = fm10k_read_reg(hw, FM10K_EICR);
 
        /* service mailboxes */
        if (fm10k_mbx_trylock(interface)) {
-               err = mbx->ops.process(hw, mbx);
+               s32 err = mbx->ops.process(hw, mbx);
+
+               if (err == FM10K_ERR_RESET_REQUESTED)
+                       set_bit(FM10K_FLAG_RESET_REQUESTED, interface->flags);
+
                /* handle VFLRE events */
                fm10k_iov_event(interface);
                fm10k_mbx_unlock(interface);
        }
 
-       if (err == FM10K_ERR_RESET_REQUESTED)
-               set_bit(FM10K_FLAG_RESET_REQUESTED, interface->flags);
-
        /* if switch toggled state we should reset GLORTs */
        if (eicr & FM10K_EICR_SWITCHNOTREADY) {
                /* force link down for at least 4 seconds */