diff options
author | Niklas Cassel <cassel@kernel.org> | 2025-05-15 15:56:24 +0200 |
---|---|---|
committer | Damien Le Moal <dlemoal@kernel.org> | 2025-05-20 18:20:40 +0900 |
commit | 62eef53ab5ede2dba18ce4c5e7d031e05ab74025 (patch) | |
tree | 50e9dd9b8025fa09cd1efa9bf990257d91f81ec8 | |
parent | 381d43b26282377a7e2f7ddfdd0147ad72353621 (diff) |
ata: libata-eh: Add ata_eh_set_lpm() WARN_ON_ONCE
link->lpm_policy is initialized to ATA_LPM_UNKNOWN in ata_eh_reset().
ata_eh_set_lpm() is then only called if
link->lpm_policy != ap->target_lpm_policy (after reset)
and then only if link->lpm_policy > ATA_LPM_MAX_POWER (before
revalidation).
This means that ata_eh_set_lpm() is currently never called with
policy == ATA_LPM_UNKNOWN.
Add a WARN_ON_ONCE so that it is more obvious from reading the code that
this function is never called with policy == ATA_LPM_UNKNOWN.
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
-rw-r--r-- | drivers/ata/libata-eh.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index f39756a26751..89b7b2139a16 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -3443,6 +3443,13 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy, return 0; /* + * This function currently assumes that it will never be supplied policy + * ATA_LPM_UNKNOWN. + */ + if (WARN_ON_ONCE(policy == ATA_LPM_UNKNOWN)) + return 0; + + /* * DIPM is enabled only for ATA_LPM_MIN_POWER, * ATA_LPM_MIN_POWER_WITH_PARTIAL, and ATA_LPM_MED_POWER_WITH_DIPM, as * some devices misbehave when the host NACKs transition to SLUMBER. |