Message ID | 20221215035220.77331-1-yanaijie@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | scsi: hisi_sas: fix tags freeing for the reserverd tags | expand |
On 2022/12/15 11:52, Jason Yan wrote: > John put the reserverd tags in lower region of tagset in commit f7d190a94e35 > ("scsi: hisi_sas: Put reserved tags in lower region of tagset"). However > he only change the allocate function and forgot to change the tags free > function. This made my board failed to boot. > > [ 33.467345] hisi_sas_v3_hw 0000:b4:02.0: task exec: failed[-132]! > [ 33.473413] sas: Executing internal abort failed 5000000000000603 (-132) > [ 33.480088] hisi_sas_v3_hw 0000:b4:02.0: I_T nexus reset: internal abort (-132) > [ 33.657336] hisi_sas_v3_hw 0000:b4:02.0: task exec: failed[-132]! > [ 33.663403] ata7.00: failed to IDENTIFY (I/O error, err_mask=0x40) > [ 35.787344] hisi_sas_v3_hw 0000:b4:04.0: task exec: failed[-132]! > [ 35.793411] sas: Executing internal abort failed 5000000000000703 (-132) > [ 35.800084] hisi_sas_v3_hw 0000:b4:04.0: I_T nexus reset: internal abort (-132) > [ 35.977335] hisi_sas_v3_hw 0000:b4:04.0: task exec: failed[-132]! > [ 35.983403] ata10.00: failed to IDENTIFY (I/O error, err_mask=0x40) > [ 35.989643] ata10.00: revalidation failed (errno=-5) > > Fixes: f7d190a94e35 ("scsi: hisi_sas: Put reserved tags in lower region of tagset") > Cc: John Garry <john.g.garry@oracle.com> > Cc: Xiang Chen <chenxiang66@hisilicon.com> > Signed-off-by: Jason Yan <yanaijie@huawei.com> > --- > drivers/scsi/hisi_sas/hisi_sas_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c > index 41ba22f6c7f0..e2a99e55dd1b 100644 > --- a/drivers/scsi/hisi_sas/hisi_sas_main.c > +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c > @@ -162,7 +162,7 @@ static void hisi_sas_slot_index_clear(struct hisi_hba *hisi_hba, int slot_idx) > static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx) > { > if (hisi_hba->hw->slot_index_alloc || > - slot_idx >= HISI_SAS_UNRESERVED_IPTT) { > + slot_idx < HISI_SAS_UNRESERVED_IPTT) { Sorry this should be HISI_SAS_RESERVED_IPTT. I boot succeed with this becuase HISI_SAS_UNRESERVED_IPTT is bigger than HISI_SAS_RESERVED_IPTT and the tags can be freed. I will send v2. Thanks, Jason > spin_lock(&hisi_hba->lock); > hisi_sas_slot_index_clear(hisi_hba, slot_idx); > spin_unlock(&hisi_hba->lock); >
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 41ba22f6c7f0..e2a99e55dd1b 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -162,7 +162,7 @@ static void hisi_sas_slot_index_clear(struct hisi_hba *hisi_hba, int slot_idx) static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx) { if (hisi_hba->hw->slot_index_alloc || - slot_idx >= HISI_SAS_UNRESERVED_IPTT) { + slot_idx < HISI_SAS_UNRESERVED_IPTT) { spin_lock(&hisi_hba->lock); hisi_sas_slot_index_clear(hisi_hba, slot_idx); spin_unlock(&hisi_hba->lock);
John put the reserverd tags in lower region of tagset in commit f7d190a94e35 ("scsi: hisi_sas: Put reserved tags in lower region of tagset"). However he only change the allocate function and forgot to change the tags free function. This made my board failed to boot. [ 33.467345] hisi_sas_v3_hw 0000:b4:02.0: task exec: failed[-132]! [ 33.473413] sas: Executing internal abort failed 5000000000000603 (-132) [ 33.480088] hisi_sas_v3_hw 0000:b4:02.0: I_T nexus reset: internal abort (-132) [ 33.657336] hisi_sas_v3_hw 0000:b4:02.0: task exec: failed[-132]! [ 33.663403] ata7.00: failed to IDENTIFY (I/O error, err_mask=0x40) [ 35.787344] hisi_sas_v3_hw 0000:b4:04.0: task exec: failed[-132]! [ 35.793411] sas: Executing internal abort failed 5000000000000703 (-132) [ 35.800084] hisi_sas_v3_hw 0000:b4:04.0: I_T nexus reset: internal abort (-132) [ 35.977335] hisi_sas_v3_hw 0000:b4:04.0: task exec: failed[-132]! [ 35.983403] ata10.00: failed to IDENTIFY (I/O error, err_mask=0x40) [ 35.989643] ata10.00: revalidation failed (errno=-5) Fixes: f7d190a94e35 ("scsi: hisi_sas: Put reserved tags in lower region of tagset") Cc: John Garry <john.g.garry@oracle.com> Cc: Xiang Chen <chenxiang66@hisilicon.com> Signed-off-by: Jason Yan <yanaijie@huawei.com> --- drivers/scsi/hisi_sas/hisi_sas_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)