mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
scsi: mpi3mr: Fix missing mrioc->evtack_cmds initialization
Commitc1af985d27("scsi: mpi3mr: Add Event acknowledgment logic") introduced an array mrioc->evtack_cmds but initialization of the array elements was missed. They are just zero cleared. The function mpi3mr_complete_evt_ack() refers host_tag field of the elements. Due to the zero value of the host_tag field, the function calls clear_bit() for mrico->evtack_cmds_bitmap with wrong bit index. This results in memory access to invalid address and "BUG: KASAN: use-after-free". This BUG was observed at eHBA-9600 firmware update to version 8.3.1.0. To fix it, add the missing initialization of mrioc->evtack_cmds. Link: https://lore.kernel.org/r/20230214005019.1897251-5-shinichiro.kawasaki@wdc.com Cc: stable@vger.kernel.org Fixes:c1af985d27("scsi: mpi3mr: Add Event acknowledgment logic") Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Acked-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
339e61565f
commit
e39ea831eb
|
|
@ -4952,6 +4952,10 @@ mpi3mr_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
mpi3mr_init_drv_cmd(&mrioc->dev_rmhs_cmds[i],
|
||||
MPI3MR_HOSTTAG_DEVRMCMD_MIN + i);
|
||||
|
||||
for (i = 0; i < MPI3MR_NUM_EVTACKCMD; i++)
|
||||
mpi3mr_init_drv_cmd(&mrioc->evtack_cmds[i],
|
||||
MPI3MR_HOSTTAG_EVTACKCMD_MIN + i);
|
||||
|
||||
if (pdev->revision)
|
||||
mrioc->enable_segqueue = true;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user