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

Configure Feed

Select the types of activity you want to include in your feed.

scsi: megaraid_sas: Protect more code with instance->reset_mutex

megasas_get_device_list() and megasas_get_snapdump_properties() may unlock
instance->reset_mutex indirectly. Hence, hold reset_mutex while calling
these functions.

Cc: Kashyap Desai <kashyap.desai@broadcom.com>
Cc: Sumit Saxena <sumit.saxena@broadcom.com>
Cc: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Cc: Chandrakanth patil <chandrakanth.patil@broadcom.com>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: megaraidlinux.pdl@broadcom.com
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260223220102.2158611-31-bart.vanassche@linux.dev
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Bart Van Assche and committed by
Martin K. Petersen
e521b776 fc803a39

+9 -6
+9 -6
drivers/scsi/megaraid/megaraid_sas_base.c
··· 6365 6365 6366 6366 megasas_setup_jbod_map(instance); 6367 6367 6368 - if (megasas_get_device_list(instance) != SUCCESS) { 6369 - dev_err(&instance->pdev->dev, 6370 - "%s: megasas_get_device_list failed\n", 6371 - __func__); 6372 - goto fail_get_ld_pd_list; 6368 + scoped_guard(mutex, &instance->reset_mutex) { 6369 + if (megasas_get_device_list(instance) != SUCCESS) { 6370 + dev_err(&instance->pdev->dev, 6371 + "%s: megasas_get_device_list failed\n", 6372 + __func__); 6373 + goto fail_get_ld_pd_list; 6374 + } 6373 6375 } 6374 6376 6375 6377 /* stream detection initialization */ ··· 6470 6468 } 6471 6469 6472 6470 if (instance->snapdump_wait_time) { 6473 - megasas_get_snapdump_properties(instance); 6471 + scoped_guard(mutex, &instance->reset_mutex) 6472 + megasas_get_snapdump_properties(instance); 6474 6473 dev_info(&instance->pdev->dev, "Snap dump wait time\t: %d\n", 6475 6474 instance->snapdump_wait_time); 6476 6475 }