From nobody Sat Feb 7 07:10:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1766505092; cv=none; d=zohomail.com; s=zohoarc; b=XwTAWuNVS7ppsxDg9H52WQfmu0QSRZql0PVD6qI+PcpykfNyZOe7icliOGJsP0scHc7koCzfIlkgyxCtwsz/smkzuYa8tYEPMN8qm32ubnxoCGGwwfzrdUZtJJ2mnrHbfTXEbZuxlC33EAPz7XZICjrm9BRxzqqVclul0WX1DCY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766505092; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kHxUAdMf/02xSvRvEon3hAM8B6Wx20LfNvnEO0tulrc=; b=ArrdBEqGPX0jNohGLM4b5x0ADokBvj8JTn4VszrOir+I7Tczat501UCBuSXpAfJMuUGx81fVag8xAarDTD6dF3MZdtJg+FQek5JlqdiKHjet1ImjP3XJpBOXryJe9HnU63eUQDozzAlUQdyll1cz+w9C8GNfgafmffnbaE32Qi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1766505092815708.1269941544106; Tue, 23 Dec 2025 07:51:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vY4ey-0008Vq-S1; Tue, 23 Dec 2025 10:50:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vY4ev-0008V5-7H for qemu-devel@nongnu.org; Tue, 23 Dec 2025 10:50:49 -0500 Received: from tor.source.kernel.org ([172.105.4.254]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vY4es-0005Q5-RM for qemu-devel@nongnu.org; Tue, 23 Dec 2025 10:50:48 -0500 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 283046013B; Tue, 23 Dec 2025 15:50:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12795C113D0; Tue, 23 Dec 2025 15:50:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1766505045; bh=/kho4iJSwPdyrQjonMXqdwVBKPpnh7EN0GcAHb9z6aI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o0m/bdrarmHuXizlgihQAx2Mha0dqhNWJYeXzfLUmwWvPaPFknUGLOAUorSdP6ZTN PQB2PP44jqq7P1D+mS/ShTJJS+0SSQXyAazr4ou1ylSWhsVgP8CeV3+rxtQO6vx2VI awcyOefayfEQDSBTsRlc7APReBLd9eBH8SdkUXepLfMDFPR1X/t3iTkLKNFXK9puzE rxlTVInpH3WvKvABBWKDDPwitfirkkJV6x/ubABtBnKAyC+GARsSJi889goHaOKlax l1E1dx1HWDH5wDXsePT1W2IjamCUK08dAOSMv2WX3oHk5QVI731sxHZxxUcZcMASPm ESctC3cmkgBpQ== From: deller@kernel.org To: qemu-devel@nongnu.org Cc: Soumyajyotii Ssarkar , Paolo Bonzini , Helge Deller , Sven Schnelle , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson , Fam Zheng Subject: [PULL 04/12] scsi: ncr710: Fix interrupt related register handing Date: Tue, 23 Dec 2025 16:50:23 +0100 Message-ID: <20251223155031.7110-5-deller@kernel.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251223155031.7110-1-deller@kernel.org> References: <20251223155031.7110-1-deller@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=172.105.4.254; envelope-from=deller@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1766505094766158500 Content-Type: text/plain; charset="utf-8" From: Soumyajyotii Ssarkar These fixes ensure proper interrupt signaling and status register behavior during SCSI operations: - Mask DFE bit in ncr710_update_irq() - Remove manual ISTAT_DIP clearing, let ncr710_update_irq() handle it consistently - Fix SSTAT0 read to clear unconditionally when non zero - Fix SSTAT2 read was returning DSTAT instead - Preserve DFE status bit when clearing DSTAT Signed-off-by: Soumyajyotii Ssarkar Tested-by: Helge Deller Signed-off-by: Helge Deller --- hw/scsi/ncr53c710.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/hw/scsi/ncr53c710.c b/hw/scsi/ncr53c710.c index ac1ca4cef8..0b7734a129 100644 --- a/hw/scsi/ncr53c710.c +++ b/hw/scsi/ncr53c710.c @@ -593,7 +593,7 @@ static void ncr710_update_irq(NCR710State *s) { int level =3D 0; =20 - if (s->dstat) { + if (s->dstat & ~NCR710_DSTAT_DFE) { if (s->dstat & s->dien) { level =3D 1; } @@ -1785,7 +1785,6 @@ static uint8_t ncr710_reg_readb(NCR710State *s, int o= ffset) } s->dstat =3D 0; /* Clear all DMA interrupt status bits */ s->dstat |=3D NCR710_DSTAT_DFE; - s->istat &=3D ~NCR710_ISTAT_DIP; ncr710_update_irq(s); =20 if (s->waiting =3D=3D NCR710_WAIT_RESELECT && s->current && @@ -1811,7 +1810,7 @@ static uint8_t ncr710_reg_readb(NCR710State *s, int o= ffset) return ret; case NCR710_SSTAT0_REG: /* SSTAT0 */ ret =3D s->sstat0; - if (s->sstat0 !=3D 0 && !(s->sstat0 & NCR710_SSTAT0_STO)) { + if (s->sstat0 !=3D 0) { s->sstat0 =3D 0; s->istat &=3D ~NCR710_ISTAT_SIP; ncr710_update_irq(s); @@ -1824,14 +1823,7 @@ static uint8_t ncr710_reg_readb(NCR710State *s, int = offset) ret =3D s->sstat0; break; case NCR710_SSTAT2_REG: /* SSTAT2 */ - ret =3D s->dstat; - - if (s->dstat & NCR710_DSTAT_SIR) { - /* SIR bit processing */ - } - s->dstat =3D 0; - s->istat &=3D ~NCR710_ISTAT_DIP; - ncr710_update_irq(s); + ret =3D s->sstat2; break; CASE_GET_REG32(dsa, NCR710_DSA_REG) break; @@ -1902,7 +1894,6 @@ static uint8_t ncr710_reg_readb(NCR710State *s, int o= ffset) if (s->dsps =3D=3D GOOD_STATUS_AFTER_STATUS && (s->dstat & NCR710_DSTAT_SIR)) { s->dstat &=3D ~NCR710_DSTAT_SIR; - s->istat &=3D ~NCR710_ISTAT_DIP; ncr710_update_irq(s); } break; --=20 2.52.0