adapter->state != __I40EVF_RESETTING) {
                /* cancel any current operation */
                adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN;
-               adapter->aq_pending = 0;
                /* Schedule operations to close down the HW. Don't wait
                 * here for this to complete. The watchdog is still running
                 * and it will take care of this.
                         */
                        return;
                }
-               adapter->aq_pending = 0;
                adapter->aq_required = 0;
                adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN;
                goto watchdog_done;
                adapter->flags |= I40EVF_FLAG_RESET_PENDING;
                dev_err(&adapter->pdev->dev, "Hardware reset detected\n");
                schedule_work(&adapter->reset_task);
-               adapter->aq_pending = 0;
                adapter->aq_required = 0;
                adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN;
                goto watchdog_done;
        /* Process admin queue tasks. After init, everything gets done
         * here so we don't race on the admin queue.
         */
-       if (adapter->aq_pending) {
+       if (adapter->current_op) {
                if (!i40evf_asq_done(hw)) {
                        dev_dbg(&adapter->pdev->dev, "Admin queue timeout\n");
                        i40evf_send_api_ver(adapter);
        /* Prevent the watchdog from running. */
        adapter->state = __I40EVF_REMOVE;
        adapter->aq_required = 0;
-       adapter->aq_pending = 0;
 
 #ifdef CONFIG_PM
        pci_save_state(pdev);
        /* Shut down all the garbage mashers on the detention level */
        adapter->state = __I40EVF_REMOVE;
        adapter->aq_required = 0;
-       adapter->aq_pending = 0;
        i40evf_request_reset(adapter);
        msleep(20);
        /* If the FW isn't responding, kick it once, but only once. */
 
                vqpi++;
        }
 
-       adapter->aq_pending |= I40EVF_FLAG_AQ_CONFIGURE_QUEUES;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_CONFIGURE_QUEUES;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES,
                           (u8 *)vqci, len);
        vqs.vsi_id = adapter->vsi_res->vsi_id;
        vqs.tx_queues = (1 << adapter->num_active_queues) - 1;
        vqs.rx_queues = vqs.tx_queues;
-       adapter->aq_pending |= I40EVF_FLAG_AQ_ENABLE_QUEUES;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_ENABLE_QUEUES;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ENABLE_QUEUES,
                           (u8 *)&vqs, sizeof(vqs));
        vqs.vsi_id = adapter->vsi_res->vsi_id;
        vqs.tx_queues = (1 << adapter->num_active_queues) - 1;
        vqs.rx_queues = vqs.tx_queues;
-       adapter->aq_pending |= I40EVF_FLAG_AQ_DISABLE_QUEUES;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_DISABLE_QUEUES;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DISABLE_QUEUES,
                           (u8 *)&vqs, sizeof(vqs));
        vimi->vecmap[v_idx].txq_map = 0;
        vimi->vecmap[v_idx].rxq_map = 0;
 
-       adapter->aq_pending |= I40EVF_FLAG_AQ_MAP_VECTORS;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_MAP_VECTORS;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP,
                           (u8 *)vimi, len);
                        f->add = false;
                }
        }
-       adapter->aq_pending |= I40EVF_FLAG_AQ_ADD_MAC_FILTER;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_MAC_FILTER;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS,
                           (u8 *)veal, len);
                        kfree(f);
                }
        }
-       adapter->aq_pending |= I40EVF_FLAG_AQ_DEL_MAC_FILTER;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_MAC_FILTER;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS,
                           (u8 *)veal, len);
                        f->add = false;
                }
        }
-       adapter->aq_pending |= I40EVF_FLAG_AQ_ADD_VLAN_FILTER;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_VLAN_FILTER;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ADD_VLAN, (u8 *)vvfl, len);
        kfree(vvfl);
                        kfree(f);
                }
        }
-       adapter->aq_pending |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER;
        adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_VLAN_FILTER;
        i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DEL_VLAN, (u8 *)vvfl, len);
        kfree(vvfl);
                        __func__, v_retval, v_opcode);
        }
        switch (v_opcode) {
-       case I40E_VIRTCHNL_OP_VERSION:
-               /* no action, but also not an error */
-               break;
        case I40E_VIRTCHNL_OP_GET_STATS: {
                struct i40e_eth_stats *stats =
                        (struct i40e_eth_stats *)msg;
                adapter->current_stats = *stats;
                }
                break;
-       case I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ADD_MAC_FILTER);
-               break;
-       case I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DEL_MAC_FILTER);
-               break;
-       case I40E_VIRTCHNL_OP_ADD_VLAN:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ADD_VLAN_FILTER);
-               break;
-       case I40E_VIRTCHNL_OP_DEL_VLAN:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DEL_VLAN_FILTER);
-               break;
        case I40E_VIRTCHNL_OP_ENABLE_QUEUES:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ENABLE_QUEUES);
                /* enable transmits */
                i40evf_irq_enable(adapter, true);
                netif_tx_start_all_queues(adapter->netdev);
                netif_carrier_on(adapter->netdev);
                break;
        case I40E_VIRTCHNL_OP_DISABLE_QUEUES:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DISABLE_QUEUES);
                i40evf_free_all_tx_resources(adapter);
                i40evf_free_all_rx_resources(adapter);
                break;
-       case I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_CONFIGURE_QUEUES);
-               break;
+       case I40E_VIRTCHNL_OP_VERSION:
+       case I40E_VIRTCHNL_OP_GET_VF_RESOURCES:
        case I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP:
-               adapter->aq_pending &= ~(I40EVF_FLAG_AQ_MAP_VECTORS);
+               /* Don't display an error if we get these out of sequence.
+                * If the firmware needed to get kicked, we'll get these and
+                * it's no problem.
+                */
+               if (v_opcode != adapter->current_op)
+                       return;
                break;
        default:
-               dev_info(&adapter->pdev->dev, "Received unexpected message %d from PF\n",
-                        v_opcode);
+               if (v_opcode != adapter->current_op)
+                       dev_warn(&adapter->pdev->dev, "Expected response %d from PF, received %d\n",
+                                adapter->current_op, v_opcode);
                break;
        } /* switch v_opcode */
        adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN;