From: Jeff Garzik Date: Wed, 5 Jul 2006 18:32:39 +0000 (-0400) Subject: Merge branch 'upstream' of git://lost.foo-projects.org/~ahkok/git/netdev-2.6 into... X-Git-Tag: v2.6.18-rc2~255^2~1 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0bc8721b8d0380ec69fa97578c91201201b05a9;p=linux-2.6 Merge branch 'upstream' of git://lost.foo-projects.org/~ahkok/git/netdev-2.6 into upstream Conflicts: drivers/net/e1000/e1000_main.c --- c0bc8721b8d0380ec69fa97578c91201201b05a9 diff --cc drivers/net/e1000/e1000_main.c index f77624f5f1,f9a02c1ab5..f06b281c8f --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@@ -261,6 -267,44 +267,44 @@@ e1000_exit_module(void module_exit(e1000_exit_module); + static int e1000_request_irq(struct e1000_adapter *adapter) + { + struct net_device *netdev = adapter->netdev; + int flags, err = 0; + - flags = SA_SHIRQ | SA_SAMPLE_RANDOM; ++ flags = IRQF_SHARED; + #ifdef CONFIG_PCI_MSI + if (adapter->hw.mac_type > e1000_82547_rev_2) { + adapter->have_msi = TRUE; + if ((err = pci_enable_msi(adapter->pdev))) { + DPRINTK(PROBE, ERR, + "Unable to allocate MSI interrupt Error: %d\n", err); + adapter->have_msi = FALSE; + } + } + if (adapter->have_msi) + flags &= ~SA_SHIRQ; + #endif + if ((err = request_irq(adapter->pdev->irq, &e1000_intr, flags, + netdev->name, netdev))) + DPRINTK(PROBE, ERR, + "Unable to allocate interrupt Error: %d\n", err); + + return err; + } + + static void e1000_free_irq(struct e1000_adapter *adapter) + { + struct net_device *netdev = adapter->netdev; + + free_irq(adapter->pdev->irq, netdev); + + #ifdef CONFIG_PCI_MSI + if (adapter->have_msi) + pci_disable_msi(adapter->pdev); + #endif + } + /** * e1000_irq_disable - Mask off interrupt generation on the NIC * @adapter: board private structure