Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: aacraid: Fix sync fibs time out on controller reset

After controller shutdown, all sync fibs time out due to not knowing
about the switch to INT-x mode

Fixed by replacing aac_src_access_devreg() to aac_set_intx_mode() call.

Cc: stable@vger.kernel.org
Fixes: 495c021767bd78c998 (aacraid: MSI-x support)
Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Reviewed-by: David Carroll <David.Carroll@microsemi.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Raghava Aditya Renukunta and committed by
Martin K. Petersen
a7e2c642 30202e06

+3 -2
+1
drivers/scsi/aacraid/aacraid.h
··· 2639 2639 #define fib_data(fibctx) ((void *)(fibctx)->hw_fib_va->data) 2640 2640 struct aac_dev *aac_init_adapter(struct aac_dev *dev); 2641 2641 void aac_src_access_devreg(struct aac_dev *dev, int mode); 2642 + void aac_set_intx_mode(struct aac_dev *dev); 2642 2643 int aac_get_config_status(struct aac_dev *dev, int commit_flag); 2643 2644 int aac_get_containers(struct aac_dev *dev); 2644 2645 int aac_scsi_cmd(struct scsi_cmnd *cmd);
+1 -1
drivers/scsi/aacraid/comminit.c
··· 330 330 dev->pdev->device == PMC_DEVICE_S8 || 331 331 dev->pdev->device == PMC_DEVICE_S9) && 332 332 dev->msi_enabled) 333 - aac_src_access_devreg(dev, AAC_ENABLE_INTX); 333 + aac_set_intx_mode(dev); 334 334 return status; 335 335 } 336 336
+1 -1
drivers/scsi/aacraid/src.c
··· 657 657 return 0; 658 658 } 659 659 660 - static void aac_set_intx_mode(struct aac_dev *dev) 660 + void aac_set_intx_mode(struct aac_dev *dev) 661 661 { 662 662 if (dev->msi_enabled) { 663 663 aac_src_access_devreg(dev, AAC_ENABLE_INTX);