* Attempt to configure interrupts using the best available
  * capabilities of the hardware and kernel.
  **/
-static void igb_set_interrupt_capability(struct igb_adapter *adapter)
+static int igb_set_interrupt_capability(struct igb_adapter *adapter)
 {
        int err;
        int numvecs, i;
        if (!pci_enable_msi(adapter->pdev))
                adapter->flags |= IGB_FLAG_HAS_MSI;
 out:
-       /* Notify the stack of the (possibly) reduced Tx Queue count. */
-       adapter->netdev->real_num_tx_queues = adapter->num_tx_queues;
+       /* 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);
 }
 
 /**
        struct pci_dev *pdev = adapter->pdev;
        int err;
 
-       igb_set_interrupt_capability(adapter);
+       err = igb_set_interrupt_capability(adapter);
+       if (err)
+               return err;
 
        err = igb_alloc_q_vectors(adapter);
        if (err) {