OpenCloudOS-Kernel/drivers/scsi
Avri Altman 09d9e4d041 scsi: ufs: ufshpb: Remove HPB2.0 flows
The Host Performance Buffer feature allows UFS read commands to carry the
physical media addresses along with the LBAs, thus allowing less internal
L2P-table switches in the device.  HPB1.0 allowed a single LBA, while
HPB2.0 increases this capacity up to 255 blocks.

Carrying more than a single record, the read operation is no longer purely
of type "read" but a "hybrid" command: Writing the physical address to the
device in one operation and reading back the required payload in another.

The JEDEC HPB spec defines two commands for this operation:
HPB-WRITE-BUFFER (0x2) to write the physical addresses to device, and
HPB-READ to read the payload.

With the current HPB design the UFS driver has no alternative but to divide
the READ request into 2 separate commands: HPB-WRITE-BUFFER and HPB-READ.
This causes a great deal of aggravation to the block layer guys who
demanded that we completely revert the entire HPB driver regardless of the
huge amount of corporate effort already invested in it.

As a compromise, remove only the pieces that implement the 2.0
specification. This is done as a matter of urgency for the final 5.15
release.

Link: https://lore.kernel.org/r/20211030062301.248-1-avri.altman@wdc.com
Tested-by: Avri Altman <avri.altman@wdc.com>
Tested-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Co-developed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-10-30 10:01:01 -04:00
..
aacraid scsi: aacraid: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aic7xxx SCSI misc on 20210711 2021-07-11 10:59:53 -07:00
aic94xx SCSI misc on 20210711 2021-07-11 10:59:53 -07:00
arcmsr
arm scsi: acornscsi: Remove scsi_cmd_to_tag() reference 2021-10-04 21:54:18 -04:00
be2iscsi scsi: be2iscsi: Fix use-after-free during IP updates 2021-07-18 21:19:14 -04:00
bfa
bnx2fc SCSI misc on 20210711 2021-07-11 10:59:53 -07:00
bnx2i scsi: bnx2i: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
csiostor scsi: csiostor: Add module softdep on cxgb4 2021-09-28 23:26:42 -04:00
cxgbi ethernet: fix PTP_1588_CLOCK dependencies 2021-08-13 17:49:05 -07:00
cxlflash pci-v5.15-changes 2021-09-07 19:13:42 -07:00
device_handler scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach() 2021-07-29 21:58:35 -04:00
dpt
elx scsi: elx: efct: Delete stray unlock statement 2021-10-04 23:33:31 -04:00
esas2r
fcoe
fnic scsi: fnic: Stop setting scsi_cmnd.tag 2021-08-16 13:33:24 -04:00
hisi_sas scsi: hisi_sas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
ibmvscsi scsi: ibmvfc: Fix up duplicate response detection 2021-10-20 22:59:45 -04:00
ibmvscsi_tgt
isci scsi: isci: Use the proper SCSI midlayer interfaces for PI 2021-08-11 22:25:43 -04:00
libfc
libsas scsi: libsas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
lpfc scsi: lpfc: Fix memory overwrite during FC-GS I/O abort handling 2021-10-04 23:37:08 -04:00
megaraid scsi: megaraid: Clean up some inconsistent indenting 2021-09-13 22:15:50 -04:00
mpi3mr scsi: mpi3mr: Fix duplicate device entries when scanning through sysfs 2021-10-16 22:16:37 -04:00
mpt3sas scsi: mpt3sas: Fix reference tag handling for WRITE_INSERT 2021-10-29 14:03:58 -04:00
mvsas
pcmcia scsi: fdomain: Fix error return code in fdomain_probe() 2021-08-09 23:30:25 -04:00
pm8001 Merge branch '5.14/scsi-fixes' into 5.15/scsi-staging 2021-08-11 22:37:22 -04:00
qedf scsi: qedf: Fix error codes in qedf_alloc_global_queues() 2021-08-16 13:27:57 -04:00
qedi scsi: qedi: Fix error codes in qedi_alloc_global_queues() 2021-08-16 13:27:57 -04:00
qla2xxx scsi: qla2xxx: Fix unmap of already freed sgl 2021-10-18 23:19:44 -04:00
qla4xxx scsi: qla4xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
smartpqi scsi: smartpqi: Replace one-element array with flexible-array member 2021-08-17 22:28:39 -04:00
snic scsi: snic: Fix spelling mistake 'progres' -> 'progress' 2021-08-24 22:56:32 -04:00
sym53c8xx_2 scsi: sym53c8xx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:42 -04:00
ufs scsi: ufs: ufshpb: Remove HPB2.0 flows 2021-10-30 10:01:01 -04:00
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700.c scsi: 53c700: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c scsi: BusLogic: Use %X for u32 sized integer rather than %lX 2021-08-01 13:27:46 -04:00
BusLogic.h
FlashPoint.c
Kconfig scsi: core: Rename CONFIG_BLK_SCSI_REQUEST to CONFIG_SCSI_COMMON 2021-07-28 22:24:27 -04:00
Makefile scsi: core: Fix missing FORCE for scsi_devinfo_tbl.c build rule 2021-08-23 23:07:05 -04:00
NCR5380.c scsi: NCR5380: Use sc_data_direction instead of rq_data_dir() 2021-08-11 22:25:38 -04:00
NCR5380.h
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c scsi: advansys: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aha152x.c
aha152x.h
aha1542.c scsi: aha1542: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c
atp870u.c
atp870u.h
bvme6000_scsi.c
ch.c scsi: scsi_ioctl: Call scsi_cmd_ioctl() from scsi_ioctl() 2021-07-28 22:24:25 -04:00
constants.c
dc395x.c
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: dpt_i2o: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
dpti.h
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
fdomain_isa.c
fdomain_pci.c
g_NCR5380.c
gvp11.c
gvp11.h
hosts.c scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma() 2021-10-12 12:37:15 -04:00
hpsa.c scsi: hpsa: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
hpsa.h
hpsa_cmd.h
hptiop.c
hptiop.h
imm.c
imm.h
initio.c
initio.h
ipr.c
ipr.h
ips.c scsi: ips: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c
iscsi_tcp.h
jazz_esp.c
lasi700.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
libiscsi.c scsi: iscsi: Fix iscsi_task use after free 2021-10-04 23:40:11 -04:00
libiscsi_tcp.c
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c
megaraid.c
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
mvumi.h
myrb.c scsi: myrb: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
myrb.h
myrs.c scsi: myrs: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
myrs.h
ncr53c8xx.c scsi: ncr53c8xx: Remove unused retrieve_from_waiting_list() function 2021-09-13 22:15:47 -04:00
ncr53c8xx.h
nsp32.c
nsp32.h
nsp32_debug.c
nsp32_io.h
pmcraid.c
pmcraid.h
ppa.c
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Stop using scsi_cmnd.tag 2021-08-23 23:06:56 -04:00
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c scsi: qlogicpti: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi.c scsi: core: Put LLD module refcnt after SCSI device is released 2021-10-12 22:08:23 -04:00
scsi.h
scsi_bsg.c scsi: bsg: Fix commands without data transfer in scsi_bsg_sg_io_fn() 2021-08-01 13:21:40 -04:00
scsi_common.c scsi: core: Rename CONFIG_BLK_SCSI_REQUEST to CONFIG_SCSI_COMMON 2021-07-28 22:24:27 -04:00
scsi_debug.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
scsi_debugfs.c
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_IGN_MEDIA_CHANGE for Ultra HS-SD/MMC USB card readers 2021-07-21 23:49:02 -04:00
scsi_dh.c
scsi_error.c scsi: core: Remove the request member from struct scsi_cmnd 2021-08-11 22:25:42 -04:00
scsi_ioctl.c scsi: core: scsi_ioctl: Fix error code propagation in SG_IO 2021-08-24 22:56:32 -04:00
scsi_lib.c scsi: core: Remove scsi_cmnd.tag 2021-08-17 22:28:39 -04:00
scsi_lib_dma.c
scsi_logging.c scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_logging.h
scsi_netlink.c
scsi_pm.c
scsi_priv.h scsi: bsg: Simplify device registration 2021-07-30 22:22:36 -04:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c Merge branch '5.14/scsi-fixes' into 5.15/scsi-staging 2021-08-11 22:37:22 -04:00
scsi_sysctl.c
scsi_sysfs.c scsi: core: Put LLD module refcnt after SCSI device is released 2021-10-12 22:08:23 -04:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: scsi_transport_fc: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_transport_iscsi.c scsi: iscsi: Fix set_param() handling 2021-10-12 12:51:25 -04:00
scsi_transport_sas.c
scsi_transport_spi.c scsi: scsi_transport_spi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_transport_srp.c
scsicam.c
sd.c scsi: sd: Fix crashes in sd_resume_runtime() 2021-10-16 22:25:23 -04:00
sd.h
sd_dif.c
sd_zbc.c scsi: sd_zbc: Support disks with more than 2**32 logical blocks 2021-09-21 23:52:55 -04:00
sense_codes.h
ses.c scsi: ses: Fix unsigned comparison with less than zero 2021-09-28 22:42:06 -04:00
sg.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sgiwd93.c
sim710.c
sni_53c710.c
sr.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sr.h
sr_ioctl.c scsi: sr: Fix spelling mistake "does'nt" -> "doesn't" 2021-09-13 22:15:49 -04:00
sr_vendor.c
st.c scsi: st: Add missing break in switch statement in st_ioctl() 2021-09-13 22:15:39 -04:00
st.h st: do not allocate a gendisk 2021-08-23 12:54:30 -06:00
st_options.h
stex.c scsi: stex: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
storvsc_drv.c scsi: storvsc: Fix validation for unsolicited incoming packets 2021-10-12 21:59:50 -04:00
sun3_scsi.c scsi: sun3_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
sun3_scsi_vme.c
sun3x_esp.c
sun_esp.c
virtio_scsi.c scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" 2021-09-28 22:47:28 -04:00
vmw_pvscsi.c SCSI misc on 20210702 2021-07-02 15:14:36 -07:00
vmw_pvscsi.h
wd33c93.c
wd33c93.h
wd719x.c scsi: wd719: Stop using scsi_cmnd.tag 2021-08-16 13:33:24 -04:00
wd719x.h
xen-scsifront.c scsi: xen-scsifront: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:42 -04:00
zalon.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
zorro7xx.c
zorro_esp.c