u32 alloc_rx_page_failed;
        u32 alloc_rx_buff_failed;
 
-       /* Some features need tri-state capability,
-        * thus the additional *_CAPABLE flags.
-        */
-       u32 flags;
-#define IXGBEVF_FLAG_RESET_REQUESTED           (u32)(1)
-#define IXGBEVF_FLAG_QUEUE_RESET_REQUESTED     (u32)(1 << 2)
-
        struct msix_entry *msix_entries;
 
        /* OS defined structs */
        __IXGBEVF_REMOVING,
        __IXGBEVF_SERVICE_SCHED,
        __IXGBEVF_SERVICE_INITED,
+       __IXGBEVF_RESET_REQUESTED,
+       __IXGBEVF_QUEUE_RESET_REQUESTED,
 };
 
 enum ixgbevf_boards {
 
 {
        /* Do the reset outside of interrupt context */
        if (!test_bit(__IXGBEVF_DOWN, &adapter->state)) {
-               adapter->flags |= IXGBEVF_FLAG_RESET_REQUESTED;
+               set_bit(__IXGBEVF_RESET_REQUESTED, &adapter->state);
                ixgbevf_service_event_schedule(adapter);
        }
 }
                hw->mbx.timeout = 0;
 
                /* wait for watchdog to come around and bail us out */
-               adapter->flags |= IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
+               set_bit(__IXGBEVF_QUEUE_RESET_REQUESTED, &adapter->state);
        }
 
        return 0;
 
 static void ixgbevf_reset_subtask(struct ixgbevf_adapter *adapter)
 {
-       if (!(adapter->flags & IXGBEVF_FLAG_RESET_REQUESTED))
+       if (!test_and_clear_bit(__IXGBEVF_RESET_REQUESTED, &adapter->state))
                return;
 
-       adapter->flags &= ~IXGBEVF_FLAG_RESET_REQUESTED;
-
        /* If we're already down or resetting, just bail */
        if (test_bit(__IXGBEVF_DOWN, &adapter->state) ||
            test_bit(__IXGBEVF_RESETTING, &adapter->state))
 
        /* if check for link returns error we will need to reset */
        if (err && time_after(jiffies, adapter->last_reset + (10 * HZ))) {
-               adapter->flags |= IXGBEVF_FLAG_RESET_REQUESTED;
+               set_bit(__IXGBEVF_RESET_REQUESTED, &adapter->state);
                link_up = false;
        }
 
 {
        struct net_device *dev = adapter->netdev;
 
-       if (!(adapter->flags & IXGBEVF_FLAG_QUEUE_RESET_REQUESTED))
+       if (!test_and_clear_bit(__IXGBEVF_QUEUE_RESET_REQUESTED,
+                               &adapter->state))
                return;
 
-       adapter->flags &= ~IXGBEVF_FLAG_QUEUE_RESET_REQUESTED;
-
        /* if interface is down do nothing */
        if (test_bit(__IXGBEVF_DOWN, &adapter->state) ||
            test_bit(__IXGBEVF_RESETTING, &adapter->state))