All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Damien Le Moal <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>
Cc: Mikko Korhonen <mjkorhon@gmail.com>, linux-ide@vger.kernel.org
Subject: [PATCH 2/7] ata: libata-eh: Add ata_eh_set_lpm() WARN_ON
Date: Wed, 14 May 2025 19:22:12 +0200	[thread overview]
Message-ID: <20250514172210.383801-11-cassel@kernel.org> (raw)
In-Reply-To: <20250514172210.383801-9-cassel@kernel.org>

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 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>
---
 drivers/ata/libata-eh.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index edbc5d7572d1..d2ccdb9a2840 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -3442,6 +3442,13 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
 	    (link->flags & ATA_LFLAG_NO_LPM) || (ap && !ap->ops->set_lpm))
 		return 0;
 
+	/*
+	 * This function currently assumes that it will never be supplied policy
+	 * ATA_LPM_UNKNOWN.
+	 */
+	if (WARN_ON(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
-- 
2.49.0


  parent reply	other threads:[~2025-05-14 17:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-14 17:22 [PATCH 0/7] ata_eh_set_lpm() cleanups Niklas Cassel
2025-05-14 17:22 ` [PATCH 1/7] ata: libata-eh: Update DIPM comments to reflect reality Niklas Cassel
2025-05-14 17:22 ` Niklas Cassel [this message]
2025-05-15 12:38   ` [PATCH 2/7] ata: libata-eh: Add ata_eh_set_lpm() WARN_ON Damien Le Moal
2025-05-14 17:22 ` [PATCH 3/7] ata: libata-eh: Drop dipm variable Niklas Cassel
2025-05-15 12:39   ` Damien Le Moal
2025-05-14 17:22 ` [PATCH 4/7] ata: libata-eh: Introduce dev_has_dipm and dev_has_hipm variables Niklas Cassel
2025-05-14 17:22 ` [PATCH 5/7] ata: libata-eh: Rename no_dipm variable to be more clear Niklas Cassel
2025-05-14 17:22 ` [PATCH 6/7] ata: libata-eh: Host support has nothing to do with disabling DIPM Niklas Cassel
2025-05-14 17:22 ` [PATCH 7/7] ata: libata-eh: Always disable DIPM before calling set_lpm() callback Niklas Cassel
2025-05-15 12:42   ` Damien Le Moal
2025-05-15 12:59     ` Niklas Cassel
2025-05-15 13:04       ` Damien Le Moal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250514172210.383801-11-cassel@kernel.org \
    --to=cassel@kernel.org \
    --cc=dlemoal@kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=mjkorhon@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.