All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] ata: sata_dwc_460ex: Don't enable interrupt if libATA core registration fails
@ 2026-09-17 11:35 Nikolay Borisov
  2026-09-17 13:18 ` Damien Le Moal
  0 siblings, 1 reply; 4+ messages in thread
From: Nikolay Borisov @ 2026-09-17 11:35 UTC (permalink / raw)
  To: linux-ide; +Cc: dlemoal, cassel, rosenp, Nikolay Borisov

Recent 4bbc16a353a9 commit changed the timing when interrupts are
enabled. However it didn't account for the libATA registration step. So
it's possible that interrupts are enabled when the device is not
registered with libATA core.

Resolve the issue by ensuring that interrupts are enabled only if the rest of the
initialization is successful.

Fixes: 4bbc16a353a9 ("ata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered")
Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
---


Changes since v1:
	* Added proper goto label
Changes since v2:
    * Rework logic so that interrupts are enabled if everything is successful
	and don't call phy_exit otherwise, as the driver is quite broken w.r.t to it.

 drivers/ata/sata_dwc_460ex.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c
index 8e3fc713891a..e74335dec42a 100644
--- a/drivers/ata/sata_dwc_460ex.c
+++ b/drivers/ata/sata_dwc_460ex.c
@@ -1185,11 +1185,13 @@ static int sata_dwc_probe(struct platform_device *ofdev)
 	 * error_handler() to execute a dummy Softreset EH session
 	 */
 	err = ata_host_activate(host, irq, sata_dwc_isr, 0, &sata_dwc_sht);
-	if (err)
+	if (err) {
 		dev_err(dev, "failed to activate host");
+	} else {
+		/* Enable SATA Interrupts */
+		sata_dwc_enable_interrupts(hsdev);
+	}
 
-	/* Enable SATA Interrupts */
-	sata_dwc_enable_interrupts(hsdev);
 	return 0;
 
 error_out:
--
2.55.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-17 14:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-17 11:35 [PATCH v3] ata: sata_dwc_460ex: Don't enable interrupt if libATA core registration fails Nikolay Borisov
2026-09-17 13:18 ` Damien Le Moal
2026-09-17 13:26   ` Nikolay Borisov
2026-09-17 14:17     ` Niklas Cassel

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.