mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
ata: libata-core: Skip HPA resize for locked drives
Skip HPA resize in ata_hpa_resize() if the drive is security locked. If the drive is locked, the command to read the native max address fails with -EACCES, which currently causes the sticky quirk ATA_QUIRK_BROKEN_HPA to be set on the device. Setting this sticky quirk causes subsequent revalidations (after the drive is unlocked) to bypass HPA checks, preventing the unlocked drive from exposing its full native capacity without a reboot or device removal. Cc: stable@vger.kernel.org Signed-off-by: Terrence Adams <tadamsjr@google.com> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
This commit is contained in:
@@ -1338,7 +1338,7 @@ static int ata_hpa_resize(struct ata_device *dev)
|
||||
/* do we need to do it? */
|
||||
if ((dev->class != ATA_DEV_ATA && dev->class != ATA_DEV_ZAC) ||
|
||||
!ata_id_has_lba(dev->id) || !ata_id_hpa_enabled(dev->id) ||
|
||||
(dev->quirks & ATA_QUIRK_BROKEN_HPA))
|
||||
(dev->quirks & ATA_QUIRK_BROKEN_HPA) || ata_id_is_locked(dev->id))
|
||||
return 0;
|
||||
|
||||
/* read native max address */
|
||||
|
||||
Reference in New Issue
Block a user