summaryrefslogtreecommitdiff
path: root/drivers/ata
diff options
context:
space:
mode:
authorDamien Le Moal <dlemoal@kernel.org>2025-07-01 21:53:16 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-08-28 16:25:51 +0200
commit889786c24f7345a3f7a543d027bb0f1d5ba2bfe6 (patch)
tree095423ebf45f7d9c9fb0ee2b51150ec19d5fd70d /drivers/ata
parentfcf5f94c9800c184e05785874b6531091f9ef23f (diff)
downloadlinux-889786c24f7345a3f7a543d027bb0f1d5ba2bfe6.tar.gz
linux-889786c24f7345a3f7a543d027bb0f1d5ba2bfe6.tar.bz2
linux-889786c24f7345a3f7a543d027bb0f1d5ba2bfe6.zip
ata: libata-sata: Disallow changing LPM state if not supported
[ Upstream commit 413e800cadbf67550d76c77c230b2ecd96bce83a ] Modify ata_scsi_lpm_store() to return an error if a user attempts to set a link power management policy for a port that does not support LPM, that is, ports flagged with ATA_FLAG_NO_LPM. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Niklas Cassel <cassel@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Link: https://lore.kernel.org/r/20250701125321.69496-6-dlemoal@kernel.org Signed-off-by: Niklas Cassel <cassel@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/libata-sata.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata-sata.c b/drivers/ata/libata-sata.c
index 71a00842eb5e..b75999388bf0 100644
--- a/drivers/ata/libata-sata.c
+++ b/drivers/ata/libata-sata.c
@@ -812,6 +812,11 @@ static ssize_t ata_scsi_lpm_store(struct device *device,
spin_lock_irqsave(ap->lock, flags);
+ if (ap->flags & ATA_FLAG_NO_LPM) {
+ count = -EOPNOTSUPP;
+ goto out_unlock;
+ }
+
ata_for_each_link(link, ap, EDGE) {
ata_for_each_dev(dev, &ap->link, ENABLED) {
if (dev->horkage & ATA_HORKAGE_NOLPM) {