aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_attr.c
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@gmail.com>2010-01-17 14:19:31 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-01-18 17:51:59 -0500
commit8605c46c171f02859fb3a32655fa226ce446c6ec (patch)
treea5f21f066424350cc0a2794df33a40f15e8af7c4 /drivers/scsi/lpfc/lpfc_attr.c
parente8a392444d338d3ce77d157bcbe4975828536efa (diff)
[SCSI] lpfc: restore MSI-X/MSI support
A Gentoo bug report [1] showed that as of 2.6.31 lpfc only uses INTx interrupts. This patch restores lpfc's ability to support MSI-X/MSI interrupts that the "Addition of SLI4 Interface - Base Support" patch [2] broke. It reestablishes MSI-X as the default interrupt method and in case MSI-X is not supported lpfc_sli{4,}_enable_intr fallbacks to MSI and then to INTx. [1]: http://bugs.gentoo.org/show_bug.cgi?id=296319 [2]: commit da0436e915a5c17ee79e72c1bf978a4ebb1cbf4d [James Smart: Background: Nothing Broke. This was intended. We had originally enabled MSI-X by default, but in qualification within the last 12 months, we encountered a major catch-22: There were at least 4 platforms, from 2 major OEMs, that : - Say they support MSI-X - platform routines work and act as if they do. - We enable it, generate a test interrupt to check they really do deliver it, and it works. - But shortly after attachment, the system hangs or loses interrupts, resulting in a bad system behavior. Given the distro's picking up the 2.6.32 kernel, we had to stick with a default of MSI-X off, with user-enabled MSI-X as these platforms couldn't get fixed. However, we're also now encountering platforms that require MSI-X and never INTx, so we must change. It's desired also for also for performance reasons. So - now (2.6.33) is the right time to re-enable MSI-X by default. ] [jejb: fix up comment on default values] Signed-off-by: George Kadianakis <desnacked@gmail.com> Acked-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_attr.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 91542f786edf..a8908e7c368a 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -3114,12 +3114,12 @@ LPFC_ATTR_RW(poll_tmo, 10, 1, 255,
3114/* 3114/*
3115# lpfc_use_msi: Use MSI (Message Signaled Interrupts) in systems that 3115# lpfc_use_msi: Use MSI (Message Signaled Interrupts) in systems that
3116# support this feature 3116# support this feature
3117# 0 = MSI disabled (default) 3117# 0 = MSI disabled
3118# 1 = MSI enabled 3118# 1 = MSI enabled
3119# 2 = MSI-X enabled 3119# 2 = MSI-X enabled (default)
3120# Value range is [0,2]. Default value is 0. 3120# Value range is [0,2]. Default value is 2.
3121*/ 3121*/
3122LPFC_ATTR_R(use_msi, 0, 0, 2, "Use Message Signaled Interrupts (1) or " 3122LPFC_ATTR_R(use_msi, 2, 0, 2, "Use Message Signaled Interrupts (1) or "
3123 "MSI-X (2), if possible"); 3123 "MSI-X (2), if possible");
3124 3124
3125/* 3125/*