mbox series

[v2,00/18] scsi: libsas and users: Factor out LLDD TMF code

Message ID 1645112566-115804-1-git-send-email-john.garry@huawei.com
Headers show
Series scsi: libsas and users: Factor out LLDD TMF code | expand

Message

John Garry Feb. 17, 2022, 3:42 p.m. UTC
The LLDD TMF code is almost identical between hisi_sas, pm8001, and mvsas
drivers.

This series factors out that code into libsas, thus reducing much
duplication and giving a net reduction of ~350 LoC.

There are some subtle differences between the core TMF handler and each
of the LLDDs old implementation, so any review and testing is appreciated.

Some other minor patches are thrown in:
- Delete unused macro in hisi_sas driver
- Delete unused libsas callback
- Delete unused SAS_SG_ERR
- Add enum for response frame datapres field
- Handle unrecognised errors in sas_scsi_find_task()

I have another follow-up series to factor out the internal abort code,
which is common to hisi_sas and pm8001 drivers.

Based on mkp-scsi 5.18 staging queue at commit ac2beb4e3bd7

Differences to v1:
- Add Reviewed-by and Tested-by tags (Thanks!)
- Add SAS_SG_ERR patch
- Add sas_scsi_find_task() patch
- Use switch statement in sas_ssp_task_response()
- Add DATAPRES enum in sas.h
- Reword "Add struct sas_tmf_task" patch
- Don't print TMF code in sas_execute_tmf()
- Rebase

John Garry (18):
  scsi: libsas: Handle non-TMF codes in sas_scsi_find_task()
  scsi: libsas: Use enum for response frame DATAPRES field
  scsi: libsas: Delete lldd_clear_aca callback
  scsi: libsas: Delete SAS_SG_ERR
  scsi: hisi_sas: Delete unused I_T_NEXUS_RESET_PHYUP_TIMEOUT
  scsi: libsas: Move SMP task handlers to core
  scsi: libsas: Add struct sas_tmf_task
  scsi: libsas: Add sas_task.tmf
  scsi: libsas: Add sas_execute_tmf()
  scsi: libsas: Add sas_execute_ssp_tmf()
  scsi: libsas: Add TMF handler exec complete callback
  scsi: libsas: Add TMF handler aborted callback
  scsi: libsas: Add sas_abort_task_set()
  scsi: libsas: Add sas_clear_task_set()
  scsi: libsas: Add sas_lu_reset()
  scsi: libsas: Add sas_query_task()
  scsi: libsas: Add sas_abort_task()
  scsi: libsas: Add sas_execute_ata_cmd()

 Documentation/scsi/libsas.rst          |   2 -
 drivers/scsi/aic94xx/aic94xx.h         |   1 -
 drivers/scsi/aic94xx/aic94xx_init.c    |   1 -
 drivers/scsi/aic94xx/aic94xx_tmf.c     |  11 +-
 drivers/scsi/hisi_sas/hisi_sas.h       |   9 +-
 drivers/scsi/hisi_sas/hisi_sas_main.c  | 227 ++++--------------------
 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c |   2 +-
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |   9 +-
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |   2 +-
 drivers/scsi/isci/init.c               |   1 -
 drivers/scsi/isci/request.c            |   7 +-
 drivers/scsi/isci/task.c               |  18 --
 drivers/scsi/isci/task.h               |   4 -
 drivers/scsi/libsas/sas_ata.c          |  10 +-
 drivers/scsi/libsas/sas_expander.c     |  24 +--
 drivers/scsi/libsas/sas_internal.h     |   6 +
 drivers/scsi/libsas/sas_scsi_host.c    | 229 ++++++++++++++++++++++++-
 drivers/scsi/libsas/sas_task.c         |  14 +-
 drivers/scsi/mvsas/mv_defs.h           |   5 -
 drivers/scsi/mvsas/mv_init.c           |   5 +-
 drivers/scsi/mvsas/mv_sas.c            | 179 +------------------
 drivers/scsi/mvsas/mv_sas.h            |   3 -
 drivers/scsi/pm8001/pm8001_hwi.c       |   4 +-
 drivers/scsi/pm8001/pm8001_init.c      |   5 +-
 drivers/scsi/pm8001/pm8001_sas.c       | 194 ++++-----------------
 drivers/scsi/pm8001/pm8001_sas.h       |  14 +-
 include/scsi/libsas.h                  |  24 ++-
 include/scsi/sas.h                     |   7 +
 28 files changed, 377 insertions(+), 640 deletions(-)

Comments

Martin K. Petersen Feb. 19, 2022, 9:53 p.m. UTC | #1
Damien,

> This series and my pm8001 series have a conflict. When applying the
> pm8001 patches on top of these libsas changes, patch 28 has a fairly
> easy to resolve conflict. Let me know if you want me to send a v6
> rebased on top of this.

"fairly easy to resolve", huh? Sure, if you manually rework the entire
patch.

Please send me an updated version of #28. The rest of the series is
fine...

Thanks!
Damien Le Moal Feb. 19, 2022, 11:05 p.m. UTC | #2
On 2/20/22 06:53, Martin K. Petersen wrote:
> 
> Damien,
> 
>> This series and my pm8001 series have a conflict. When applying the
>> pm8001 patches on top of these libsas changes, patch 28 has a fairly
>> easy to resolve conflict. Let me know if you want me to send a v6
>> rebased on top of this.
> 
> "fairly easy to resolve", huh? Sure, if you manually rework the entire
> patch.

Sorry about that. It is easy to resolve once you have been staring at
the code for days :) Sending v6 for patch 28.

> 
> Please send me an updated version of #28. The rest of the series is
> fine...
> 
> Thanks!
>
Damien Le Moal Feb. 20, 2022, 12:38 a.m. UTC | #3
On 2/20/22 06:55, Martin K. Petersen wrote:
> 
> John,
> 
>> The LLDD TMF code is almost identical between hisi_sas, pm8001, and
>> mvsas drivers.
>>
>> This series factors out that code into libsas, thus reducing much
>> duplication and giving a net reduction of ~350 LoC.
> 
> Applied to 5.18/scsi-staging, thanks!

Did you push this ? I do not see John series in the branch...
Martin K. Petersen Feb. 20, 2022, 1:31 a.m. UTC | #4
Damien,

>> Applied to 5.18/scsi-staging, thanks!
>
> Did you push this ? I do not see John series in the branch...

It's there now.
Damien Le Moal Feb. 20, 2022, 1:37 a.m. UTC | #5
On 2/20/22 10:31, Martin K. Petersen wrote:
> 
> Damien,
> 
>>> Applied to 5.18/scsi-staging, thanks!
>>
>> Did you push this ? I do not see John series in the branch...
> 
> It's there now.
> 

Got it. Thanks !
John Garry Feb. 21, 2022, 8:36 a.m. UTC | #6
On 19/02/2022 21:53, Martin K. Petersen wrote:
> Damien,
> 
>> This series and my pm8001 series have a conflict. When applying the
>> pm8001 patches on top of these libsas changes, patch 28 has a fairly
>> easy to resolve conflict. Let me know if you want me to send a v6
>> rebased on top of this.
> "fairly easy to resolve", huh? Sure, if you manually rework the entire
> patch.
> 
> Please send me an updated version of #28. The rest of the series is
> fine...

Thanks Martin and Damien. I'll mention potential conflicts in my cover 
letters in future to help co-ordinate things better.

John