From nobody Thu Aug 27 01:43:43 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 ARC-Seal: i=1; a=rsa-sha256; t=1779486876; cv=none; d=zohomail.com; s=zohoarc; b=UwDYLC8gqdmbHyUloAvTHllMCBtd6gSEWIkKpfGnn4VQYHoOexi+7bgYEmWjnZjGbKNoU6VEVvfyJOPwwVct48+O/Q64uUGA+1ULqBjdvcOuyF2TUYIUSEtFKI7HGpzUXgsFkjlhHZ4hYuEwKVVUNRJ0tzYA3aK2hjgByfngpDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779486876; 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=Sp6ApL5q1sL0CPUCWNHfpldK4WGffRGwy+oiXna8ogg=; b=DINdG2SQEPlIFY3PqlFN34gSWMzBU9C/ezitwdwM2Q7i0QusmZ1mujMxa8nwFRtbXQxfq4V4QBRAjCET1hmrBmWbMh5g4v91HENbRM9e55LTAmxslpM575dxVTPsb+6HDVbV/iislcl+6GqOERq3cdCahFcil4KTn5fjjcPjFNE= 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 Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779486876745747.3467363683322; Fri, 22 May 2026 14:54:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wQXo7-0000FO-HC; Fri, 22 May 2026 17:53:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXo1-0008S0-6T; Fri, 22 May 2026 17:53:22 -0400 Received: from isrv.corpit.ru ([212.248.84.144]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wQXny-0004v3-QT; Fri, 22 May 2026 17:53:20 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id B73B81AFB83; Sat, 23 May 2026 00:49:21 +0300 (MSK) Received: from think4mjt.tls.msk.ru (mjtthink.wg.tls.msk.ru [192.168.177.146]) by tsrv.corpit.ru (Postfix) with ESMTP id E1AF63B71D2; Sat, 23 May 2026 00:49:25 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tls.msk.ru; s=202602; t=1779486561; bh=j6nKCgrUfzNJ3OObA9atGhYMdqhQy3xF0zUtaJNQB1I=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=werJObn/UphJQknkLca/Oqd92eTT3TfyWN5DsRipIqRyVnz+JDe2iXfDh0dVTVB6+ +JyamjisFpgascQSRzq6Slou0GRYCUMs7IUnHeYlWJdA0vgaxDq/lQDCttezhMGQLM X1+8gJ1k3uYXSYKjGh/JnkzjDiu2JvA3w73Zv6gEBcT2txmMF7jDhlRPIl5fo9FJXc xkSuAENNuzKj3L3+giqN0SHOYNOkH2APlDkfCN2K+3eywvDbx94sjfxkAJhaXhd7l5 T4VVeXC2cfT7R8kG4Wl4jpYIPZ05rOkiEp7hAndSqGDXAYDjYshJoFSKQb4q+QUWmu ej9ZweFpmqwyQ== From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Kevin Wolf , Michael Tokarev Subject: [Stable-10.2.3 141/149] ide-test: Factor out wait_dma_completion() Date: Sat, 23 May 2026 00:49:13 +0300 Message-ID: <20260522214923.807017-42-mjt@tls.msk.ru> X-Mailer: git-send-email 2.47.3 In-Reply-To: References: 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=lists1p.gnu.org; Received-SPF: pass client-ip=212.248.84.144; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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: qemu development 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 @tls.msk.ru) X-ZM-MESSAGEID: 1779486878317158500 Content-Type: text/plain; charset="utf-8" From: Kevin Wolf Signed-off-by: Kevin Wolf Message-ID: <20260421161132.99878-7-kwolf@redhat.com> Signed-off-by: Kevin Wolf (cherry picked from commit 92854c9c7539bdbf4f9c1abb33dd3ba59ff91e58) Signed-off-by: Michael Tokarev diff --git a/tests/qtest/ide-test.c b/tests/qtest/ide-test.c index ceee444a9e..c6dcb2c074 100644 --- a/tests/qtest/ide-test.c +++ b/tests/qtest/ide-test.c @@ -200,6 +200,34 @@ static uint64_t trim_range_le(uint64_t sector, uint16_= t count) return cpu_to_le64(((uint64_t)count << 48) + sector); } =20 +static uint8_t wait_dma_completion(QTestState *qts, QPCIDevice *dev, + QPCIBar bmdma_bar, QPCIBar ide_bar) +{ + uint8_t status; + + /* Wait for the DMA transfer to complete */ + do { + status =3D qpci_io_readb(dev, bmdma_bar, bmreg_status); + } while ((status & (BM_STS_ACTIVE | BM_STS_INTR)) =3D=3D BM_STS_ACTIVE= ); + + g_assert_cmpint(qtest_get_irq(qts, IDE_PRIMARY_IRQ), =3D=3D, + !!(status & BM_STS_INTR)); + + /* Check IDE status code */ + assert_bit_set(qpci_io_readb(dev, ide_bar, reg_status), DRDY); + assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), BSY | DRQ); + + /* Reading the status register clears the IRQ */ + g_assert(!qtest_get_irq(qts, IDE_PRIMARY_IRQ)); + + /* Stop DMA transfer if still active */ + if (status & BM_STS_ACTIVE) { + qpci_io_writeb(dev, bmdma_bar, bmreg_cmd, 0); + } + + return status; +} + static int send_dma_request(QTestState *qts, int cmd, uint64_t sector, int nb_sectors, PrdtEntry *prdt, int prdt_entr= ies, void(*post_exec)(QPCIDevice *dev, QPCIBar ide_= bar, @@ -280,25 +308,7 @@ static int send_dma_request(QTestState *qts, int cmd, = uint64_t sector, qpci_io_writeb(dev, bmdma_bar, bmreg_cmd, 0); } =20 - /* Wait for the DMA transfer to complete */ - do { - status =3D qpci_io_readb(dev, bmdma_bar, bmreg_status); - } while ((status & (BM_STS_ACTIVE | BM_STS_INTR)) =3D=3D BM_STS_ACTIVE= ); - - g_assert_cmpint(qtest_get_irq(qts, IDE_PRIMARY_IRQ), =3D=3D, - !!(status & BM_STS_INTR)); - - /* Check IDE status code */ - assert_bit_set(qpci_io_readb(dev, ide_bar, reg_status), DRDY); - assert_bit_clear(qpci_io_readb(dev, ide_bar, reg_status), BSY | DRQ); - - /* Reading the status register clears the IRQ */ - g_assert(!qtest_get_irq(qts, IDE_PRIMARY_IRQ)); - - /* Stop DMA transfer if still active */ - if (status & BM_STS_ACTIVE) { - qpci_io_writeb(dev, bmdma_bar, bmreg_cmd, 0); - } + status =3D wait_dma_completion(qts, dev, bmdma_bar, ide_bar); =20 free_pci_device(dev); =20 --=20 2.47.3