mirror_ubuntu-kernels/drivers/scsi/pm8001
Damien Le Moal aa028141ab scsi: pm8001: Fix NCQ NON DATA command task initialization
In the pm8001_chip_sata_req() and pm80xx_chip_sata_req() functions, all
tasks with a DMA direction of DMA_NONE (no data transfer) are initialized
using the ATAP value 0x04. However, NCQ NON DATA commands, while being
DMA_NONE commands are NCQ commands and need to be initialized using the
value 0x07 for ATAP, similarly to other NCQ commands.

Make sure that NCQ NON DATA command tasks are initialized similarly to
other NCQ commands by also testing the task "use_ncq" field in addition to
the DMA direction. While at it, reorganize the code into a chain of if -
else if - else to avoid useless affectations and debug messages.

Link: https://lore.kernel.org/r/20220220031810.738362-15-damien.lemoal@opensource.wdc.com
Fixes: dbf9bfe615 ("[SCSI] pm8001: add SAS/SATA HBA driver")
Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-02-22 21:31:19 -05:00
..
Makefile scsi: pm80xx: Add tracepoints 2021-11-18 22:26:58 -05:00
pm80xx_hwi.c scsi: pm8001: Fix NCQ NON DATA command task initialization 2022-02-22 21:31:19 -05:00
pm80xx_hwi.h scsi: pm8001: Fix use of struct set_phy_profile_req fields 2022-02-22 21:31:18 -05:00
pm80xx_tracepoints.c scsi: pm80xx: Add tracepoints 2021-11-18 22:26:58 -05:00
pm80xx_tracepoints.h scsi: pm80xx: Add pm80xx_mpi_build_cmd() tracepoint 2021-11-18 22:26:58 -05:00
pm8001_chips.h
pm8001_ctl.c scsi: pm8001: Fix pm8001_update_flash() local variable type 2022-02-22 21:31:16 -05:00
pm8001_ctl.h scsi: pm8001: Clean up white space 2021-04-12 23:21:26 -04:00
pm8001_defs.h scsi: pm80xx: Increase the number of outstanding I/O supported to 1024 2020-10-07 23:50:04 -04:00
pm8001_hwi.c scsi: pm8001: Fix NCQ NON DATA command task initialization 2022-02-22 21:31:19 -05:00
pm8001_hwi.h scsi: pm80xx: Completing pending I/O after fatal error 2021-04-15 22:28:59 -04:00
pm8001_init.c scsi: pm8001: Remove local variable in pm8001_pci_resume() 2022-02-22 21:31:18 -05:00
pm8001_sas.c scsi: pm8001: Fix __iomem pointer use in pm8001_phy_control() 2022-02-22 21:31:16 -05:00
pm8001_sas.h scsi: libsas: Add sas_abort_task_set() 2022-02-19 15:59:36 -05:00