freebsd-dev/sys/dev
Kenneth D. Merry 8881681b24 Disable T10 Protection Information / EEDP handling for type 2 protection.
The mps(4) and mpr(4) drivers and hardware handle T10 Protection
Information, which is a system of checksums and guard blocks to protect
data while it is being transferred and while it is on disk.  It is also
known as T10 DIF.  For more details, see section 4.22 of the SBC-4 spec.

Supporting Type 2 protection requires using 32 byte CDBs, and filling in
the fields in those CDBs.  We don't yet support that in the da(4) driver.

Type 1 and Type 3 protection don't require that, and can be handled by
the mps(4)/mpr(4) driver's code and firmware without any additional
input from the da(4) driver.

If a drive has Type 2 protection enabled (you frequently see this with
SAS drives shipped from Dell), don't set the various EEDP fields in the
mps(4)/mpr(4) driver command fields.  Otherwise, you wind up with errors
like this that would otherwise make no sense:

(da9:mpr0:0:18:0): READ(10). CDB: 28 00 00 00 00 00 00 02 00 00
(da9:mpr0:0:18:0): CAM status: SCSI Status Error
(da9:mpr0:0:18:0): SCSI status: Check Condition
(da9:mpr0:0:18:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
(da9:mpr0:0:18:0):
(da9:mpr0:0:18:0): Field Replaceable Unit: 0
(da9:mpr0:0:18:0): Command Specific Info: 0
(da9:mpr0:0:18:0):
(da9:mpr0:0:18:0): Descriptor 0x80: f8 21
(da9:mpr0:0:18:0): Descriptor 0x81: 00 00 00 00 00 00
(da9:mpr0:0:18:0): Error 22, Unretryable error

In other words, what kind of strange SAS hard drive doesn't support a
standard 10 byte SCSI READ command?  In this case, one that has Type 2
protection enabled.

We can revisit this when we put Type 2 protection support in the da(4)
driver, but for now this will help people who put Type 2 formatted drives
in a system and wonder what in the world is going on.

MFC after:	3 days
Sponsored by:	Spectra Logic
2018-03-23 13:52:26 +00:00
..
aac Fix FSACTL_GET_NEXT_ADAPTER_FIB under 32-bit compat. 2018-03-14 21:11:41 +00:00
aacraid Fix FSACTL_GET_NEXT_ADAPTER_FIB under 32-bit compat. 2018-03-14 21:11:41 +00:00
acpi_support
acpica Merge ACPICA 20180313. 2018-03-14 23:45:48 +00:00
adb
adlink
advansys
ae
age
agp
aha
ahci
aic
aic7xxx
al_eth
alc
ale
alpm
altera
amd_ecc_inject
amdpm
amdsbwd
amdsmb
amdsmn
amdtemp
amr
an
arcmsr
asmc asmc: update temperature sensor name/description 2018-03-08 18:52:47 +00:00
ata
ath
atkbdc psm(4): Initialize variables before use 2018-03-06 20:31:14 +00:00
auxio
axgbe
bce
beri
bfe
bge
bhnd Add missing NULL checks when calling malloc(M_NOWAIT) in 2018-03-22 22:13:46 +00:00
bktr bktr: correct Japan IF frequency 2018-03-08 19:24:10 +00:00
bm
bnxt
buslogic
bvm
bwi
bwn net80211: wrap protection frame allocation into ieee80211_alloc_prot() 2018-03-09 11:33:56 +00:00
bxe
cadence
cardbus Push down Giant one layer. In the days of yore, back when Penitums 2018-03-20 22:01:18 +00:00
cas
ce
cesa
cfe
cfi
chromebook_platform
ciss
cm
cmx
coretemp
cp
cpuctl
cpufreq
cs
ctau
cx
cxgb
cxgbe cxgbe(4): Do not read MFG diags information from custom boards. 2018-03-22 04:42:29 +00:00
cy
cyapa
dc
dcons
de
dme
dpaa
dpms
dpt
drm Correct signedness bug in drm_modeset_ctl 2018-03-22 01:00:55 +00:00
drm2
dwc
e1000 Update copyright per Matthew Macy 2018-03-21 15:57:36 +00:00
ed
efidev efidev: Drop a quick note in about efi_cfgtbl/efi_runtime 2018-03-23 02:45:09 +00:00
ena
ep
esp
et
etherswitch
evdev
ex
exca
extres extres/regulators: Add sysctls for regulators 2018-03-11 04:37:05 +00:00
fb
fdc
fdt [ofw] fix errneous checks for OF_finddevice(9) return value 2018-03-20 00:03:49 +00:00
fe
ffec
filemon
firewire
flash Add the device/chip type to the disk d_descr field, and print more info 2018-03-18 18:58:47 +00:00
fxp
gem
glxiic
glxsb
gpio
gxemul
hdmi
hifn
hme
hpt27xx
hptiop
hptmv
hptnr
hptrr
hwpmc
hyperv Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
ic
ichiic [ig4] Add support for i2c controllers on Skylake and Kaby Lake 2018-03-06 23:39:43 +00:00
ichsmb
ichwd
ida
if_ndis
iicbus Build the ds1672 driver as a module. Add a detach() to unregister the rtc. 2018-03-06 02:30:34 +00:00
iir
imcsmb
intel
intpm
io
ioat
ipmi
ips
ipw
isci
iscsi Fix typo in a warning message. 2018-03-14 18:27:06 +00:00
iscsi_initiator
iser
isl
ismt
isp Increase ABOUT FIRMWARE command timeout to 5s. 2018-03-15 01:07:21 +00:00
ispfw
iwi Remove unused variable. 2018-03-08 22:04:54 +00:00
iwm
iwn
ixgb
ixgbe ixgbe(4): Update shared code, add support for X552 1G, fix bug 2018-03-19 20:55:05 +00:00
ixl
jedec_dimm jedec_dimm: Use correct string length when populating sc->slotid_str 2018-03-22 06:31:05 +00:00
jedec_ts
jme
joy
kbd
kbdmux
ksyms
le
led
lge
liquidio
lmc
malo
mbox
mc146818
md Add a request structure and make the implementation use it. 2018-03-15 21:42:49 +00:00
mdio
mem
mfi
mge
mii
mk48txx
mlx
mlx4 Bump version information in mlx4ib(4). 2018-03-07 13:59:46 +00:00
mlx5 mlx5(4): Remove redundant declaration of mlx5_enter_error_state 2018-03-10 00:59:48 +00:00
mly
mmc
mmcnull
mn
mpr Disable T10 Protection Information / EEDP handling for type 2 protection. 2018-03-23 13:52:26 +00:00
mps Disable T10 Protection Information / EEDP handling for type 2 protection. 2018-03-23 13:52:26 +00:00
mpt
mrsas
mse
msk
mthca Optimize ibcore RoCE address handle creation from user-space. 2018-03-05 14:34:52 +00:00
mvs
mwl
mxge
my
nand
ncr
nctgpio
ncv
neta
netfpga10g/nf10bmac
netmap
nfe
nfsmb
nge
nmdm
nsp
ntb
null
nvd
nvme Starting LBA is a 64bit number, so use htole64 instead of htole32. The 2018-03-20 03:37:14 +00:00
nvram
nvram2env
nxge
oce
ofw [ofw] fix errneous checks for OF_finddevice(9) return value 2018-03-20 00:03:49 +00:00
otus otus(4): check mcast / mgt / ucast rates during Tx descriptor setup 2018-03-11 00:38:08 +00:00
ow [ofw] fix errneous checks for OF_finddevice(9) return value 2018-03-20 00:03:49 +00:00
pbio
pccard Push down Giant one layer. In the days of yore, back when Penitums 2018-03-20 22:01:18 +00:00
pccbb Push down Giant one layer. In the days of yore, back when Penitums 2018-03-20 22:01:18 +00:00
pcf
pci Create macros for the ACPI interrupt cross references. This is considered a 2018-03-07 13:16:03 +00:00
pcn
pdq
pms
powermac_nvram
ppbus
ppc
proto
psci
pst
pty
puc
qlnx/qlnxe
qlxgb
qlxgbe
qlxge
quicc
ral net80211: wrap protection frame allocation into ieee80211_alloc_prot() 2018-03-09 11:33:56 +00:00
random random(4): Poll for signals during large reads 2018-03-16 18:50:26 +00:00
rc
rccgpio
re
rl
rndtest
rp
rt
rtwn rtwn(4): de-hardcode ('h/w rate index' - 'corresponding MCS index') constant 2018-03-16 01:03:10 +00:00
safe
sbni
scc
sdhci Fix build when option MMCCAM is defined. 2018-03-08 22:49:36 +00:00
sec
sf
sfxge
sge
siis
sio
sis
sk
smbus
smc
sn
snp
sound
speaker
spibus
ste
stg
stge
sym
syscons Revert r331298 2018-03-22 15:11:53 +00:00
tcp_log Add the "TCP Blackbox Recorder" which we discussed at the developer 2018-03-22 09:40:08 +00:00
tdfx
terasic
ti
tl
tpm
trm
tsec
twa
twe
tws
tx
txp
uart
ubsec
usb If sc->sc_ep_max is already set use it to find the number of RX and TX 2018-03-23 11:08:59 +00:00
vge
viapm
viawd
videomode
virtio
vkbd
vmware/vmxnet3
vnic [ofw] fix errneous checks for OF_finddevice(9) return value 2018-03-20 00:03:49 +00:00
vr
vt vt_vga: check if VGA is available from ACPI FADT table 2018-03-13 09:38:53 +00:00
vte
vx
vxge
watchdog
wb
wbwd
wi
wpi
wtap
xdma
xe
xen
xilinx
xl