linux/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 scsi: arcmsr: Avoid over-read of sense buffer 2021-06-18 23:26:33 -04:00
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 scsi: bfa: Fix inconsistent indenting 2021-05-21 17:01:18 -04:00
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 Merge branch '5.14/scsi-result' into 5.14/scsi-staging 2021-06-02 01:37:04 -04:00
fcoe scsi: fcoe: Statically initialize flogi_maddr 2021-06-07 21:30:09 -04:00
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 scsi/ibmvscsi: Directly include linux/{of.h,irqdomain.h} 2021-06-10 13:09:16 +01:00
isci scsi: isci: Use the proper SCSI midlayer interfaces for PI 2021-08-11 22:25:43 -04:00
libfc scsi: libfc: Fix array index out of bound exception 2021-06-28 22:31:16 -04:00
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 scsi: mvsas: Use DEVICE_ATTR_RO()/RW() macro 2021-06-22 23:00:02 -04:00
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 scsi: core: Drop obsolete Linux-specific SCSI status codes 2021-05-31 23:59:18 -04:00
3w-9xxx.h scsi: 3w-9xxx: Fix endianness issues in command packets 2021-05-15 18:01:34 -04:00
3w-sas.c scsi: 3w-sas: Remove unneeded variable 'retval' 2021-03-18 22:18:09 -04:00
3w-sas.h scsi: 3w-sas: Whitespace cleanup 2021-01-22 21:14:08 -05:00
3w-xxxx.c scsi: core: Drop obsolete Linux-specific SCSI status codes 2021-05-31 23:59:18 -04:00
3w-xxxx.h scsi: 3w-xxxx: Whitespace cleanup 2021-01-22 21:14:07 -05:00
53c700_d.h_shipped
53c700.c scsi: 53c700: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
53c700.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
53c700.scr
a100u2w.c scsi: a100u2w: Remove unused variable biosaddr 2021-03-29 23:33:06 -04:00
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 scsi: aha152x: Do not set message byte when calling scsi_done() 2021-05-31 22:48:23 -04:00
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 scsi: aha1542: Clarify 'struct ccb' comments 2021-01-13 00:14:07 -05:00
aha1740.c scsi: aha1740: Avoid over-read of sense buffer 2021-06-18 23:27:04 -04:00
aha1740.h
am53c974.c
atari_scsi.c scsi: atari_scsi: Fix race condition between .queuecommand and EH 2020-11-23 22:12:09 -05:00
atp870u.c scsi: atp870u: Fix naming and demote incorrect and non-conformant kernel-doc header 2021-03-15 22:29:00 -04:00
atp870u.h scsi: atp870u: Whitespace cleanup 2021-01-22 21:14:08 -05:00
BusLogic.c scsi: BusLogic: Use %X for u32 sized integer rather than %lX 2021-08-01 13:27:46 -04:00
BusLogic.h scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic 2021-05-14 22:19:04 -04:00
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 scsi: core: Introduce enums for the SAM and host status codes 2021-06-02 23:09:39 -04:00
dc395x.c scsi: dc395: Translate message bytes 2021-05-31 22:48:22 -04:00
dc395x.h scsi: dc395x: Drop internal SCSI message definitions 2021-01-22 21:14:10 -05:00
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 scsi: core: Kill DRIVER_SENSE 2021-05-31 22:48:21 -04:00
esp_scsi.h
fdomain_isa.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
fdomain_pci.c
fdomain.c scsi: fdomain: Translate message to host byte status 2021-05-31 22:48:24 -04:00
fdomain.h
FlashPoint.c Merge branch '5.14/scsi-result' into 5.14/scsi-staging 2021-06-02 01:37:04 -04:00
g_NCR5380.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
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_cmd.h scsi: hpsa: Add an assert to prevent __packed reintroduction 2021-04-01 22:52:40 -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
hptiop.c scsi: core: Do not use DRIVER_INVALID 2021-05-31 22:48:21 -04:00
hptiop.h
imm.c scsi: imm: Switch to use module_parport_driver() 2021-06-18 23:01:03 -04:00
imm.h
initio.c scsi: initio: Fix a few kernel-doc misdemeanours 2021-03-18 23:35:55 -04:00
initio.h scsi: initio: Drop internal SCSI message definition 2021-01-22 21:14:10 -05:00
ipr.c scsi: ipr: System crashes when seeing type 20 error 2021-06-29 16:46:08 -04:00
ipr.h scsi: ipr: System crashes when seeing type 20 error 2021-06-29 16:46:08 -04:00
ips.c scsi: ips: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
ips.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi: iscsi_tcp: Start socket shutdown during conn stop 2021-06-02 01:28:20 -04:00
iscsi_tcp.h
jazz_esp.c scsi: jazz_esp: Add IRQ check 2021-04-13 00:20:48 -04:00
Kconfig scsi: core: Rename CONFIG_BLK_SCSI_REQUEST to CONFIG_SCSI_COMMON 2021-07-28 22:24:27 -04:00
lasi700.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
libiscsi_tcp.c scsi: libiscsi: Drop taskqueuelock 2021-02-08 22:39:03 -05:00
libiscsi.c scsi: iscsi: Fix iscsi_task use after free 2021-10-04 23:40:11 -04:00
mac53c94.c scsi: mac53c94: Fix warning comparing pointer to 0 2021-03-24 22:16:12 -04:00
mac53c94.h
mac_esp.c
mac_scsi.c scsi: NCR5380: Remove context check 2020-12-07 20:24:09 -05:00
Makefile scsi: core: Fix missing FORCE for scsi_devinfo_tbl.c build rule 2021-08-23 23:07:05 -04:00
megaraid.c scsi: core: Drop obsolete Linux-specific SCSI status codes 2021-05-31 23:59:18 -04:00
megaraid.h
mesh.c scsi: mesh: Translate message to host byte status 2021-05-31 22:48:23 -04:00
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 scsi: ncr53c8xx: Use SAM status values 2021-01-22 21:14:12 -05:00
NCR5380.c scsi: NCR5380: Use sc_data_direction instead of rq_data_dir() 2021-08-11 22:25:38 -04:00
NCR5380.h scsi: NCR5380: Remove context check 2020-12-07 20:24:09 -05:00
nsp32_debug.c
nsp32_io.h
nsp32.c scsi: nsp32: Do not set message byte 2021-05-31 22:48:23 -04:00
nsp32.h
pmcraid.c scsi: pmcraid: Correct function name pmcraid_show_adapter_id() in header 2021-03-18 23:35:55 -04:00
pmcraid.h scsi: pmcraid: Fix typos 2021-05-21 16:59:33 -04:00
ppa.c scsi: ppa: Switch to use module_parport_driver() 2021-06-18 23:01:03 -04:00
ppa.h
ps3rom.c scsi: core: Introduce scsi_build_sense() 2021-05-31 22:48:21 -04:00
qla1280.c scsi: qla1280: Stop using scsi_cmnd.tag 2021-08-23 23:06:56 -04:00
qla1280.h
qlogicfas408.c scsi: qlogicfas408: Whitespace cleanup 2021-05-31 22:48:23 -04:00
qlogicfas408.h
qlogicfas.c
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_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: remove the unchecked_isa_dma flag 2021-04-06 09:28:17 -06:00
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: scsi_dh: Fix a typo 2021-03-24 23:03:43 -04:00
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_dma.c
scsi_lib.c scsi: core: Remove scsi_cmnd.tag 2021-08-17 22:28:39 -04:00
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: core: Fixup calling convention for scsi_mode_sense() 2021-05-31 22:48:20 -04:00
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 scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state 2021-04-05 23:14:53 -04:00
scsi.c scsi: core: Put LLD module refcnt after SCSI device is released 2021-10-12 22:08:23 -04:00
scsi.h
scsicam.c include: remove pagemap.h from blkdev.h 2021-05-06 19:24:11 -07:00
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
sd.c scsi: sd: Fix crashes in sd_resume_runtime() 2021-10-16 22:25:23 -04:00
sd.h SCSI misc on 20201013 2020-10-14 15:15:35 -07: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 scsi: sim710: Remove unused variable 'err' from sim710_init() 2021-03-18 22:52:29 -04:00
sni_53c710.c treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
sr_ioctl.c scsi: sr: Fix spelling mistake "does'nt" -> "doesn't" 2021-09-13 22:15:49 -04:00
sr_vendor.c
sr.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sr.h
st_options.h
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
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_vme.c
sun3_scsi.c scsi: sun3_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
sun3x_esp.c scsi: sun3x_esp: Add IRQ check 2021-04-13 00:20:48 -04:00
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 scsi: vmw_pvscsi: MAINTAINERS: Update maintainer 2021-03-04 17:21:25 -05:00
wd33c93.c scsi: wd33c93: Translate message byte to host byte 2021-05-31 22:48:23 -04:00
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