fill_result_tf() grabs the taskfile flags from the originating qc which sas_ata_qc_fill_rtf() promptly overwrites. The presence of an ata_taskfile in the sata_device makes it tempting to just copy the full contents in sas_ata_qc_fill_rtf(). However, libata really only wants the fis contents and expects the other portions of the taskfile to not be touched by ->qc_fill_rtf. To that end store a fis buffer in the sata_device and use ata_tf_from_fis() like every other ->qc_fill_rtf() implementation. Cc: <stable@vger.kernel.org> Reported-by: Praveen Murali <pmurali@logicube.com> Tested-by: Praveen Murali <pmurali@logicube.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com> |
||
---|---|---|
.. | ||
fc | ||
fc_encode.h | ||
fc_frame.h | ||
fcoe_sysfs.h | ||
iscsi_if.h | ||
iscsi_proto.h | ||
Kbuild | ||
libfc.h | ||
libfcoe.h | ||
libiscsi_tcp.h | ||
libiscsi.h | ||
libsas.h | ||
libsrp.h | ||
osd_attributes.h | ||
osd_initiator.h | ||
osd_ore.h | ||
osd_protocol.h | ||
osd_sec.h | ||
osd_sense.h | ||
osd_types.h | ||
sas_ata.h | ||
sas.h | ||
scsi_bsg_fc.h | ||
scsi_bsg_iscsi.h | ||
scsi_cmnd.h | ||
scsi_dbg.h | ||
scsi_device.h | ||
scsi_devinfo.h | ||
scsi_dh.h | ||
scsi_driver.h | ||
scsi_eh.h | ||
scsi_host.h | ||
scsi_ioctl.h | ||
scsi_netlink_fc.h | ||
scsi_netlink.h | ||
scsi_scan.h | ||
scsi_tcq.h | ||
scsi_tgt_if.h | ||
scsi_tgt.h | ||
scsi_transport_fc.h | ||
scsi_transport_iscsi.h | ||
scsi_transport_sas.h | ||
scsi_transport_spi.h | ||
scsi_transport_srp.h | ||
scsi_transport.h | ||
scsi.h | ||
scsicam.h | ||
sg.h | ||
srp.h |