From nobody Sat Jul 25 22:32:22 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 681CA378811 for ; Sun, 12 Jul 2026 21:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892253; cv=none; b=r37IUu7oGdE7eoPlcThYa6lPlYr/uiHejZvXGJpVBdjjPqaUDNu3hephXbxG5oobhnqkXOKA2Cr76oMd0mc+n9RnKezUqRxaYbiv6x6HW7e4RQpchXdUpqk50Ftbet+yZ6E4Rw1z31wtrCMTaF8KWjGEH9s8ddctUVzM9cSyHA0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892253; c=relaxed/simple; bh=POCI9+mB1JSWNcNfDabfa8EbUVAr67ljGTZM4RhdEIQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=p0kj266ypNEaKcxNKCxhH5d8Dppsh7rPDC/Lw+wtXS21B+XsqlkQ8xOzoo8MR4E9UWpfN9X3mSJWTy7czWgEII7dBUBdTF0NMOscGEm6OZoaBQUu+lppAIjf8LwEUTTXjjFsi1HiwuhUL0FoWW/3EI8B9K6Pf8sPprva6ya7ZvM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=oVgsHgHG; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oVgsHgHG" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2cc7ef7ec27so27162485ad.1 for ; Sun, 12 Jul 2026 14:37:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783892252; x=1784497052; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5y5XJYUzbCCx3dlBk01XmOZCMqCB1gsJEEHZ92fwapU=; b=oVgsHgHGlCl9HUprDT+5pV6rTgZtyvZmtxLh/RTxQWiULf5mND80i4Tsgk4yrbGo/Z KgAbKNNH1jcaLOraNm9sRdYOTutwyuCU3A2E8KcXx2yFtgqTGDhlOzVkINGvuBnV99Ae ys9wUzVIIkwCSevdVIf90ibko4aIcRO5biaN9JRABYVa9RGtehbAY6r80XyesUXfmbzB qJOCSyQX6CqfPKFysDL7Um0o2HFSpJjZE3Q3CAzjPbbAfkcOR7Ky7v66lJefQ1u0jNFb vqznbGCjTpjv1OQzVz+BC8C9u5eTlUYebThV7g/yWrYa0t1/29INDjVXDpEkQMOsxWw+ hXWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783892252; x=1784497052; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=5y5XJYUzbCCx3dlBk01XmOZCMqCB1gsJEEHZ92fwapU=; b=pkgt2S8HnAjiZvbKJEpkZj+u8QEmy/YK8GWZb5JME9U5/fKuR04uVJ+uycukDPFMP2 OIWtnBJu1PKJgjLwLJrmYYrPeiU2KqSFB+zXyk1nsXzUgpVYfdiW6tBqNtNysLdchOEs /ZrApHy1KY3gbjWnO5zdkevIsRy4PDqrm39XgH9yR2MbVonwu3DUdCi17sfloL1ZV/i1 qu2bLWgzQkKSxUR7WEtUa/AfLu/n1f2Ydw4LKCP8uaB/ID/2fUcf+E0fCSpDQVXt6Zek jnFaYOHTItXHdqnRzakmVpyQn1xUwsfu7WKxxw+PCnn46OM5aBsrR6lIP3/J40864736 5dkA== X-Forwarded-Encrypted: i=1; AHgh+RpMefrdtSk+5NRQjKKjzDs6qhFPMVB8CN4Y6XlEPbw6NEotfZJNnAeB84d0gnpPJN5+0pEoKi9k2xJXgcI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz5FdAQNMS/iNYjp9smNdh48VRlSCQvWBt8eMqPbBoKv7sBHaoz ArDjqYVFoa14WhXuYQGnfk1RGo3k5N4umu47b2mVGpUYEtiakmgbSiWo X-Gm-Gg: AfdE7ckzdR53ArhCizGIjnoffaahkJSWzhPchYaBrg4Exo3wJU9yq7QzTZstGFLanTA 0d/bC77o2xIh/XrCYygNLyEIkz+2Cr91x1BfEzle9pYnwz6ny5hzi94v35iIdBgbJx4jUgmTLH9 7AarALMuHs9oGExKPqWr6hV92yM84AdZbUpOUdAaVNgOVdLbV+1lRnFK3MTIk9K8hNneumCDgrl No9c3N86TBneRGR7uaFkpE8udc07ucxzbE305+f9ftlt0ihT3LIPIeckNJ66kYcJjsbzgcSrO/4 Cx6S8FGC8C/aFVISyxxHOpzp8qqYyM+nqDh1gY1CExvxTcMgi9El+YBreBDYe7TQCBAFKWbfcWc txw7pqDP+L2Qq2KhEosKDLUG6azk7MZ9dDxbw91Hh33acW0bWsOUVBsjik4ejdMFSgTVUPbPnIM kGSSb4acPRf8ebbmDZbUWcl6RLKT6x1AihPQ5Mj7AgHH+hsoOVIVaRAUMiuJBAKc3gqlsYpyNom UWwTl7YH0aVyeiHxvKsgwfjv9ky+cXApDykmohDFCc3PXjGb/ZzoRfjn5jRj2MM+A== X-Received: by 2002:a17:902:f60c:b0:2c6:90ec:f601 with SMTP id d9443c01a7336-2ce9e7a5234mr68312255ad.8.1783892251794; Sun, 12 Jul 2026 14:37:31 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bfb7aesm89082605ad.29.2026.07.12.14.37.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 14:37:31 -0700 (PDT) From: Rosen Penev To: linux-ide@vger.kernel.org Cc: Damien Le Moal , Niklas Cassel , Jeff Garzik , Mark Miesfeld , Rupjyoti Sarmah , Prodyut Hazarika , linux-kernel@vger.kernel.org (open list) Subject: [PATCHv4 1/4] ata: sata_dwc_460ex: use platform_get_irq() Date: Sun, 12 Jul 2026 14:37:25 -0700 Message-ID: <20260712213728.824420-2-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260712213728.824420-1-rosenp@gmail.com> References: <20260712213728.824420-1-rosenp@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace irq_of_parse_and_map() with platform_get_irq() in both sata_dwc_dma_init_old() and sata_dwc_probe(). This is the preferred way to obtain IRQs for platform devices and provides better error reporting. Remove the now-unnecessary #include . irq_of_parse_and_map() requires irq_dispose_mapping(), which is missing. Also fix unused variable when CONFIG_SATA_DWC_OLD_DMA is disabled. Fixes: 62936009f35a ("[libata] Add 460EX on-chip SATA driver, sata_dwc_460e= x") Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/ata/sata_dwc_460ex.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 4fc22ce4bd9a..092272753749 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -226,7 +225,6 @@ static int sata_dwc_dma_init_old(struct platform_device= *pdev, struct sata_dwc_device *hsdev) { struct device *dev =3D &pdev->dev; - struct device_node *np =3D dev->of_node; =20 hsdev->dma =3D devm_kzalloc(dev, sizeof(*hsdev->dma), GFP_KERNEL); if (!hsdev->dma) @@ -236,11 +234,9 @@ static int sata_dwc_dma_init_old(struct platform_devic= e *pdev, hsdev->dma->id =3D pdev->id; =20 /* Get SATA DMA interrupt number */ - hsdev->dma->irq =3D irq_of_parse_and_map(np, 1); - if (!hsdev->dma->irq) { - dev_err(dev, "no SATA DMA irq\n"); - return -ENODEV; - } + hsdev->dma->irq =3D platform_get_irq(pdev, 1); + if (hsdev->dma->irq < 0) + return hsdev->dma->irq; =20 /* Get physical SATA DMA register base address */ hsdev->dma->regs =3D devm_platform_ioremap_resource(pdev, 1); @@ -1126,7 +1122,6 @@ static const struct ata_port_info sata_dwc_port_info[= ] =3D { static int sata_dwc_probe(struct platform_device *ofdev) { struct device *dev =3D &ofdev->dev; - struct device_node *np =3D dev->of_node; struct sata_dwc_device *hsdev; u32 idr, versionr; char *ver =3D (char *)&versionr; @@ -1173,14 +1168,12 @@ static int sata_dwc_probe(struct platform_device *o= fdev) sata_dwc_enable_interrupts(hsdev); =20 /* Get SATA interrupt number */ - irq =3D irq_of_parse_and_map(np, 0); - if (!irq) { - dev_err(dev, "no SATA DMA irq\n"); - return -ENODEV; - } + irq =3D platform_get_irq(ofdev, 0); + if (irq < 0) + return irq; =20 #ifdef CONFIG_SATA_DWC_OLD_DMA - if (!of_property_present(np, "dmas")) { + if (!of_property_present(dev->of_node, "dmas")) { err =3D sata_dwc_dma_init_old(ofdev, hsdev); if (err) return err; --=20 2.55.0 From nobody Sat Jul 25 22:32:22 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A138A379EE0 for ; Sun, 12 Jul 2026 21:37:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892254; cv=none; b=KT786yuwWsasPROg5uI8IQholWB9Ep2helQ7F10hXx48Y4nvqDAljSKyuMEgT5qgYAJYa9+ibcUq35JZLYyw8U5q+dA0NflvAyAl+phqTctB/HZH6F68znHl95knXwNHzpyWHQcVRIxaqiUEa/a7C7G4Au/87N8etOkwFitP8o0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892254; c=relaxed/simple; bh=keTxroWB1ulOIKLHrJ0vI3TRrY7IJd7VnUilIRrP4UY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xg8XqThXYKVtpLubvuSCpK3HoK3Ii2mhFom/S4P7Sd967pEgZZNKsBTHuSonrVmJfqbUH34shF6/E03C6NmTUWZelVSIJlwmnbAIBoCTph4I/cCWTyBZuUu8z36WaP/zfN/U4ao/SEcx2hJswElLzIeCe3evToKEEDfnPdQXdJw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NUyVMzUj; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NUyVMzUj" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2ce7d2adef4so33555435ad.3 for ; Sun, 12 Jul 2026 14:37:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783892253; x=1784497053; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=8ArRvRxqeT0i+T/S/4UgCHgV2A40U9Nyq7CnLb6H9r8=; b=NUyVMzUjmlpC3GtW3iMynLoVFKKLsouQfRuwnPMUWosYnS3oU6fsO4prldBnYxa/7b D/g5/ZPWS9rWi7cF1misqf+k7EzERATjqhKODKekecrBoUjlBLfIfbflyyBo6K+HmJ2d WZGWeIfvt7PCPt6O5Rtb4EQzth6iVgdrvimwZvzcGZYIdsR29mj1+2vaEzlmZ0wUYeyz D54sCIPEgoYGL6OT6RTpgzmhR6Cb0NbRZHbt9xcYB4SzpQx3owTexdB1e5pKa1Zqd1qP FblyiiKorPGIPIXfdY9hcEbVJ+a2gUDktnUKYDA8cplqm4TQYa0Hj5gOrlajFwGTkqKx ed4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783892253; x=1784497053; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=8ArRvRxqeT0i+T/S/4UgCHgV2A40U9Nyq7CnLb6H9r8=; b=UVhrsw190cyQ1ywJQPtC6rBZNs4hxybVtyz4BkAkqUqR0rhR/9LtQEt5aP8XfaLNqx RbIGkA4gvJVBIzMvQBDRRyj++NHASqY2xMcaBMt+kKI8t3DufZi65FGK2DMysYhu+30I c0WcSUjBH+JMbaKlxJNFtTjllO1jxfqYNtXcOpUiCfp3Vl3md9IL/Lwj5bNvUUlWy5X8 fjFWEEUt+0D3w6tXUwjV/AdA01xZwYsi5ljjp1mjo/fOMChoD9fcXl6GzVAhy8S9ddv0 DnUJeGeFxmomWC4eUS4J0VQjc2Oqgu7cZFbk34a0ZuyTGVO58dMCPjUcTb8IRG5TWuHN ngNw== X-Forwarded-Encrypted: i=1; AHgh+RqSy6kTAX7kbzWYeOCvmgWMU4HgWuNw7AENmf9GzwpkUgRn/obuVtv2PzhbXwvGZB4eAopKR94gMQ0fZj0=@vger.kernel.org X-Gm-Message-State: AOJu0YyKCVB8XTdknpJG26smaEK7lH+0ZdVPs5CRYTCb7qgtUtaaT+vb p6uIzi+3KOnHz/qO95HaVSuY2MI9//Bu6FvIlrL/UA/mqvAAyB7VKLmE X-Gm-Gg: AfdE7clYhZ6Nbmapn4tHZvJTOTiVM68rvXbZFI5IBMNQ3N76AG4919Iy/+sDjwOMUi1 8m7fDiExCkP4b5cvv6Ox3Bk40ACg3iwM2xq0C8mNOocykipnk/us9OMNJSExaSph8XEYIKu4IOg AueDCz0yfVzaf9xVpPZcPvIbX9eMCrfJRMyVtEXKp3oVzWOEAfybr2UjJpJ51Kb40+LqhhhPR9a tGUkCGxHFQPgSpMjuKup7py0r1eGIx7Yk6DtcBglGmE4UHVPDQf9kOIZ/9cPaOM9ohk/sLY5Md8 iwUoAqQvD7qBV3wbHliEub1Z7qKoy09BAQkV5sZuGZ5d8vyPeKTErERk09hKx/zK3/Q/Metd6Yt wdBuuPJBhAsXD7qlJ4yNAlZGSUx81hJZFsRk36JbMbYExJfttHj30WIXLprY4DwBNXHDoSdx5Fl PcLsptqoeKJq+knRUCPdgPAgdWXqlLVxWjQtr+EOSTJFd9uIsnoKQmx1Z3a2IqYL+3zD24zPkgS vDcAS5nONje4phTpr5QEB0f3AIail3+nzFwgdV5AE3JdgIGCFZwFW2TLt78xjaxEQ== X-Received: by 2002:a17:902:ecc2:b0:2ca:a03a:29b2 with SMTP id d9443c01a7336-2ce9e59e1e2mr67782255ad.8.1783892253062; Sun, 12 Jul 2026 14:37:33 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bfb7aesm89082605ad.29.2026.07.12.14.37.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 14:37:32 -0700 (PDT) From: Rosen Penev To: linux-ide@vger.kernel.org Cc: Damien Le Moal , Niklas Cassel , Jeff Garzik , Mark Miesfeld , Rupjyoti Sarmah , Prodyut Hazarika , linux-kernel@vger.kernel.org (open list) Subject: [PATCHv4 2/4] ata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered Date: Sun, 12 Jul 2026 14:37:26 -0700 Message-ID: <20260712213728.824420-3-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260712213728.824420-1-rosenp@gmail.com> References: <20260712213728.824420-1-rosenp@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" sata_dwc_enable_interrupts() is called before platform_get_irq() and ata_host_activate(), leaving the SATA controller's interrupt mask enabled without a registered handler. If a later step fails (irq request, phy init, etc.) or if the controller asserts an interrupt during probe, the irq line may fire with no handler, causing a spurious interrupt storm. Move sata_dwc_enable_interrupts() after ata_host_activate() so that interrupts are only unmasked once the handler is registered and the core is fully initialized. Fixes: 62936009f35a ("[libata] Add 460EX on-chip SATA driver, sata_dwc_460e= x") Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/ata/sata_dwc_460ex.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 092272753749..85c5e67e9175 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -1164,9 +1164,6 @@ static int sata_dwc_probe(struct platform_device *ofd= ev) /* Save dev for later use in dev_xxx() routines */ hsdev->dev =3D dev; =20 - /* Enable SATA Interrupts */ - sata_dwc_enable_interrupts(hsdev); - /* Get SATA interrupt number */ irq =3D platform_get_irq(ofdev, 0); if (irq < 0) @@ -1197,6 +1194,8 @@ static int sata_dwc_probe(struct platform_device *ofd= ev) if (err) dev_err(dev, "failed to activate host"); =20 + /* Enable SATA Interrupts */ + sata_dwc_enable_interrupts(hsdev); return 0; =20 error_out: --=20 2.55.0 From nobody Sat Jul 25 22:32:22 2026 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14D40379EEC for ; Sun, 12 Jul 2026 21:37:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892259; cv=none; b=UOih9o8rC+MJ4UG4HuKbtGCuyh5a1VAAbvcCnEeNbZaCIncCQyv6P3k/7Yl0wfYXi84tM3VNS/Ty77LW/mDndNwPgLro+7Nk5pcuB8eG+OuBxnV+aKvK3QsZUwUbcDuA6+s2Uc8C7Zf9Uiya9WR8Mb1BHmAwXACTibRlPGyX2e8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892259; c=relaxed/simple; bh=VO4t2u2qQdmKg/v0j6i3hHOlLjtd8aS3IHBNDIy+lqo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VEdDBQPPgCo9kvGVfTramFuGnQC3W83O9w0N5hk9IlnyJkyqxAiIvIx9L2IWrig5njv3Q3SLNnhRTIFCINMHhTL8Vt69o1ltrmdsTbvbn1oT2qFzJClqF5cbY3X+M7hyDPpnwii+yAy06B2DB+UTB0AbRqjeWtxhDjefq08Zg4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=g74bQ+0u; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g74bQ+0u" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2ce7d2adef4so33555565ad.3 for ; Sun, 12 Jul 2026 14:37:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783892254; x=1784497054; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oKqwIHEOqJ6y+293+N3845Mk/6weuqq1m5qiev+Nu1w=; b=g74bQ+0uLCeQYX7U9SsmKHBt34Ywdm7xAS5X4JzV9ib1uroytC7zpxPkSYUUPTeEnc 5RpGUs0ZOmJDYg9NWk3x1J5wfjaV5w3cJJCVP6ZMhoUFFFFW+c55MGlHNoj4uKB/gCLi Au2eFeC0zyVL630ZU8YKET2AM+/Kt+yDbx6MD3qr7o8cAVHUklmjucZjkVzHWrhQPcSf 3Q/MmCKo22LGtEsW1udE8PgXsWR9Pocnhtc/qKtcDEicyxeNg2lhcTluu2aB/RY6aANK tOeTjqr+pegTkO8hqWn/pfyhhGr1l5kWXKSRdGhTl+qShmrp3+Z+HFXToXVgyfzzHk5y dLqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783892254; x=1784497054; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=oKqwIHEOqJ6y+293+N3845Mk/6weuqq1m5qiev+Nu1w=; b=aN/l7ftm6O2J5LBtxjNc+PpPdZ0s2PxDzYWOrs/eCjQZaaPAxg+ubBO8Ffazwf8nVm 4qM4XlSj5WhT+MwVWCfpblWsPaJncM2J2J+NMjsSUKpNkDLmfzVtrrBms19uumtm8lvE Zx4AX5tsXOUKA99vNgRt4qqFsNHGk8UbYEYRvWAp/3UTY5IebK+WWFB+Jm70DawGgIW9 QJDvusxwSbVfPCLPgKGycfh7Bt+jYUm9yT70gFAI2mFN0P3sm82GNCZc7V9qL6AcEmbT Gyi+Oj7xg6aabeuwWTiOy06lFRIkRvFM3KrT1wCTwhCvsyDaWbnu/8L7//G6R/hQ9Wkh dePA== X-Forwarded-Encrypted: i=1; AHgh+RpB3/UtgitJCN+oRstp952w+z10Ic/bUoHHRTjtlaRTCsZiR2OvfsQ+/Oa5uQ1/kx85fRy+Nb30CHxT3eE=@vger.kernel.org X-Gm-Message-State: AOJu0YxryhOashwgToQwhuxf8BzwRa5HGGtZcKOhzlfP/3g1FRVZWdv/ iAzYw3+CYn0Irk9ed2TG0VPtvI0zGd5YTJorCZuN+66ScMJMxoEoaArR X-Gm-Gg: AfdE7ckD8RUBA9ILR8KNhEu5ILcEp7iMHsAQ8xD64u1m5Hm48welefzVqQRi+qHzddQ 24aKXrXpSYPwPfxV6TnteUqAXkw90sR4W16hM50nFtPzQPK4G1vOB+XtiYiHXj168lBywvhYng7 LfIskXM38e9JHo6uK27VaCtsuIEdso/YD6XYY4SXdxGGFKtv8HTGdxSSXJhnciXW/0Q+cVa5H6w veUEC+AqA8oVK9U4JyD6a4qRj5QBlHZeQmzp0ftu77++Gd6IQDRUA4Z9HYOA/wIlmsOuZjkcnv8 5yVdMS36qE+X72trm7I1kbyn82aU+X7gi0CgczE+03hTcKay9P7efo+VYJiQPiVhag3UvqF536S d0ndHnC2qZIbe2bAoSrdneuEfY+a3oFRTjqn4ql9mzt04XdCDLHO4hRrTGTLtQ3KJkEKlfPowOx AvcjQVb+mSmwCoWvhcK0lEO/3UTkHRR1GW1l9N00Locq+ufIiu4gcoyO745T1TAB8B7a0P4aHDW vMUbTYO4pQcnzhx1Vbi1EfLxoYwNnKbYY1wv+8k9SqpgjKOUH0CaJ6ZOsDpz1JPKQ== X-Received: by 2002:a17:902:db0e:b0:2cc:80c5:73be with SMTP id d9443c01a7336-2ce9f04da7bmr57517825ad.40.1783892254464; Sun, 12 Jul 2026 14:37:34 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bfb7aesm89082605ad.29.2026.07.12.14.37.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 14:37:33 -0700 (PDT) From: Rosen Penev To: linux-ide@vger.kernel.org Cc: Damien Le Moal , Niklas Cassel , Jeff Garzik , Mark Miesfeld , Rupjyoti Sarmah , Prodyut Hazarika , linux-kernel@vger.kernel.org (open list) Subject: [PATCHv4 3/4] ata: sata_dwc_460ex: fix clear_interrupt_bit() clearing all pending interrupts Date: Sun, 12 Jul 2026 14:37:27 -0700 Message-ID: <20260712213728.824420-4-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260712213728.824420-1-rosenp@gmail.com> References: <20260712213728.824420-1-rosenp@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" clear_interrupt_bit() ignores the bit argument and performs a read-write-back of the entire INTPR register. If INTPR uses standard Write-1-to-Clear semantics, this clears every pending interrupt bit, not just the intended one. Coalesced interrupts (e.g. DMAT + NEWFP) would be cleared together, silently losing the second event. Write only the specific bit to clear so that other pending interrupts are preserved. Fixes: 62936009f35a ("[libata] Add 460EX on-chip SATA driver, sata_dwc_460e= x") Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/ata/sata_dwc_460ex.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 85c5e67e9175..bc543a408963 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -394,8 +394,7 @@ static void clear_serror(struct ata_port *ap) =20 static void clear_interrupt_bit(struct sata_dwc_device *hsdev, u32 bit) { - sata_dwc_writel(&hsdev->sata_dwc_regs->intpr, - sata_dwc_readl(&hsdev->sata_dwc_regs->intpr)); + sata_dwc_writel(&hsdev->sata_dwc_regs->intpr, bit); } =20 static u32 qcmd_tag_to_mask(u8 tag) --=20 2.55.0 From nobody Sat Jul 25 22:32:22 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 484BF3438A7 for ; Sun, 12 Jul 2026 21:37:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892259; cv=none; b=sDVfk/Mw/7QO9uAQelU4uv6sfvMY+vEQSuJm8EJfnsEkwcKmt6tEHH1Z+NLWYNbbkt/cOKKgL0d3ZIBrj4yFc9/W5MX2QJ4LdE+2T/6QYYFZhfwqFcwknb0eQbYQzf+hw9dlaz9ujnof+TAo2g/BeMfJ3urYE4Cn/P6+wN9fib0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783892259; c=relaxed/simple; bh=Fr6vIWHzoEK/IHHnS7kMjTaf3CDbcnlP99n14LxLBpc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PVV0yrlxfA77aRe7pnaQCuNbmqTdTC7+uSrPEWujCs4gpebKFUuF7XMY3lWIFpYYkKzBbwbevTDFKX1Nz+0CDrAG7X6JJDFyBKhU9WzwYnAsRq/bGtZy2utF9giT9DAD/S16jjnjCUP1FGgHl0DxoDn2Gn95dlMt98s8vqnmQVY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MZmqRQxZ; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MZmqRQxZ" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2ceb096e675so10770515ad.0 for ; Sun, 12 Jul 2026 14:37:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783892256; x=1784497056; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lfXe2Fd3Jd3U8LKEcL3Fi16GHp5v+t05WNlpCspEzlA=; b=MZmqRQxZgXJjuF9t4ihh2FRCIJ5vmu/FaWURqTVnhmJEY93XOt3DZH9RM/OO8DVGD4 0u609CQ13uNIxyzKfq1I7qiATckU+rLH5XU7TyNJ7zQeXVQ0ekOjfKzsDaL0bleBgC6z 1krMvLJXQL6GRTdlfzKXPaafSaRU7F7eQesI387lW1CS0DCMQtRrF2WkX7jklQERsVS1 lgHRga1ZhkLaD4Zl3UD0u2hHOHi75I1cqt0KsUXDqs0WH2hn8pfhpFLjLRALFDmnGj0Q il09Mw4MueTNtrrlJVSiIdU3fpNkTKKWSMrIu5K6v4/1XG7pGTEkW4HeqldSGgHLZDy5 fSUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783892256; x=1784497056; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=lfXe2Fd3Jd3U8LKEcL3Fi16GHp5v+t05WNlpCspEzlA=; b=ZXnzVe1i0zMdeuAVapJEEl9c0IO/hq4GSTfjFyFEnsZKpEuyMthguqTEgiUtrxoKdW hjLhiYbdjG6L00Mpmy88fKVCm2WgxbY3FfhjFWXQ4/ofcdX750elPb5K/l42Dp29dFXp QSh/JlZMI9Fmwg2rMzD701huK0ymOVTzR/ezRmONtCMvfYyUuh6ZWaxCRwBwq1uQyBKT trKeiqUlbOwDXaN5N3K+PO07ZfkQMV8SM9AIdABCc4aAlSg9rdzgTFInFy6JKZ3ziDcw /dgl5TgrmF2Sbqapnk+Et1DAQB/0vXOQVbGE+fZNBuisyY+1hBiPwFbLgQTbRU+8utH0 1+rw== X-Forwarded-Encrypted: i=1; AHgh+Rq7KwnHJSwnw3MBWjObejyh5bxEN1K4Xfv14GEp/bELO0vel+cjCES843ndWFsfzuN+W3fg2mwxLLxsJqg=@vger.kernel.org X-Gm-Message-State: AOJu0Yzauzh0IW/daFs//HCRtZgYZMcHVp8+d2FouwmPkDNrd8kLIYnz B0++/JrqYMGbMeyIG56G4VLIMK0WXuy+5vQ0LzuCaB+ZW/aGVEfA9DwN X-Gm-Gg: AfdE7cnAMEevcwNHJZpJx2hyrVHKC536v9Qqes9LvSMP22tH6ELvqHPDlWA0RlD0kTp Y7drbmyqLIi4d4YJY9HCxYnxIBPsUomQD1u9n9O1r0rO80l9f1lectBoZaG9ScaYp8Rq713Wit6 7Qu48S/dz2oVCe96vPZmqpp2bzGYz/9Gm0pgUgA9m67SeVfmx6BZofWy1neD/uF+NGU1dggUquU 3HHb7OdyNKdsdareJ5hK0tZEmlYweCo2q3dYZM+67nlWuCha/GmtEhJJEbjaBy62EggdJArRTV8 hwBN8DtWcF3Py9uxA8gRwsL9XJzDp4YTcq9ybi9OkbEbl+QzW3t+6WglcRCv8guTxSbvdIaiYbV 70FZaHzhaUYvpA7UOSAJEvFZArkYanA9MOUoWmZygZHeDSEzu+zu5CK/JFTVTlPGdiXmuswbSKL 66OWgbcu07Da7W1n0H6IBcL/EDr7+X5Z56T4Apd8crqY5DHTHmW/MK6Yyt0+FBjY67JLtqxibfb V/uG5K4tbLrNhYUCeTPUZ+etoJi3Ha9SZHH9ktuTiKRfqgR+Sjv/xxr/WnQLOAZjQ== X-Received: by 2002:a17:902:f68b:b0:2cc:7c36:2c23 with SMTP id d9443c01a7336-2ce9f178346mr60043925ad.43.1783892255667; Sun, 12 Jul 2026 14:37:35 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bfb7aesm89082605ad.29.2026.07.12.14.37.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 14:37:35 -0700 (PDT) From: Rosen Penev To: linux-ide@vger.kernel.org Cc: Damien Le Moal , Niklas Cassel , Jeff Garzik , Mark Miesfeld , Rupjyoti Sarmah , Prodyut Hazarika , linux-kernel@vger.kernel.org (open list) Subject: [PATCHv4 4/4] ata: sata_dwc_460ex: fix infinite loop in NCQ tag completion bit-scanning Date: Sun, 12 Jul 2026 14:37:28 -0700 Message-ID: <20260712213728.824420-5-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260712213728.824420-1-rosenp@gmail.com> References: <20260712213728.824420-1-rosenp@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The hand-rolled bit-scanning loop in the NCQ completion path has an infinite loop bug. When tag_mask has only high bits set (e.g. 0x80000000), the inner while loop left-shifts tag_mask until it overflows to 0. At that point !(0 & 1) is always true and 0 <<=3D 1 stays 0, causing an infinite loop in hardirq context with a spinlock held. Replace the open-coded bit-scanning with __ffs() which correctly finds the least significant set bit and is bounded by the width of the argument. Fixes: 62936009f35a ("[libata] Add 460EX on-chip SATA driver, sata_dwc_460e= x") Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/ata/sata_dwc_460ex.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index bc543a408963..8e3fc713891a 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -607,14 +607,9 @@ static irqreturn_t sata_dwc_isr(int irq, void *dev_ins= tance) status =3D ap->ops->sff_check_status(ap); dev_dbg(ap->dev, "%s ATA status register=3D0x%x\n", __func__, status); =20 - tag =3D 0; while (tag_mask) { - while (!(tag_mask & 0x00000001)) { - tag++; - tag_mask <<=3D 1; - } - - tag_mask &=3D (~0x00000001); + tag =3D __ffs(tag_mask); + tag_mask &=3D ~(1U << tag); qc =3D ata_qc_from_tag(ap, tag); if (unlikely(!qc)) { dev_err(ap->dev, "failed to get qc"); --=20 2.55.0