* fallthrough conditions.
  *
  **/
-static void ixgbe_set_num_queues(struct ixgbe_adapter *adapter)
+static int ixgbe_set_num_queues(struct ixgbe_adapter *adapter)
 {
        /* Start with base case */
        adapter->num_rx_queues = 1;
        adapter->num_rx_queues_per_pool = 1;
 
        if (ixgbe_set_sriov_queues(adapter))
-               return;
+               goto done;
 
 #ifdef IXGBE_FCOE
        if (ixgbe_set_fcoe_queues(adapter))
        adapter->num_tx_queues = 1;
 
 done:
-       /* Notify the stack of the (possibly) reduced Tx Queue count. */
+       /* Notify the stack of the (possibly) reduced queue counts. */
        netif_set_real_num_tx_queues(adapter->netdev, adapter->num_tx_queues);
+       return netif_set_real_num_rx_queues(adapter->netdev,
+                                           adapter->num_rx_queues);
 }
 
 static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
        if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED)
                ixgbe_disable_sriov(adapter);
 
-       ixgbe_set_num_queues(adapter);
+       err = ixgbe_set_num_queues(adapter);
+       if (err)
+               return err;
 
        err = pci_enable_msi(adapter->pdev);
        if (!err) {
        int err;
 
        /* Number of supported queues */
-       ixgbe_set_num_queues(adapter);
+       err = ixgbe_set_num_queues(adapter);
+       if (err)
+               return err;
 
        err = ixgbe_set_interrupt_capability(adapter);
        if (err) {