pm80xx: avoid a panic if MSI(X) interrupts are disabled
authorBenjamin Rood <benjaminjrood@gmail.com>
Fri, 30 Oct 2015 14:53:31 +0000 (10:53 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 3 Nov 2015 04:41:13 +0000 (23:41 -0500)
commitc913df3f3d6f7f5e5ed845e2786b0fc98a41482f
tree77853d04ac0b614607ba052bc6f037d4db16bda9
parentb650a8806e1ba0315fbeda8b45c9e53d73abbb6f
pm80xx: avoid a panic if MSI(X) interrupts are disabled

If MSI(X) interrupts are disabled via the kernel command line
(pci=nomsi), the pm8001 driver will kernel panic because it does not
detect that MSI interrupts are disabled and will soldier on and attempt to
configure MSI interrupts anyways.  This leads to a kernel panic, most
likely because a required data structure is not available down the
line.  Using the pci_msi_enabled() function in order to detect if MSI
interrupts are enabled before configuring them resolves this issue and
avoids a kernel panic when the module is loaded.  Additionally, the
irq_vector structure must be initialized when legacy interrupts are
being used otherwise legacy interrupts will simply not function and
result in another panic.

Signed-off-by: Benjamin Rood <brood@attotech.com>
Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm8001_init.c