Re: [PATCH v3 00/31] libsas and pm8001 fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2022/02/14 11:17, Damien Le Moal wrote:
> This first part of this series (patches 1 to 24) fixes handling of NCQ
> NON DATA commands in libsas and many bugs in the pm8001 driver.
> 
> The fixes for the pm8001 driver include:
> * Suppression of all sparse warnings, fixing along the way many le32
>   handling bugs for big-endian architectures
> * Fix handling of NCQ NON DATA commands
> * Fix of tag values handling (0 *is* a valid tag value)
> * Fix many tag iand memory leaks in error path
> * Fix NCQ error recovery (abort all task execution) that was causing a
>   crash
> 
> The second part of the series (patches 25 to 31) iadd a small cleanup of
> libsas code and many simplifications of the pm8001 driver code.
> 
> With these fixes, libzbc test suite passes all test case. This test
> suite was used with an SMR drive for testing because it generates many
> NCQ NON DATA commands (for zone management commands) and also generates
> many NCQ command errors to check ASC/ASCQ returned by the device. With
> the test suite, the error recovery path was extensively exercised. The
> same tests were also executed with a SAS SMR drives to exercise the
> error path.
> 
> The patches are based on the 5.18/scsi-staging tree.

Martin,

Note that there is a conflict between 5.18/scsi-staging and 5.17-rc3/4 in the
pm8001 driver. And I need to touch rc3/rc4 code too. Could you rebase scsi-staging ?

Best regards.

> 
> Changes from v2:
> * Reorganized the series: fixes first, cleanups second.
> * Added more bug/leaks fix patches
> * Addressed Gary's comment for the ccb alloc helper (patch 28)
> * Rebased (and tested) all patches on 5.18/scsi-staging
> 
> Changes from v1:
> * Added reviewed-by tags
> * Addressed Christoph's comments on patch 4 and 8
> * Added patches 21 and 22 to fix 2 additional problems found while
>   preparing this v2 series
> * Added patch 23 and 24 to cleanup the code further.
> 
> Damien Le Moal (31):
>   scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
>   scsi: pm8001: Fix __iomem pointer use in pm8001_phy_control()
>   scsi: pm8001: Fix pm8001_update_flash() local variable type
>   scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
>   scsi: pm8001: Fix pm80xx_pci_mem_copy() interface
>   scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
>   scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
>   scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config()
>   scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update()
>   scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req()
>   scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req()
>   scsi: pm8001: Fix use of struct set_phy_profile_req fields
>   scsi: pm8001: Remove local variable in pm8001_pci_resume()
>   scsi: pm8001: Fix NCQ NON DATA command task initialization
>   scsi: pm8001: Fix NCQ NON DATA command completion handling
>   scsi: pm8001: Fix abort all task initialization
>   scsi: pm8001: Fix pm8001_tag_alloc() failures handling
>   scsi: pm8001: Fix pm80xx_chip_phy_ctl_req()
>   scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
>   scsi: pm8001: Fix tag values handling
>   scsi: pm8001: Fix task leak in pm8001_send_abort_all()
>   scsi: pm8001: Fix tag leaks on error
>   scsi: pm8001: fix memory leak in pm8001_chip_fw_flash_update_req()
>   scsi: pm8001: Fix process_one_iomb() kdoc comment
>   scsi: libsas: Simplify sas_ata_qc_issue() detection of NCQ commands
>   scsi: pm8001: Simplify pm8001_get_ncq_tag()
>   scsi: pm8001: Cleanup pm8001_queue_command()
>   scsi: pm8001: Introduce ccb alloc/free helpers
>   scsi: pm8001: Simplify pm8001_mpi_build_cmd() interface
>   scsi: pm8001: Simplify pm8001_task_exec()
>   scsi: pm8001: Simplify pm8001_ccb_task_free()
> 
>  drivers/scsi/libsas/sas_ata.c     |  11 +-
>  drivers/scsi/pm8001/pm8001_ctl.c  |   5 +-
>  drivers/scsi/pm8001/pm8001_hwi.c  | 450 ++++++++++++-----------------
>  drivers/scsi/pm8001/pm8001_init.c |  11 +-
>  drivers/scsi/pm8001/pm8001_sas.c  | 297 +++++++++----------
>  drivers/scsi/pm8001/pm8001_sas.h  |  64 ++++-
>  drivers/scsi/pm8001/pm80xx_hwi.c  | 458 ++++++++++++++----------------
>  drivers/scsi/pm8001/pm80xx_hwi.h  |   2 +-
>  8 files changed, 605 insertions(+), 693 deletions(-)
> 


-- 
Damien Le Moal
Western Digital Research



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux