[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <201009131045.40018.jdelvare@suse.de>
Date: Mon, 13 Sep 2010 10:45:39 +0200
From: Jean Delvare <jdelvare@...e.de>
To: "David S. Miller" <davem@...emloft.net>
Cc: Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
Bruce Allan <bruce.w.allan@...el.com>, netdev@...r.kernel.org
Subject: [PATCH] e1000e: Simplify MSI interrupt testing
The code is quite convoluted, simplify it. This also avoids calling
e1000_request_irq() without testing the value it returned, which was
bad.
Signed-off-by: Jean Delvare <jdelvare@...e.de>
Cc: Bruce Allan <bruce.w.allan@...el.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@...el.com>
---
I understand that we need to request the IRQ again after testing, but
why doing it twice?
I sent this patch to the e1000-devel list on August 26th, 2010, but
didn't receive any answer:
http://sourceforge.net/mailarchive/forum.php?thread_name=201008261445.44334.jdelvare%40suse.de&forum_name=e1000-devel
drivers/net/e1000e/netdev.c | 29 ++++-------------------------
1 file changed, 4 insertions(+), 25 deletions(-)
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -3385,22 +3385,16 @@ static int e1000_test_msi_interrupt(stru
if (adapter->flags & FLAG_MSI_TEST_FAILED) {
adapter->int_mode = E1000E_INT_MODE_LEGACY;
- err = -EIO;
- e_info("MSI interrupt test failed!\n");
- }
+ e_info("MSI interrupt test failed, using legacy interrupt.\n");
+ } else
+ e_dbg("MSI interrupt test succeeded!\n");
free_irq(adapter->pdev->irq, netdev);
pci_disable_msi(adapter->pdev);
- if (err == -EIO)
- goto msi_test_failed;
-
- /* okay so the test worked, restore settings */
- e_dbg("MSI interrupt test succeeded!\n");
msi_test_failed:
e1000e_set_interrupt_capability(adapter);
- e1000_request_irq(adapter);
- return err;
+ return e1000_request_irq(adapter);
}
/**
@@ -3432,21 +3426,6 @@ static int e1000_test_msi(struct e1000_a
pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd);
}
- /* success ! */
- if (!err)
- return 0;
-
- /* EIO means MSI test failed */
- if (err != -EIO)
- return err;
-
- /* back to INTx mode */
- e_warn("MSI interrupt test failed, using legacy interrupt.\n");
-
- e1000_free_irq(adapter);
-
- err = e1000_request_irq(adapter);
-
return err;
}
--
Jean Delvare
Suse L3
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists