From nobody Tue Feb 10 09:10:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; spf=pass (zoho.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=1572108538; cv=none; d=zoho.com; s=zohoarc; b=KLH+yLJf9EgsMpdzFrQwoB3weDeN6cCQSgdgE4KwEEEfXto/V4qF18n2P/ISZt8rb7rY9sVnj9O+Mk04ydRR88LjAgbcmYv2JlrX27/KlmbjnTJbudchrnMwGA7UwJkFM6RTDh9zYqs7F+vEwRfHzbaMstzhmuZK1iH7FPT6T00= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1572108538; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4S2Is0kx01nEpBUEiJTdnkASu3eM92Dj3XrxfvCHRmU=; b=R3XhOwqjURPHelrDKecj3NwEBCG27XRb7m+zCO16T2IJu/KQi/T8hKkLDpgcDy1Ws5sQ3gqEHeFglHkqp77E1AU6B+Ig9v/RePFYu7wy5iuO8OnQ2y11XFcL2Hn6pRhhNLhMvPpfIN4zm8h3AAwHsPjh1EYfqp6pF3qvirYQllw= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1572108537966445.55149839021306; Sat, 26 Oct 2019 09:48:57 -0700 (PDT) Received: from localhost ([::1]:40824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOPFE-0006qj-Kt for importer@patchew.org; Sat, 26 Oct 2019 12:48:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32824) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOPCm-0002Vm-8j for qemu-devel@nongnu.org; Sat, 26 Oct 2019 12:46:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iOPCl-00011g-9X for qemu-devel@nongnu.org; Sat, 26 Oct 2019 12:46:20 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:42253) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iOPCl-00010s-03; Sat, 26 Oct 2019 12:46:19 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N95mR-1htMEY0ng7-0167vV; Sat, 26 Oct 2019 18:45:53 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PATCH v15 01/11] esp: move handle_ti_cmd() cleanup code to esp_do_dma(). Date: Sat, 26 Oct 2019 18:45:36 +0200 Message-Id: <20191026164546.30020-2-laurent@vivier.eu> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191026164546.30020-1-laurent@vivier.eu> References: <20191026164546.30020-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JL7/f9MYlM3Ni5d31Jhi5pzDIukczD49yhLrr2OrxXJ94USFtj/ Ol2/M3csHzbDC2poCE0yL3k8YQNTywU1H6kddRiNnNr5Z1FBUP7EkTCKfbcpHpxlyPflNxC 6wizxX3OO3C/qIOXrE8WXaVF1B4kC97tciCJ5HJZBSI0xFoqv+qsC4Xmo06cTkqBZ1ncOia kHKoBtteFCus1/HxKrQHA== X-UI-Out-Filterresults: notjunk:1;V03:K0:x8dXg1xNW6g=:SagtE7GgKFBXmz5bPI/u/H GpqpoKvkE+5QC7yV/cEcgbUrDsJlSnnybwoL5ttzBbs4KITHLH6E7C/RCewRQHe+U3fFW7LPj eU4Ci4bEbLUpAoQ9Dd9ht52sRT+C/pvNcpUrXK2K14fYffoIKh7B6mVqnsP/NqMzErFOeR5YS zbjoBBiP84h/AHhthdCqWAJvXo5zjvgdqrfejCkpDTkAiMD+ZIpF6qSqGLu9A6aAJy6rTjDWP j9mtSJx6YypGi3DmNDllUgsAlOxYOfzvp0XMwVnbpZ0SaGtB++Wezpz8yYaq+hJC/vUuTqoHn Pkc2JYCUYqq357zNo9ye76a6syn9hXm/fdyOUsk+nNfEo0Idgdz3nhPYhl+/q6ITjTPjwj0WP j3nG/Xt0h4frEsQ10ZEYbOxe10YbRjY92IngtRSwbgJHY12En6cLttmB//qoIiRJMN2RFZgIX DGRz5eYUkTyQCzyO0bEdKvh00OGaA0swA2XncfBQuPhVCyWUVF0HiSHi1v1MfrIPq4oSM4o/f ZuWhwEGkjBDOH7EH/IVQiuxlhq4v9q2XEAZyY47Yff7sT4Z52gD7FsRzEtmH7aWYF00CE3spq y+CbUI5d0+ek/BJBTl9LpehuG3GBdohpp4c2PDtSibFvcvpJ1RxvzPRsB8oEaCH/HkuAjdqFj Dhjmdq34YFXtTzCjTMUXJrnyc/WOk15Z7ZjrcovsGv34RYb4nfJoQsBvPxKTilFR5oN0aFzYQ TCaWHkT4Jb053p8ND+TneuKDyoXR/ATLzAT3E6dkRyAzRguzr/WXE+iCpmQ3yXn8MaX6G4fz+ 9lEJziNnxf85AtuIfBAUHo3CT/UU9gcgDzJTKynjPGrXMsujH8rKOCdVnCiaUNtH7MUh3gcwv XrEtxCZTZFCf9RJwZkJg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.135 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , qemu-block@nongnu.org, Thomas Huth , Jason Wang , Mark Cave-Ayland , Laurent Vivier , "Dr . David Alan Gilbert" , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Gerd Hoffmann , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Max Reitz , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" To prepare following patches move do_cmd and DMA special case from handle_ti() to esp_do_dma(). This part of the code must be only executed with real DMA, not with pseudo-DMA. And PDMA is detected in esp_do_dma(), so move this part of the code in esp_do_dma(). We keep the code in handle_ti_cmd() in the case no DMA is done. Signed-off-by: Laurent Vivier Acked-by: Paolo Bonzini --- hw/scsi/esp.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 841d79b60e..09b28cba17 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -249,10 +249,19 @@ static void esp_do_dma(ESPState *s) =20 len =3D s->dma_left; if (s->do_cmd) { + /* + * handle_ti_cmd() case: esp_do_dma() is called only from + * handle_ti_cmd() with do_cmd !=3D NULL (see the assert()) + */ trace_esp_do_dma(s->cmdlen, len); assert (s->cmdlen <=3D sizeof(s->cmdbuf) && len <=3D sizeof(s->cmdbuf) - s->cmdlen); s->dma_memory_read(s->dma_opaque, &s->cmdbuf[s->cmdlen], len); + trace_esp_handle_ti_cmd(s->cmdlen); + s->ti_size =3D 0; + s->cmdlen =3D 0; + s->do_cmd =3D 0; + do_cmd(s, s->cmdbuf); return; } if (s->async_len =3D=3D 0) { @@ -373,8 +382,7 @@ static void handle_ti(ESPState *s) s->dma_left =3D minlen; s->rregs[ESP_RSTAT] &=3D ~STAT_TC; esp_do_dma(s); - } - if (s->do_cmd) { + } else if (s->do_cmd) { trace_esp_handle_ti_cmd(s->cmdlen); s->ti_size =3D 0; s->cmdlen =3D 0; --=20 2.21.0