scsi: smartpqi: Fix ISR accessing uninitialized data
authorMike McGowen <mike.mcgowen@microchip.com>
Wed, 14 Jul 2021 18:28:46 +0000 (13:28 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 20 Jul 2021 02:00:57 +0000 (22:00 -0400)
Correct driver's ISR accessing a data structure member that has not been
fully initialized during driver initialization.

The pqi queue groups can have uninitialized members when an interrupt
fires. This has not resulted in any driver crashes. This was found during
our own internal testing. No bugs were ever filed.

Link: https://lore.kernel.org/r/20210714182847.50360-9-don.brace@microchip.com
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com>
Reviewed-by: Scott Benesh <scott.benesh@microchip.com>
Reviewed-by: Scott Teel <scott.teel@microchip.com>
Signed-off-by: Mike McGowen <mike.mcgowen@microchip.com>
Signed-off-by: Don Brace <don.brace@microchip.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/smartpqi/smartpqi_init.c

index f0e8435..ab1c9c4 100644 (file)
@@ -7760,11 +7760,11 @@ static int pqi_ctrl_init(struct pqi_ctrl_info *ctrl_info)
 
        pqi_init_operational_queues(ctrl_info);
 
-       rc = pqi_request_irqs(ctrl_info);
+       rc = pqi_create_queues(ctrl_info);
        if (rc)
                return rc;
 
-       rc = pqi_create_queues(ctrl_info);
+       rc = pqi_request_irqs(ctrl_info);
        if (rc)
                return rc;