linux/drivers/ata
Damien Le Moal 6d81700ad7 ata: libata-scsi: do not raise UA for storage element depopulation and restoration
The libata command completion for the ATA commands REMOVE ELEMENT AND
TRUNCATE and RESTORE ELEMENTS AND REBUILD is handled using the function
ata_scsi_depop_ua_cap_changed_complete(). This completion function raises
a UNIT ATTENTION with the additional sense code CAPACITY DATA HAS CHANGED.
But doing so, the scsi layer seeing the UNIT ATTENTION sense key ends up
failing the command, even if the command result is in fact OK.

The SAT specifications do provide more details about the capacity change
should be notified, and that relies on the ACCESSIBLE CAPACITY field of
the IDENTIFY DATA retrieved before or after the command is issued, and
then raising a UNIT ATTENTION if the capacity has really changed. However,
we do not have any simple mean to raise a unit attention from libata-scsi.
So rather than seeing the REMOVE ELEMENT AND TRUNCATE and RESTORE ELEMENTS
AND REBUILD commands failing, remove the function
ata_scsi_depop_ua_cap_changed_complete() and rely on the regular
completion callback. Since for now these commands can only be issued as
passthrough commands, the user is responsible for revalidating the device
capacity after executing these commands.

Fixes: db496721cb ("ata: libata-scsi: add support for the REMOVE ELEMENT AND TRUNCATE command")
Fixes: 1e307ca61a ("ata: libata-scsi: add support for the RESTORE ELEMENTS AND REBUILD command")
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20260902020828.1436048-1-dlemoal@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
2026-09-03 16:10:44 +02:00
..
pata_parport ata: pata_parport: switch to dynamic root device 2026-04-27 11:38:16 +02:00
acard-ahci.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
ahci_brcm.c
ahci_ceva.c ata: ahci_ceva: fix error paths in ceva_ahci_platform_enable_resources() 2026-07-18 10:37:02 +09:00
ahci_da850.c ata: ahci_da850: use devm_platform_ioremap_resource() 2026-07-18 11:58:16 +09:00
ahci_dm816.c
ahci_dwc.c ata: ahci-dwc: Remove not-going-to-be-supported code for Baikal SoC 2026-02-24 15:29:57 +01:00
ahci_imx.c ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
ahci_mtk.c
ahci_mvebu.c
ahci_octeon.c
ahci_platform.c ata: use named initializers for acpi_device_id 2026-08-04 18:48:43 +09:00
ahci_qoriq.c ata: use named initializers for acpi_device_id 2026-08-04 18:48:43 +09:00
ahci_seattle.c ata: use named initializers for acpi_device_id 2026-08-04 18:48:43 +09:00
ahci_st.c
ahci_sunxi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
ahci_tegra.c ata: ahci_tegra: Explicitly specify PMC instance to use 2026-05-28 22:46:11 +02:00
ahci_xgene.c ata: use named initializers for acpi_device_id 2026-08-04 18:48:43 +09:00
ahci.c ata: ahci: work around lost interrupts on Marvell 88SE61xx 2026-09-02 07:00:09 +02:00
ahci.h ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
ata_generic.c ata: ata_generic: Don't store pci_device_id 2026-07-28 11:15:20 -05:00
ata_piix.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
Kconfig ata: pata_ep93xx: add COMPILE_TEST support 2026-06-02 11:47:45 +02:00
libahci_platform.c ata: libahci_platform: use flex array for platform PHYs 2026-03-31 10:29:35 +02:00
libahci.c ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
libata-acpi.c
libata-core.c ata changes for 7.3 2026-08-19 12:31:50 -07:00
libata-eh.c ata changes for 7.3 2026-08-19 12:31:50 -07:00
libata-pata-timings.c
libata-pmp.c ata: libata-pmp: add JMicron JMS562 quirk 2026-06-10 11:39:37 +02:00
libata-sata.c ata: libata-sata: fix ata_scsi_lpm_supported() iteration 2026-07-29 10:55:11 +09:00
libata-scsi.c ata: libata-scsi: do not raise UA for storage element depopulation and restoration 2026-09-03 16:10:44 +02:00
libata-sff.c ata: libata-sff: don't busy-wait for PIO data-in command completion 2026-07-21 08:55:31 +09:00
libata-trace.c
libata-transport.c ata: libata-transport: remove static variable ata_scsi_transport_template 2026-04-02 21:01:10 +02:00
libata-transport.h ata: libata-transport: remove static variable ata_scsi_transport_template 2026-04-02 21:01:10 +02:00
libata-zpodd.c
libata.h ata changes for 7.3 2026-08-19 12:31:50 -07:00
Makefile ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
pata_acpi.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_ali.c
pata_amd.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_arasan_cf.c ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
pata_artop.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_atiixp.c
pata_atp867x.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_buddha.c SCSI misc on 20260821 2026-08-21 11:23:20 -07:00
pata_cmd64x.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_cmd640.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_ep93xx.c ata: pata_ep93xx: fix PIO fallback when DMA init fails 2026-07-23 16:40:05 +09:00
pata_falcon.c
pata_ftide010.c
pata_gayle.c
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_imx.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pata_isapnp.c ata: pata_isapnp: Drop unused assignments from pnp_device_id array 2026-06-10 09:41:26 +02:00
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c
pata_jmicron.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_legacy.c
pata_macio.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_marvell.c
pata_mpc52xx.c ata: pata_mpc52xx: Remove redundant dev_err() 2026-07-18 10:09:19 +09:00
pata_mpiix.c
pata_netcell.c
pata_ninja32.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
pata_of_platform.c
pata_oldpiix.c
pata_opti.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_optidma.c
pata_pcmcia.c
pata_pdc202xx_old.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_pdc2027x.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_piccolo.c
pata_platform.c
pata_pxa.c ata: pata_pxa: use devres for DMA channel management 2026-07-23 16:40:05 +09:00
pata_radisys.c
pata_rb532_cf.c ata: pata_rb532_cf: use devm_platform_ioremap_resource() 2026-07-18 11:58:16 +09:00
pata_rdc.c
pata_rz1000.c
pata_sc1200.c
pata_sch.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
pata_serverworks.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_sil680.c
pata_sis.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pata_sl82c105.c ata: pata_sl82c105: fix bridge revision use-after-free 2026-08-07 00:55:53 +09:00
pata_triflex.c
pata_via.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
pdc_adma.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_dwc_460ex.c ata: sata_dwc_460ex: fix infinite loop in NCQ tag completion bit-scanning 2026-07-13 14:32:11 +09:00
sata_fsl.c ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
sata_gemini.c ata: sata_gemini: unwind clocks on IDE pinctrl errors 2026-07-03 13:44:18 +09:00
sata_gemini.h
sata_highbank.c ata: sata_highbank: use devm_platform_ioremap_resource 2026-07-18 11:58:16 +09:00
sata_inic162x.c ata: libata: Document when host->eh_mutex should be held 2026-06-01 19:09:08 +02:00
sata_mv.c ata changes for 7.3 2026-08-19 12:31:50 -07:00
sata_nv.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_promise.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_promise.h
sata_qstor.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_rcar.c
sata_sil.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_sil24.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_sis.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_svw.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_sx4.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_uli.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_via.c ata: Use named initializers for pci_device_id arrays 2026-06-12 11:44:30 +02:00
sata_vsc.c ata: Drop unused assignments of pci_device_id driver data 2026-06-12 11:43:53 +02:00
sis.h