/* Attempts to configure interrupts using the best available capabilities of the hardware and kernel.  */
static int ixgbe_request_irq(struct ixgbe_adapter *adapter)
/* Attempts to configure interrupts using the best available capabilities of the hardware and kernel.  */
static int ixgbe_request_irq(struct ixgbe_adapter *adapter)
{
	struct net_device *netdev = adapter->netdev;
	int err;
	if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
		err = ixgbe_request_msix_irqs(adapter);
	} else if (adapter->flags & IXGBE_FLAG_MSI_ENABLED) {
		err = request_irq(adapter->pdev->irq, ixgbe_intr, 0,
		                  netdev->name, netdev);
	} else {
		err = request_irq(adapter->pdev->irq, ixgbe_intr, IRQF_SHARED,
		                  netdev->name, netdev);
	}
	if (err)
		DPRINTK(PROBE, ERR, "request_irq failed, Error %d\n", err);
	return err;
}