aacraid: do not activate events on non-SRC adapters
Only SRC-based adapters support the AifReqEvent function, so there is no point in trying to activate it on older, non-SRC based adapters. Doing so lead to crashes on older adapters. Signed-off-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.com> Reviewed-by: Raghava Aditya Renukunta <RaghavaAaditya.Renukunta@microsemi.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
7ebd67e0de
commit
787ab6e970
|
@ -620,6 +620,11 @@ struct aac_driver_ident
|
||||||
*/
|
*/
|
||||||
#define AAC_QUIRK_SCSI_32 0x0020
|
#define AAC_QUIRK_SCSI_32 0x0020
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SRC based adapters support the AifReqEvent functions
|
||||||
|
*/
|
||||||
|
#define AAC_QUIRK_SRC 0x0040
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The adapter interface specs all queues to be located in the same
|
* The adapter interface specs all queues to be located in the same
|
||||||
* physically contiguous block. The host structure that defines the
|
* physically contiguous block. The host structure that defines the
|
||||||
|
|
|
@ -236,10 +236,10 @@ static struct aac_driver_ident aac_drivers[] = {
|
||||||
{ aac_rx_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec Catch All */
|
{ aac_rx_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec Catch All */
|
||||||
{ aac_rkt_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec Rocket Catch All */
|
{ aac_rkt_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec Rocket Catch All */
|
||||||
{ aac_nark_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec NEMER/ARK Catch All */
|
{ aac_nark_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec NEMER/ARK Catch All */
|
||||||
{ aac_src_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec PMC Series 6 (Tupelo) */
|
{ aac_src_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_SRC }, /* Adaptec PMC Series 6 (Tupelo) */
|
||||||
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec PMC Series 7 (Denali) */
|
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_SRC }, /* Adaptec PMC Series 7 (Denali) */
|
||||||
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec PMC Series 8 */
|
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_SRC }, /* Adaptec PMC Series 8 */
|
||||||
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2 } /* Adaptec PMC Series 9 */
|
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_SRC } /* Adaptec PMC Series 9 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1299,7 +1299,8 @@ static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||||
else
|
else
|
||||||
shost->this_id = shost->max_id;
|
shost->this_id = shost->max_id;
|
||||||
|
|
||||||
aac_intr_normal(aac, 0, 2, 0, NULL);
|
if (aac_drivers[index].quirks & AAC_QUIRK_SRC)
|
||||||
|
aac_intr_normal(aac, 0, 2, 0, NULL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dmb - we may need to move the setting of these parms somewhere else once
|
* dmb - we may need to move the setting of these parms somewhere else once
|
||||||
|
|
Loading…
Reference in New Issue