• George Kadianakis's avatar
    [SCSI] lpfc: restore MSI-X/MSI support · 8605c46c
    George Kadianakis authored
    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 da0436e9
    
    [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: default avatarGeorge Kadianakis <desnacked@gmail.com>
    Acked-by: default avatarJames Smart  <james.smart@emulex.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    8605c46c
lpfc_attr.c 132 KB