scsi: mvsas: Use sas_task_find_rq() for tagging
authorJohn Garry <john.garry@huawei.com>
Tue, 18 Oct 2022 11:16:03 +0000 (19:16 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 22 Oct 2022 03:02:52 +0000 (03:02 +0000)
commit2acf97f199f9eba8321390325519e9b6bff60108
treea499918c381f5c049220d8bba92a22010915a704
parentffc9f9bf3f14876d019f67ef17d41138802529a8
scsi: mvsas: Use sas_task_find_rq() for tagging

The request associated with a SCSI command coming from the block layer has
a unique tag, so use that when possible for getting a slot.

Unfortunately we don't support reserved commands in the SCSI midlayer yet.
As such, SMP tasks - as an example - will not have a request associated, so
in the interim continue to manage those tags for that type of sas_task
internally.

We reserve an arbitrary 4 tags for these internal tags. Indeed, we already
decrement MVS_RSVD_SLOTS by 2 for the shost can_queue when flag
MVF_FLAG_SOC is set. This change was made in commit 20b09c2992fe ("[SCSI]
mvsas: add support for 94xx; layout change; bug fixes"), but what those 2
slots are used for is not obvious.

Also make the tag management functions static, where possible.

Signed-off-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/1666091763-11023-8-git-send-email-john.garry@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mvsas/mv_defs.h
drivers/scsi/mvsas/mv_init.c
drivers/scsi/mvsas/mv_sas.c
drivers/scsi/mvsas/mv_sas.h