From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15058244845111014.9414291232013; Tue, 19 Sep 2017 05:34:44 -0700 (PDT) Received: from localhost ([::1]:42579 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHjf-0007RI-Il for importer@patchew.org; Tue, 19 Sep 2017 08:34:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59551) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHev-0003ey-PC for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHer-00059E-Va for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:49 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:33609) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHer-00058k-QV for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:45 -0400 Received: by mail-wr0-x243.google.com with SMTP id b9so2160707wra.0 for ; Tue, 19 Sep 2017 05:29:45 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=Z76u6uJK4H2QtI+pnHduG+/CMgVgds+nvBw0zfof5HM=; b=GDwYydO8MzFjSy1VPbcK9XKuvFbIIxr9YKPeJIOpodrF52EL8V4wZFbr4o7zRO9q8G +CPX5oqQdaH0uqXHVnga0IlSAN1X1+GT14nT5UVyVyWiIVAdeQ5Bug36OrSZln0t/DKF oyYB0lgHR80qecWUuLXXDTD3rhg/oYwjpmEiX9cOFLOolLDx2xz8UfjpTyQhWx8rSjyS 5d9mzufEtd8sp/I5p+xJnfpNP8w7IL2u6QMZrdYF3LzGwZMM0tflL4AhCm7ZA2PpjB2Q RGjZepXySaL1BR6jrFTWJj0EDBglQ4Ewpj2qO/8b0jUCldGh/xxA85ojpz3SKAYf0wvG nxyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=Z76u6uJK4H2QtI+pnHduG+/CMgVgds+nvBw0zfof5HM=; b=RC4+Dukhs8uCT56SwSqY+vx6dhGEqQzxWaZYWu1itRKiCIMJfpd3MY6fawOzkKGc1W IzWDvPPmeevwFBPN5irIXtJf1qxdwyHAtRVQY4MxvSjyorr8PlBxXEH8kOEWa4Mlo8xe 4MRQTpDipOoMivWJBpYlOjNkFKMswWTdRaNk5NRrMKjGv1otBtJFdzsiLbji5hmhhA5z y0bEpsBKxTm+ejv1nYAt88ZfdEm58rF7/tYJYBF3/RYT62y8EgcE8uh1P3L9D5t+2mVI U9gBKcM61G8fwvTDRxB99uZFliIhBwpRYm33nFin76RXGcTSfktrrwmBLrBdNgP7JhWi lvHw== X-Gm-Message-State: AHPjjUiW4QYGGWm43o+kLQKkCPPm1NEV3z52/RWzvUr/KV5D0Mw40iZs HmaG3kYsgOPK1odJLzflB/wRU9dD X-Google-Smtp-Source: AOwi7QAVJZdPuc5l/rTh/omgBjzn243ZRcKrb8L4s5C9kxFf9OqBuc+aHF9TAB+p1nit02JnAAaxVg== X-Received: by 10.223.196.73 with SMTP id a9mr1270662wrg.144.1505824184494; Tue, 19 Sep 2017 05:29:44 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:50 +0200 Message-Id: <1505824179-21541-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PULL 01/50] target/i386: fix pmovsx/pmovzx in-place operations X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joseph Myers Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Myers The SSE4.1 pmovsx* and pmovzx* instructions take packed 1-byte, 2-byte or 4-byte inputs and sign-extend or zero-extend them to a wider vector output. The associated helpers for these instructions do the extension on each element in turn, starting with the lowest. If the input and output are the same register, this means that all the input elements after the first have been overwritten before they are read. This patch makes the helpers extend starting with the highest element, not the lowest, to avoid such overwriting. This fixes many GCC test failures (161 in the gcc testsuite in my GCC 6-based testing) when testing with a default CPU setting enabling those instructions. Signed-off-by: Joseph Myers Message-Id: Signed-off-by: Paolo Bonzini --- target/i386/ops_sse.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/target/i386/ops_sse.h b/target/i386/ops_sse.h index 16509d0..d578216 100644 --- a/target/i386/ops_sse.h +++ b/target/i386/ops_sse.h @@ -1617,18 +1617,18 @@ void glue(helper_ptest, SUFFIX)(CPUX86State *env, R= eg *d, Reg *s) #define SSE_HELPER_F(name, elem, num, F) \ void glue(name, SUFFIX)(CPUX86State *env, Reg *d, Reg *s) \ { \ - d->elem(0) =3D F(0); \ - d->elem(1) =3D F(1); \ if (num > 2) { \ - d->elem(2) =3D F(2); \ - d->elem(3) =3D F(3); \ if (num > 4) { \ - d->elem(4) =3D F(4); \ - d->elem(5) =3D F(5); \ - d->elem(6) =3D F(6); \ d->elem(7) =3D F(7); \ + d->elem(6) =3D F(6); \ + d->elem(5) =3D F(5); \ + d->elem(4) =3D F(4); \ } \ + d->elem(3) =3D F(3); \ + d->elem(2) =3D F(2); \ } \ + d->elem(1) =3D F(1); \ + d->elem(0) =3D F(0); \ } =20 SSE_HELPER_F(helper_pmovsxbw, W, 8, (int8_t) s->B) --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824302188718.6474050254111; Tue, 19 Sep 2017 05:31:42 -0700 (PDT) Received: from localhost ([::1]:42569 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHgj-000524-08 for importer@patchew.org; Tue, 19 Sep 2017 08:31:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHev-0003ev-OB for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHet-00059p-3m for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:49 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:33609) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHes-00059V-T7 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:47 -0400 Received: by mail-wr0-x244.google.com with SMTP id b9so2160735wra.0 for ; Tue, 19 Sep 2017 05:29:46 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/H+ZQbe2doe7HI1QEq7Y9aa4WX0rwPaLR11y6A8rgcg=; b=bo/MzAzYc0sdk8IXksELZWyQh71nqzRVSI2D43CRvKKnv48kbIF6xvZcfIp+rftyYi ZltNCAazpsje8q4Pr8pzA4OWv36BEzJ/3AZfpAm/QbrBvpd4kaAQqN0b75X1NNkPPY04 Vz/lBtlNXqAPVwf2MP5q8QtjYZpSS7GKOKfpUBb2ToiaAA3HBGBZuL8/hT0PWfqLYpe9 s2K5RhqngZc4+9fd2XIVeckmHU2kq2HVLvCShblBsPeoFYIfCa8HJxVWX94ymu/qh8wA lAYf0vKGghXQjqEHVPzsQ66l75twasK1PMxCeY0/lqd0idwPkSOnsO6MtQAWZ34QT9OH qzXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/H+ZQbe2doe7HI1QEq7Y9aa4WX0rwPaLR11y6A8rgcg=; b=U465BgULSzMEGKqubSZUyEuVj7DLYqW60MR4G1oUQPpXDoPqFFDG94wKq85f40oFDS 2DUmwzc0j1LAaCO4hkvAFlz1ZGLy3E15f7ajScAE532QBKHt40n99DC2w6dpzeTnqOQ4 x2wk+2lNbf8goUSEXcbJGdxa9wyU7DQxhX+pDNlTFTfzK1VWle7I9SVB8oPRIRw4dTLt SKAyfN9FjIDajTWCFGWX4oTe5A+p5XMStTD2zmkdrqTqHKhwVOglbctTlWyJR2+GEs8C xH3UcybMW2hghAGzoMqvIL9pOCBY+hdLDfjFMk44kX7ftDAyHHElNvxnpaSYnOrF/mxk hxWA== X-Gm-Message-State: AHPjjUip6QvDLTKlqx3/ZKRnNVUi8Mq4cAapBjGOKPmuwUhf+I9jtUGD P2Y8SB0f++bBnR78oTbAzuqVA7MX X-Google-Smtp-Source: AOwi7QCAA0T/CrBeXHWJ/CUmLgkXNEO2EivSptQBHu/Q19BnRk9y3b0gwWhDjvNtcSNA23a9r0heAA== X-Received: by 10.223.182.137 with SMTP id j9mr1271001wre.150.1505824185569; Tue, 19 Sep 2017 05:29:45 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:51 +0200 Message-Id: <1505824179-21541-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PULL 02/50] target/i386: set rip_offset for further SSE instructions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joseph Myers Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Myers It turns out that my recent fix to set rip_offset when emulating some SSE4.1 instructions needs generalizing to cover a wider class of instructions. Specifically, every instruction in the sse_op_table7 table, coming from various instruction set extensions, has an 8-bit immediate operand that comes after any memory operand, and so needs rip_offset set for correctness if there is a memory operand that is rip-relative, and my patch only set it for a subset of those instructions. This patch moves the rip_offset setting to cover the wider class of instructions, so fixing 9 further gcc testsuite failures in my GCC 6-based testing. (I do not know whether there might be still further classes of instructions missing this setting.) Signed-off-by: Joseph Myers Message-Id: Signed-off-by: Paolo Bonzini --- target/i386/translate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/i386/translate.c b/target/i386/translate.c index de0c989..a8986f4 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -4076,10 +4076,11 @@ static void gen_sse(CPUX86State *env, DisasContext = *s, int b, if (!(s->cpuid_ext_features & sse_op_table7[b].ext_mask)) goto illegal_op; =20 + s->rip_offset =3D 1; + if (sse_fn_eppi =3D=3D SSE_SPECIAL) { ot =3D mo_64_32(s->dflag); rm =3D (modrm & 7) | REX_B(s); - s->rip_offset =3D 1; if (mod !=3D 3) gen_lea_modrm(env, s, modrm); reg =3D ((modrm >> 3) & 7) | rex_r; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824818585742.7444800879547; Tue, 19 Sep 2017 05:40:18 -0700 (PDT) Received: from localhost ([::1]:42607 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHp3-0003h7-Qm for importer@patchew.org; Tue, 19 Sep 2017 08:40:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHev-0003ex-Oi for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHeu-0005AM-38 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:49 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:37660) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHet-00059z-TB for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:48 -0400 Received: by mail-wr0-x241.google.com with SMTP id u48so2145446wrf.4 for ; Tue, 19 Sep 2017 05:29:47 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=iz60YAwBcN8bfMCwQJcnT4ZKksCvSg4Go73wCObwLI4=; b=JK/+6h3PD4KEEhuacSamW11V6p13xBHe2dymo6nWoOAwYzzW/V0BgjkOWbDDnnr4US 8CxOEx+pryFydaq9/JHJzPtQ2+4lY9Sh+gCytQkZbrQV6vyI7i2+yMhevn7SDmR41pki 6OhbpCrntcdFNqYkJvfrL2vAjlHytLxTRXnR9ftPkRocLH59woSc8y9AYt3ihSq/KhR1 LATSDftOvSKoeSmDD/ZLDUQw1bLvPG95jJZquS/d0ldMj4PiSOoEyR+Q//YoN0U+CEut l/8GqOfc/E8VQ9LOV7AyIOPFdqq/beljfp8JC8/gA/1ANjKwiaK5YELX1ehg4YSqcKgZ +lmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=iz60YAwBcN8bfMCwQJcnT4ZKksCvSg4Go73wCObwLI4=; b=ilja2sQyiN5Nvs4D6rbLmGDNObYM5yXAaXemRobWbv2bP9T6Ss7NOB3G1L2liWD4YC 5XY69+rxF3rOoL/TYvNg/yTkp06yX38SyXL4th5vnguf+GJ2Wkfa1M3mjmsTUR2A8kRH KJBXSmNQWiYMXJXFQe/Q2XxUvQJKzgBt8jLEjUBKdq7RWAutW2sqXZOuBmH9FVHOYeDk F6FRkynUCGgRPYnx8+3S+PLB7RHMbTWQipd+ECrnrv9hGSuw2P0UV8yDK6hICkZTEg18 wmwe5KjVthg4tr+//WhM/2Bnj0/5E3x+4jw1DSVDTYr8zq/8fFCkLVd02qH4Tju7fuhC j9ow== X-Gm-Message-State: AHPjjUhzzpfiWCr8C0Bm0XLGDFuvxdpNFKQ6PcTVi9r/6gyBfBrDjIOR 4l57Yq0QpHhrvldFiJTvtmlpw/fP X-Google-Smtp-Source: AOwi7QDlWS6eAit629+k9kGjW2vj2cidb1AZf4I9SFuzdiQI5hFwUFLs1OUBoahR4MG3gcCUZHjEbw== X-Received: by 10.223.139.211 with SMTP id w19mr1218786wra.199.1505824186549; Tue, 19 Sep 2017 05:29:46 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:52 +0200 Message-Id: <1505824179-21541-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 03/50] target/i386: fix packusdw in-place operation X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joseph Myers Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Myers The SSE4.1 packusdw instruction combines source and destination vectors of signed 32-bit integers into a single vector of unsigned 16-bit integers, with unsigned saturation. When the source and destination are the same register, this means each 32-bit element of that register is used twice as an input, to produce two of the 16-bit output elements, and so if the operation is carried out element-by-element in-place, no matter what the order in which it is applied to the elements, the first element's operation will overwrite some future input. The helper for packssdw avoids this issue by computing the result in a local temporary and copying it to the destination at the end; this patch fixes the packusdw helper to do likewise. This fixes three gcc test failures in my GCC 6-based testing. Signed-off-by: Joseph Myers Message-Id: Signed-off-by: Paolo Bonzini --- target/i386/ops_sse.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/target/i386/ops_sse.h b/target/i386/ops_sse.h index d578216..05b1701 100644 --- a/target/i386/ops_sse.h +++ b/target/i386/ops_sse.h @@ -1655,14 +1655,17 @@ SSE_HELPER_Q(helper_pcmpeqq, FCMPEQQ) =20 void glue(helper_packusdw, SUFFIX)(CPUX86State *env, Reg *d, Reg *s) { - d->W(0) =3D satuw((int32_t) d->L(0)); - d->W(1) =3D satuw((int32_t) d->L(1)); - d->W(2) =3D satuw((int32_t) d->L(2)); - d->W(3) =3D satuw((int32_t) d->L(3)); - d->W(4) =3D satuw((int32_t) s->L(0)); - d->W(5) =3D satuw((int32_t) s->L(1)); - d->W(6) =3D satuw((int32_t) s->L(2)); - d->W(7) =3D satuw((int32_t) s->L(3)); + Reg r; + + r.W(0) =3D satuw((int32_t) d->L(0)); + r.W(1) =3D satuw((int32_t) d->L(1)); + r.W(2) =3D satuw((int32_t) d->L(2)); + r.W(3) =3D satuw((int32_t) d->L(3)); + r.W(4) =3D satuw((int32_t) s->L(0)); + r.W(5) =3D satuw((int32_t) s->L(1)); + r.W(6) =3D satuw((int32_t) s->L(2)); + r.W(7) =3D satuw((int32_t) s->L(3)); + *d =3D r; } =20 #define FMINSB(d, s) MIN((int8_t)d, (int8_t)s) --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824309152820.5275836861174; Tue, 19 Sep 2017 05:31:49 -0700 (PDT) Received: from localhost ([::1]:42571 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHgq-00058f-Af for importer@patchew.org; Tue, 19 Sep 2017 08:31:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59620) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHez-0003gV-9Q for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHev-0005Am-6b for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:53 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:36436) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHev-0005AS-0T for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:49 -0400 Received: by mail-wr0-x241.google.com with SMTP id g50so2140839wra.3 for ; Tue, 19 Sep 2017 05:29:48 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=vAqTN1ZKHBBzcgX6glvzSDO0Y0MbFf3zePy5hVOXcp0=; b=Dg5u7WCAqrGGIwLErrTuF8mSACRFvC/uZNknWgS4l6s3VvU/aNsblqGNOJfZ6HPErX qdDk93kudpwBWnpxdAzgtiKHaliYpN1g30xskJc2EfOiJQttdO0cLCDV43nfNJFs5kzT glMuXedFl6f6g+Mm+5axHMzPBvvjwyWy6qmYkZIXsV4OF/P44SgYcADuvWYz+pWt3dnX R8j6T2uSLj+SQSOPvNyLrFRJ/5JAfpfgfnzi/7rFW0qXDxDv5yNlzfoBLSV+7ZJEo6Pk hfQalxv8B7JWjLorSbz9eazLrIfYTVZubq2Cc4WW2zJ+elyRM8YX/+zyf0+BQkBKIX7b xykA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=vAqTN1ZKHBBzcgX6glvzSDO0Y0MbFf3zePy5hVOXcp0=; b=Wt2ri6dchAE/Dw54hKHleUaTKdtNAChP+1QsRrXPGdBNZYOCqpgXdLpCthsEafgcCm MlzhMpT+efiOe0sXRlLrxxzmQ2cosiA8QAtn9JOOfL6xa3QwdL0nxbAVl3+yYOPSo+qk koWfgvCJ4vJv9xfoNi1eErFTbrSc4VtdOKDzaN+5U4KDjwuPOhLZ+KRVcm0NwWi5yNCF 2AYfZIej7N7eO05ZCDaSreM/WhZzq5aFxEQs+AnhV84hhSzSD2v41YJ0cRjI3/onN7wP d8Yj0fJB7lSW0LDNGFPYl0wPmRZg9mR9vUb/pHg4kQLxalFCGzDfxYZtNAx3ID7xx6Zk r0Aw== X-Gm-Message-State: AHPjjUjmyvS8n0PTgf8n7Hx6JDCjEXkYd9Xs/mMWUfqp/ax8W0YAmKeN b3bHR5PbY4FXUzMMQW+x+FMYmz7R X-Google-Smtp-Source: AOwi7QDhS4Jn+UA9J5LVhqLKkxN6RIOhZPzB1yLU6U5euFWgaWzg4f9e3hEeU9vKh289G3bxLyddMA== X-Received: by 10.223.178.193 with SMTP id g59mr1391182wrd.0.1505824187732; Tue, 19 Sep 2017 05:29:47 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:53 +0200 Message-Id: <1505824179-21541-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 04/50] target/i386: fix pcmpxstrx substring search X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joseph Myers Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Myers One of the cases of the SSE4.2 pcmpestri / pcmpestrm / pcmpistri / pcmpistrm instructions does a substring search. The implementation of this case in the pcmpxstrx helper is incorrect. The operation in this case is a search for a string (argument d to the helper) in another string (argument s to the helper); if a copy of d at a particular position would run off the end of s, the resulting output bit should be 0 whether or not the strings match in the region where they overlap, but the QEMU implementation was wrongly comparing only up to the point where s ends and counting it as a match if an initial segment of d matched a terminal segment of s. Here, "run off the end of s" means that some byte of d would overlap some byte outside of s; thus, if d has zero length, it is considered to match everywhere, including after the end of s. This patch fixes the implementation to correspond with the proper instruction semantics. This fixes four gcc test failures in my GCC 6-based testing. Signed-off-by: Joseph Myers Message-Id: Signed-off-by: Paolo Bonzini --- target/i386/ops_sse.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/target/i386/ops_sse.h b/target/i386/ops_sse.h index 05b1701..9f1b351 100644 --- a/target/i386/ops_sse.h +++ b/target/i386/ops_sse.h @@ -2040,10 +2040,14 @@ static inline unsigned pcmpxstrx(CPUX86State *env, = Reg *d, Reg *s, } break; case 3: - for (j =3D valids; j >=3D 0; j--) { + if (validd =3D=3D -1) { + res =3D (2 << upper) - 1; + break; + } + for (j =3D valids - validd; j >=3D 0; j--) { res <<=3D 1; v =3D 1; - for (i =3D MIN(valids - j, validd); i >=3D 0; i--) { + for (i =3D validd; i >=3D 0; i--) { v &=3D (pcmp_val(s, ctrl, i + j) =3D=3D pcmp_val(d, ctrl, = i)); } res |=3D v; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824484955893.8284524569424; Tue, 19 Sep 2017 05:34:44 -0700 (PDT) Received: from localhost ([::1]:42580 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHjg-0007Rl-1S for importer@patchew.org; Tue, 19 Sep 2017 08:34:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59599) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHex-0003fA-7S for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHew-0005Bs-8q for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:51 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:35295) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHew-0005B2-2U for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:50 -0400 Received: by mail-wr0-x242.google.com with SMTP id n64so2146678wrb.2 for ; Tue, 19 Sep 2017 05:29:49 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=CSvZlGIZzsdXL+E94qqYXst7666XE5KC9OTW+O7jOmU=; b=p3N+vx3HklpmCb58jotQGs2OJ+GrdkefErzbXBu/vbr9htT9pWQ7+iGu53jDSa/kQd hIIMQVeh+Qi993r1HhPkbe3lbTtrYSUP8sYic5Y/byS0t6mLp9azAs0TuI562MmvQJYf VBGfuVRcukXfTy7I3ufdChDiXom34M0t4Jc0gF2LFU99OLD6cvVWFZPTaqwmlCaXRMib c8Ovrekd3DQ6Z5gw/EuVpUn6RBDmBiQr3ZEkGyMOSBFpW2Wr2ZTzQoxKQC5U5zW/+Y1b 6QLmNhR6DmIJxm/mjWzNw6TS+TiUIBsXj9UFdBKXD8vIfeqgJMmuAnyLqD8DSLl9QESu TKAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=CSvZlGIZzsdXL+E94qqYXst7666XE5KC9OTW+O7jOmU=; b=g864a+TttHa+OU9G127ll2oCyB5WdQwGFF+Zs+2nceqCTYSvTLmDPeZQ8ZhBkIGGXK jqAC+sKa6iLgHHUG/oeERpXOuRLNIb+1jCQsPNHkARfecF/4G+FakEKWiHgdsNN9PIMM e1cQHeVN7LHuGMyynWhOSMbODsYNAC52fOXRjdc6miPmcHwkkTgs6jqhfPKwLBor81fX GR01ZAr319/rm2XHN1kc/Xg1qBxSbHa8Fywav3EzvDsjDHLKADIZL/NJD7oOL6f5RKp9 8/uoR2RSbM1+lO8tcVVSz8toIYBfho92Qz9Pdw8aF8wU1gSllN3XSF9cA8gjq73b8MmZ wDkg== X-Gm-Message-State: AHPjjUga0oyiYUEdLPP4/h1hDUFx0XLVg3Bz3024V4g9yFQ8J8E7AlSM Me9PtuAMDkT2bEwZQ6/L06oFKlOv X-Google-Smtp-Source: AOwi7QCMfUm/+sZQ42VDpL8MJu4JyROpo01LHNeoCvFxXUfheV0jNLNnIc7W9IP+sUpWOOgGBh/raA== X-Received: by 10.223.135.66 with SMTP id 2mr1281098wrz.208.1505824188688; Tue, 19 Sep 2017 05:29:48 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:54 +0200 Message-Id: <1505824179-21541-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PULL 05/50] target/i386: fix phminposuw in-place operation X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Joseph Myers Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Joseph Myers The SSE4.1 phminposuw instruction finds the minimum 16-bit element in the source vector, putting the value of that element in the low 16 bits of the destination vector, the index of that element in the next three bits and zeroing the rest of the destination. The helper for this operation fills the destination from high to low, meaning that when the source and destination are the same register, the minimum source element can be overwritten before it is copied to the destination. This patch fixes it to fill the destination from low to high instead, so the minimum source element is always copied first. This fixes one gcc test failure in my GCC 6-based testing (and so concludes the present sequence of patches, as I don't have any further gcc test failures left in that testing that I attribute to QEMU bugs). Signed-off-by: Joseph Myers Message-Id: Signed-off-by: Paolo Bonzini --- target/i386/ops_sse.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/i386/ops_sse.h b/target/i386/ops_sse.h index 9f1b351..ed05989 100644 --- a/target/i386/ops_sse.h +++ b/target/i386/ops_sse.h @@ -1710,10 +1710,10 @@ void glue(helper_phminposuw, SUFFIX)(CPUX86State *e= nv, Reg *d, Reg *s) idx =3D 7; } =20 - d->Q(1) =3D 0; - d->L(1) =3D 0; - d->W(1) =3D idx; d->W(0) =3D s->W(idx); + d->W(1) =3D idx; + d->L(1) =3D 0; + d->Q(1) =3D 0; } =20 void glue(helper_roundps, SUFFIX)(CPUX86State *env, Reg *d, Reg *s, --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824649910105.7245489876932; Tue, 19 Sep 2017 05:37:29 -0700 (PDT) Received: from localhost ([::1]:42596 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHmL-0001PZ-3Q for importer@patchew.org; Tue, 19 Sep 2017 08:37:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59612) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHey-0003fq-Kt for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHex-0005Cq-AO for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:52 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:34338) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHex-0005CH-3O for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:51 -0400 Received: by mail-wr0-x241.google.com with SMTP id k20so2149239wre.1 for ; Tue, 19 Sep 2017 05:29:50 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=zqYZM98aGIApT7oS63tPo/APdeFSHjm3rmdSOE0I2rk=; b=j/qKMcR9PsZsP5DtJqS1w9sNjbaR2kT3VGRPmlBhEcF4hErbuK2w/OR92GMUTBTJDx /lYJp7fjbrtUnSEu+8MpMklXillF55NqkDaracCddlI5gERzgUT7TtLyw4CC9m5EVRhf spGlFA/HEWot4rp7ZzxND8mmKAWV+UhhVmm6PguhVChEH2eGTkwAwSWBd1SVjQE1rZXk wbaLo5MEP14OTB1iVLi35lHNc4Kauiz8rcldRCfiftUrtH+lDdeAskWo5TDwuS+0Q+kH LVgvxNCUt9iqSL6AT7tsN7Qq0+CuzL0/Rt8stg9DGSQnHM1yKmNu8anRLMaJr7fWrcNy jR1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=zqYZM98aGIApT7oS63tPo/APdeFSHjm3rmdSOE0I2rk=; b=kAQ8KiTgd48HJB/tTjd37xyJ38XtP3InRNeQ1TQFyvBOvnEe77uSdGs2P75fgP7IR0 ZmN4ZpKKo7V9aZuF1vDhV0KVYm+BPbmrHm7GaA1Uccmbu5KmFlO7U2xxJO+YBKKdwIl2 WYbrvYc7yHezD1x+UvQAmJztrUh5/iHbZZ9FN5m+SohxOT1dm8hzqZ21cvdtKQsbOC68 V1EQu3ePHFFhcszjv1EvEy6oNT2b/movQc/KCp+P9ZvtLqYXWUtpGkE1sH8trlXAsdL4 s8s0KjU6uyE61/VszUBoojUtsGaw7LHrSLWNbBEnglXsqMYScJiozF+smifROdCQuAZz mZUA== X-Gm-Message-State: AHPjjUjmPm8ZeKf9rdKUYeHpgzFP0eFNXBn1MZTW7ZVxYfSEkHPuDtIy d4k75lKJKdn0cH35pP5OkXl0i6E1 X-Google-Smtp-Source: AOwi7QD7MA5VS4ffT2QD8ZmUBw8cZuVnGE1AKfW6j80JVmlYGyOMzhCvq4yY/F+61EJn5xl3yp2ksQ== X-Received: by 10.223.131.99 with SMTP id 90mr1309841wrd.198.1505824189842; Tue, 19 Sep 2017 05:29:49 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:55 +0200 Message-Id: <1505824179-21541-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 06/50] virtio-scsi: Add virtqueue_size parameter allowing virtqueue size to be set. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Richard W.M. Jones" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: "Richard W.M. Jones" Since Linux switched to blk-mq as the default in Linux commit 5c279bd9e406 ("scsi: default to scsi-mq"), virtio-scsi LUNs consume about 10x as much guest kernel memory. This commit allows you to choose the virtqueue size for each virtio-scsi-pci controller like this: -device virtio-scsi-pci,id=3Dscsi,virtqueue_size=3D16 The default is still 128 as before. Using smaller virtqueue_size allows many more disks to be added to small memory virtual machines. For a 1 vCPU, 500 MB, no swap VM I observed: With scsi-mq enabled (upstream kernel): 175 disks -"- ditto -"- virtqueue_size=3D64: 318 disks -"- ditto -"- virtqueue_size=3D16: 775 disks With scsi-mq disabled (kernel before 5c279bd9e406): 1755 disks Note that to have any effect, this requires a kernel patch: https://lkml.org/lkml/2017/8/10/689 Signed-off-by: Richard W.M. Jones Message-Id: <20170810165255.20865-1-rjones@redhat.com> Signed-off-by: Paolo Bonzini --- hw/scsi/virtio-scsi.c | 8 +++++--- include/hw/virtio/virtio-scsi.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index eb63944..aca1909 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -867,10 +867,10 @@ void virtio_scsi_common_realize(DeviceState *dev, s->sense_size =3D VIRTIO_SCSI_SENSE_DEFAULT_SIZE; s->cdb_size =3D VIRTIO_SCSI_CDB_DEFAULT_SIZE; =20 - s->ctrl_vq =3D virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE, ctrl); - s->event_vq =3D virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE, evt); + s->ctrl_vq =3D virtio_add_queue(vdev, s->conf.virtqueue_size, ctrl); + s->event_vq =3D virtio_add_queue(vdev, s->conf.virtqueue_size, evt); for (i =3D 0; i < s->conf.num_queues; i++) { - s->cmd_vqs[i] =3D virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE, cmd); + s->cmd_vqs[i] =3D virtio_add_queue(vdev, s->conf.virtqueue_size, c= md); } } =20 @@ -917,6 +917,8 @@ static void virtio_scsi_device_unrealize(DeviceState *d= ev, Error **errp) =20 static Property virtio_scsi_properties[] =3D { DEFINE_PROP_UINT32("num_queues", VirtIOSCSI, parent_obj.conf.num_queue= s, 1), + DEFINE_PROP_UINT32("virtqueue_size", VirtIOSCSI, + parent_obj.conf.virtqueue_size, 1= 28), DEFINE_PROP_UINT32("max_sectors", VirtIOSCSI, parent_obj.conf.max_sect= ors, 0xFFFF), DEFINE_PROP_UINT32("cmd_per_lun", VirtIOSCSI, parent_obj.conf.cmd_per_= lun, diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scs= i.h index de6ae5a..4c0bcdb 100644 --- a/include/hw/virtio/virtio-scsi.h +++ b/include/hw/virtio/virtio-scsi.h @@ -32,7 +32,6 @@ #define VIRTIO_SCSI(obj) \ OBJECT_CHECK(VirtIOSCSI, (obj), TYPE_VIRTIO_SCSI) =20 -#define VIRTIO_SCSI_VQ_SIZE 128 #define VIRTIO_SCSI_MAX_CHANNEL 0 #define VIRTIO_SCSI_MAX_TARGET 255 #define VIRTIO_SCSI_MAX_LUN 16383 @@ -48,6 +47,7 @@ typedef struct virtio_scsi_config VirtIOSCSIConfig; =20 struct VirtIOSCSIConf { uint32_t num_queues; + uint32_t virtqueue_size; uint32_t max_sectors; uint32_t cmd_per_lun; #ifdef CONFIG_VHOST_SCSI --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824975236696.9695228035624; Tue, 19 Sep 2017 05:42:55 -0700 (PDT) Received: from localhost ([::1]:42620 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHra-000603-BW for importer@patchew.org; Tue, 19 Sep 2017 08:42:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf4-0003la-DZ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHey-0005DA-II for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:58 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:35852) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHey-0005Cz-CW; Tue, 19 Sep 2017 08:29:52 -0400 Received: by mail-wm0-x241.google.com with SMTP id r136so3737439wmf.3; Tue, 19 Sep 2017 05:29:52 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=Snaki7eXgsmtEi7WAV7tkQ4dmsDWTEeCi8AZKyu8G8k=; b=cFXfSaKogGuyJV7Szhgh9N/LKFD9GDoptYiLQsoMgjAVIUEcyisECxxzCzfo+c39eE mwg5zcX1YEEj+NUZmEavLaq93EMCJFdQrdoXD+Y2iUaF/yQdMOn/ExbEanIaIxooqa/K 9sl8UAx/Omk1CipYmg1tsvkBf8TvvnVR51nunQkTlFOvmrqEBnZ/C77Hj0Vljp4WykEy ukWdNoJH2ZtROLP+4hr+yu9FANuC1CF6NJUHXPqzg3k45brByiSUYpHeXivBX1sHfwn4 fbq3zfXlZwaaImPdu2TyvchEnGAlA9vxuTEdisLVv0hg6b0o57zYdMrcbiBUnF6Vhw7O 8XRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=Snaki7eXgsmtEi7WAV7tkQ4dmsDWTEeCi8AZKyu8G8k=; b=IwToh3LxxX/wLzB1lT0aK40HDPYF02dp7OB3weMv3VUx/zErauiQ2VIU+dp8CGISoX iJ6WQGSU1Agz/saMgkfnb0kApCrSKdVhOCt7olcIAmnXWoSsGYcnRo8tkLEdXU2kVcpA SVK0VLLIsj5PZ9SOEr/krVJG3zBweDnCEeiqn5GbIYQoHir4oIx/qb4T6f017vl4gbIA 5IV3RXcrmxXh6FuabU8NcAQWmRatbN8d0L58G7VZOTRicB95DX2F+oLRGexmYbOo875f qsdIM43BpACV8wLc3YCCdZ9dyiKcrKxw3W76BYk6W3AtaZ/azpMzx3pxUdI/mHHzvWgE vvcQ== X-Gm-Message-State: AHPjjUgaKDBELs6B/956Fw8WFrJd4LLXH41pZQYFxzEcz39SY7+CXfWa RzGGGp5t2pif78BWEeMIHXOJyebL X-Google-Smtp-Source: AOwi7QBScqCyfzZJSLGLLE5pDPUf49mc83RP3ZAvN0b7ba5JHpZ+q6omb6wzdWanHBYpfS2eOBJeGg== X-Received: by 10.28.154.138 with SMTP id c132mr923430wme.2.1505824191026; Tue, 19 Sep 2017 05:29:51 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:56 +0200 Message-Id: <1505824179-21541-8-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 07/50] scsi-bus: correct responses for INQUIRY and REQUEST SENSE X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hannes Reinecke , Hannes Reinecke , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Hannes Reinecke According to SPC-3 INQUIRY and REQUEST SENSE should return GOOD even on unsupported LUNS. Signed-off-by: Hannes Reinecke Message-Id: <1503049022-14749-1-git-send-email-hare@suse.de> Reported-by: Laszlo Ersek Fixes: ded6ddc5a7b95217557fa360913d1213e12d4a6d Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini Signed-off-by: Hannes Reinecke --- hw/scsi/scsi-bus.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index e364410..ade31c1 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -516,8 +516,10 @@ static size_t scsi_sense_len(SCSIRequest *req) static int32_t scsi_target_send_command(SCSIRequest *req, uint8_t *buf) { SCSITargetReq *r =3D DO_UPCAST(SCSITargetReq, req, req); + int fixed_sense =3D (req->cmd.buf[1] & 1) =3D=3D 0; =20 - if (req->lun !=3D 0) { + if (req->lun !=3D 0 && + buf[0] !=3D INQUIRY && buf[0] !=3D REQUEST_SENSE) { scsi_req_build_sense(req, SENSE_CODE(LUN_NOT_SUPPORTED)); scsi_req_complete(req, CHECK_CONDITION); return 0; @@ -535,9 +537,28 @@ static int32_t scsi_target_send_command(SCSIRequest *r= eq, uint8_t *buf) break; case REQUEST_SENSE: scsi_target_alloc_buf(&r->req, scsi_sense_len(req)); - r->len =3D scsi_device_get_sense(r->req.dev, r->buf, - MIN(req->cmd.xfer, r->buf_len), - (req->cmd.buf[1] & 1) =3D=3D 0); + if (req->lun !=3D 0) { + const struct SCSISense sense =3D SENSE_CODE(LUN_NOT_SUPPORTED); + + if (fixed_sense) { + r->buf[0] =3D 0x70; + r->buf[2] =3D sense.key; + r->buf[10] =3D 10; + r->buf[12] =3D sense.asc; + r->buf[13] =3D sense.ascq; + r->len =3D MIN(req->cmd.xfer, SCSI_SENSE_LEN); + } else { + r->buf[0] =3D 0x72; + r->buf[1] =3D sense.key; + r->buf[2] =3D sense.asc; + r->buf[3] =3D sense.ascq; + r->len =3D 8; + } + } else { + r->len =3D scsi_device_get_sense(r->req.dev, r->buf, + MIN(req->cmd.xfer, r->buf_len), + fixed_sense); + } if (r->req.dev->sense_is_ua) { scsi_device_unit_attention_reported(req->dev); r->req.dev->sense_len =3D 0; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824497666181.21035042129824; Tue, 19 Sep 2017 05:34:57 -0700 (PDT) Received: from localhost ([::1]:42581 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHjs-0007do-UI for importer@patchew.org; Tue, 19 Sep 2017 08:34:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59644) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf0-0003hx-SJ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHez-0005Di-JZ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:54 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:34992) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHez-0005DN-Ay for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:53 -0400 Received: by mail-wm0-x241.google.com with SMTP id e64so3756096wmi.2 for ; Tue, 19 Sep 2017 05:29:53 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=3SMkLHdHNaURJbKqWsARwPoEHc6LylHICVQW3OgITeU=; b=Gg9Bfe+smmK4FC7zasBlVXladOVjaaxqy1uf4kpkXQ2YeN8RKo1xyZFIr4dZIvjF1o eNHKzASNdkHkWonRV5JU88wn5hOTww/i9gynd7OBztN2bL6vMh0T18U3lE6BJjnF1pmR X3Cu6Z4LFaZiFHiSYxT0hlOzpd/BSTAL5KaZ1ft0j7/clJGGpWE60Xb85JggpVqda433 bE3PVYVKcWg9Y9Tjp6EfmpKUMu85TtDxgs+R4PELeKlqVBHDnVE2KW0bBcQG7UAVS9p0 DpUfgrmVznoZPz12+xvTlRpJCF3Jerch4t3UiJJY4i5cbx+gW4xJxs6PbF9xLqa1v+dY ISZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=3SMkLHdHNaURJbKqWsARwPoEHc6LylHICVQW3OgITeU=; b=MY3ogEORcqaEgKg2FHzpw343awoVmd5x40A5VJ66ObO5U9Oz/8vRufDTv8SmRwHMyC RY7Svb8u+5LXaHMw2FGib8cmhFOssG+A4Pa9QkQhEVk8UW4i3ikcc1bN+JP5BwzXGlnL vgsyIFPQ6qHbxCloOWiutJKWTe8MKeMTOshed2nsV3AON5q2XRgU8sJDD7xpe6H5PWA7 pY5D/68SznR4ZQaIsCybl7aSKr5XHInqVTLwZPUAd31WOpSA5hoyG5B+dk0ePVuB2SZi thaxM38C3Xx1RlTEYrt5fJxGRlcNSbGUoXb44OS596awFNUqJ0Y/LrTn+QKC0Hk4ZH6q gevA== X-Gm-Message-State: AHPjjUhV6WOAzI1Dy77sTE/VaV6Bw2U7aVcknzJAHR82/zIG+YR2vRFX BfQHHt+sTTotWM9MJBvtMOMQUzv2 X-Google-Smtp-Source: AOwi7QBf8uXAiLHD7RXkeUVx5h5Z2g+1jqqQFLoUuWL3eCd2WkDzYDK1RQmaRZ8MDz27X9CSIIVdAg== X-Received: by 10.28.31.140 with SMTP id f134mr854610wmf.81.1505824191956; Tue, 19 Sep 2017 05:29:51 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:57 +0200 Message-Id: <1505824179-21541-9-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 08/50] scsi: Refactor scsi sense interpreting code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fam Zheng So that it can be reused outside of iscsi.c. Also update MAINTAINERS to include the new files in SCSI section. Signed-off-by: Fam Zheng Message-Id: <20170821141008.19383-2-famz@redhat.com> Signed-off-by: Paolo Bonzini --- MAINTAINERS | 2 ++ block/iscsi.c | 45 ++++----------------------------------------- include/scsi/scsi.h | 19 +++++++++++++++++++ util/Makefile.objs | 1 + util/scsi.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++= +++ 5 files changed, 78 insertions(+), 41 deletions(-) create mode 100644 include/scsi/scsi.h create mode 100644 util/scsi.c diff --git a/MAINTAINERS b/MAINTAINERS index 4bd1797..c207cb0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -968,7 +968,9 @@ SCSI M: Paolo Bonzini S: Supported F: include/hw/scsi/* +F: include/scsi/* F: hw/scsi/* +F: util/scsi* F: tests/virtio-scsi-test.c T: git git://github.com/bonzini/qemu.git scsi-next =20 diff --git a/block/iscsi.c b/block/iscsi.c index 8b47d30..1e8ae5a 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -40,6 +40,7 @@ #include "qmp-commands.h" #include "qapi/qmp/qstring.h" #include "crypto/secret.h" +#include "scsi/scsi.h" =20 #include #include @@ -209,47 +210,9 @@ static inline unsigned exp_random(double mean) =20 static int iscsi_translate_sense(struct scsi_sense *sense) { - int ret; - - switch (sense->key) { - case SCSI_SENSE_NOT_READY: - return -EBUSY; - case SCSI_SENSE_DATA_PROTECTION: - return -EACCES; - case SCSI_SENSE_COMMAND_ABORTED: - return -ECANCELED; - case SCSI_SENSE_ILLEGAL_REQUEST: - /* Parse ASCQ */ - break; - default: - return -EIO; - } - switch (sense->ascq) { - case SCSI_SENSE_ASCQ_PARAMETER_LIST_LENGTH_ERROR: - case SCSI_SENSE_ASCQ_INVALID_OPERATION_CODE: - case SCSI_SENSE_ASCQ_INVALID_FIELD_IN_CDB: - case SCSI_SENSE_ASCQ_INVALID_FIELD_IN_PARAMETER_LIST: - ret =3D -EINVAL; - break; - case SCSI_SENSE_ASCQ_LBA_OUT_OF_RANGE: - ret =3D -ENOSPC; - break; - case SCSI_SENSE_ASCQ_LOGICAL_UNIT_NOT_SUPPORTED: - ret =3D -ENOTSUP; - break; - case SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT: - case SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_CLOSED: - case SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_OPEN: - ret =3D -ENOMEDIUM; - break; - case SCSI_SENSE_ASCQ_WRITE_PROTECTED: - ret =3D -EACCES; - break; - default: - ret =3D -EIO; - break; - } - return ret; + return - scsi_sense_to_errno(sense->key, + (sense->ascq & 0xFF00) >> 8, + sense->ascq & 0xFF); } =20 /* Called (via iscsi_service) with QemuMutex held. */ diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h new file mode 100644 index 0000000..f894ace --- /dev/null +++ b/include/scsi/scsi.h @@ -0,0 +1,19 @@ +/* + * SCSI helpers + * + * Copyright 2017 Red Hat, Inc. + * + * Authors: + * Fam Zheng + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the F= ree + * Software Foundation; either version 2 of the License, or (at your optio= n) + * any later version. + */ +#ifndef QEMU_SCSI_H +#define QEMU_SCSI_H + +int scsi_sense_to_errno(int key, int asc, int ascq); + +#endif diff --git a/util/Makefile.objs b/util/Makefile.objs index 50a55ec..c9e6c49 100644 --- a/util/Makefile.objs +++ b/util/Makefile.objs @@ -45,3 +45,4 @@ util-obj-y +=3D qht.o util-obj-y +=3D range.o util-obj-y +=3D stats64.o util-obj-y +=3D systemd.o +util-obj-y +=3D scsi.o diff --git a/util/scsi.c b/util/scsi.c new file mode 100644 index 0000000..a671079 --- /dev/null +++ b/util/scsi.c @@ -0,0 +1,52 @@ +/* + * SCSI helpers + * + * Copyright 2017 Red Hat, Inc. + * + * Authors: + * Fam Zheng + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the F= ree + * Software Foundation; either version 2 of the License, or (at your optio= n) + * any later version. + */ + +#include "qemu/osdep.h" +#include "scsi/scsi.h" + +int scsi_sense_to_errno(int key, int asc, int ascq) +{ + switch (key) { + case 0x02: /* NOT READY */ + return EBUSY; + case 0x07: /* DATA PROTECTION */ + return EACCES; + case 0x0b: /* COMMAND ABORTED */ + return ECANCELED; + case 0x05: /* ILLEGAL REQUEST */ + /* Parse ASCQ */ + break; + default: + return EIO; + } + switch ((asc << 8) | ascq) { + case 0x1a00: /* PARAMETER LIST LENGTH ERROR */ + case 0x2000: /* INVALID OPERATION CODE */ + case 0x2400: /* INVALID FIELD IN CDB */ + case 0x2600: /* INVALID FIELD IN PARAMETER LIST */ + return EINVAL; + case 0x2100: /* LBA OUT OF RANGE */ + return ENOSPC; + case 0x2500: /* LOGICAL UNIT NOT SUPPORTED */ + return ENOTSUP; + case 0x3a00: /* MEDIUM NOT PRESENT */ + case 0x3a01: /* MEDIUM NOT PRESENT TRAY CLOSED */ + case 0x3a02: /* MEDIUM NOT PRESENT TRAY OPEN */ + return ENOMEDIUM; + case 0x2700: /* WRITE PROTECTED */ + return EACCES; + default: + return EIO; + } +} --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824318268917.6143040986755; Tue, 19 Sep 2017 05:31:58 -0700 (PDT) Received: from localhost ([::1]:42572 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHgz-0005Ed-Hy for importer@patchew.org; Tue, 19 Sep 2017 08:31:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59648) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf1-0003iC-8B for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf0-0005E5-Et for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:55 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:34401) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf0-0005Dm-9I for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:54 -0400 Received: by mail-wm0-x242.google.com with SMTP id i131so3748936wma.1 for ; Tue, 19 Sep 2017 05:29:54 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=73G5o5J+JBH4eCEef5PcI9RqVbw3pQlhenv5ggSsgA0=; b=N3qLbZ7UYDLbFfcDS6EfJ5imfdGyYalUCxk4JceyNPn4tkqEm2ULDbBDvHtUs7qU4J c8LMf8PFKsFIXmOyxfTsgbY3R/RSHcjr5BEJIjh5VYNNiDaghkq4R5Zq0w47BlGgYHoF TITG/Hxabkpl+GCB0FHW1r3g3wOtQ+TuOK0fo1X/Jn+nWeDN8Jo9Za8qwaRHhityR0// Z/31Zt9DBmwQggLhSZ1DzOeqkOA5oaA81clKYehb2BCCOAuc8nyf+IW9PS+Hbo5XCKae zWrzUMFTiTfokL8BplD6pptNMS//ESORU4q8xnwjUlub20+/7xCAqFjr2rGICqG34w/9 o7sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=73G5o5J+JBH4eCEef5PcI9RqVbw3pQlhenv5ggSsgA0=; b=X9JMBIZimXL2GJGsnTfG0L9lb28HCkWw8jGTS6fmurUwoBGfUBz//qqX00EKaB0WnC 6EkbryUDrUKw1eh5J03OD32gTF0UfHnJvCNnEZ7geht1dzzRih8mIfzZ+DnBmvwkdty3 Fca+O1znirA0q9vO3QuXIw6NO2gaa38yJS9sahEhuyUE13thFlPIyFDhTHeDKbtgme/m 98wnxg1tal1KyNJi5qFX+Mv6HKYlxuHXrL/iHX/0qplEe8pOBnY9nIMJfhDqGFmmaRKW dPakO+lGirkgNvtCOFxmsIp1UF9aBv8GZza4XxwrXaedEAMXv54DQsfMG7TijqWBOcYM qcRg== X-Gm-Message-State: AHPjjUia0aXwoxoCqyIPuiNlZyX/6WziuBLJwHeVXF9JaEWIwnVs0JD/ fchvrpBwkaGYLadHn88fLlWK/+68 X-Google-Smtp-Source: AOwi7QBWhsz/7ZUsM/ZWdj/7GGfCcUXpDhjZriZRWAjCYKxgQB4b4EMQfWwcRKx9TlW3d22Kn3IhCg== X-Received: by 10.28.0.7 with SMTP id 7mr910899wma.109.1505824192945; Tue, 19 Sep 2017 05:29:52 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:58 +0200 Message-Id: <1505824179-21541-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 09/50] scsi: Improve scsi_sense_to_errno X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fam Zheng Tweak the errno mapping to return more accurate/appropriate values. Signed-off-by: Fam Zheng Message-Id: <20170821141008.19383-3-famz@redhat.com> Signed-off-by: Paolo Bonzini --- util/scsi.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/util/scsi.c b/util/scsi.c index a671079..472eb5b 100644 --- a/util/scsi.c +++ b/util/scsi.c @@ -18,13 +18,16 @@ int scsi_sense_to_errno(int key, int asc, int ascq) { switch (key) { - case 0x02: /* NOT READY */ - return EBUSY; - case 0x07: /* DATA PROTECTION */ - return EACCES; + case 0x00: /* NO SENSE */ + case 0x01: /* RECOVERED ERROR */ + case 0x06: /* UNIT ATTENTION */ + /* These sense keys are not errors */ + return 0; case 0x0b: /* COMMAND ABORTED */ return ECANCELED; + case 0x02: /* NOT READY */ case 0x05: /* ILLEGAL REQUEST */ + case 0x07: /* DATA PROTECTION */ /* Parse ASCQ */ break; default: @@ -37,6 +40,7 @@ int scsi_sense_to_errno(int key, int asc, int ascq) case 0x2600: /* INVALID FIELD IN PARAMETER LIST */ return EINVAL; case 0x2100: /* LBA OUT OF RANGE */ + case 0x2707: /* SPACE ALLOC FAILED */ return ENOSPC; case 0x2500: /* LOGICAL UNIT NOT SUPPORTED */ return ENOTSUP; @@ -46,6 +50,10 @@ int scsi_sense_to_errno(int key, int asc, int ascq) return ENOMEDIUM; case 0x2700: /* WRITE PROTECTED */ return EACCES; + case 0x0401: /* NOT READY, IN PROGRESS OF BECOMING READY */ + return EAGAIN; + case 0x0402: /* NOT READY, INITIALIZING COMMAND REQUIRED */ + return ENOTCONN; default: return EIO; } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15058245093361016.1691036677388; Tue, 19 Sep 2017 05:35:09 -0700 (PDT) Received: from localhost ([::1]:42582 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHk4-0007pP-J6 for importer@patchew.org; Tue, 19 Sep 2017 08:35:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59684) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf4-0003m0-UD for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf1-0005Eq-HM for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:58 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:34401) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf1-0005EL-C3 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:55 -0400 Received: by mail-wm0-x244.google.com with SMTP id i131so3748990wma.1 for ; Tue, 19 Sep 2017 05:29:55 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=KYuJrFptznJrW5rt5tS1dHa0l8bnjPOtubkakKhdvy0=; b=D+LqSMWW91LSo+rH8FbMWhqwbgVbEm/NzUBuSCyEeEHJJX3FkBONDJ1HxMDNxorHge 8FZJEroxp5L7iY1pJ+7tilmxFFJOE1HoO7mBKtHu2OmHRSFm2d/TKHOmflWactVeZFXi CaXEW0jr9rmin1JF4O+QLnF9rCFNT+qtrgPT32tXLV/PXsWF2LbOZws78SkRG81mD08y b8c/QBpJJcfxbv/dPN01924oksISqlzwCxpAhO6/ZtUUDPaNDSPovrmd3fXBh5dHxD3/ VOOcERtbE7bEPw59OM3Dnl17j0Ki1LuDV7Z6o9Sn05qUqydZZ8Y7OCh/JE9w54R6GdAz 3xpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=KYuJrFptznJrW5rt5tS1dHa0l8bnjPOtubkakKhdvy0=; b=r0EJkT6OMfQEL0MbGqe22cFaNfgwumRq9uzPi6leG7lsaTPF//+r5ZfLcZ/Ygvv8hu +6KMhne1P1HmNdt6YJXDySPAw8MhfVFD13XWiOai3yf8zXWg+dzmgLr821imptQF41jw 4OPK/yI8xzEgqgHx6mCmfAu572CD8UqATGVi3YjzGOlLoZZbg+n36UoWDZd/xVRWbGrn lcW71cJOOsYjKBCREF/JQVG0OgFKkStMGm7hxm7dpmU5e/sBHLhifsKQoX+9jodByfhe KTfuwsEYgcJZ32OVIBHI+MwsX32VlgtDAl4BikeGSQ9K8PVMyG0h9PiPZxKz/e7ZX+fv cwVA== X-Gm-Message-State: AHPjjUhjTP1TPjIbHLp/9gYmv3WwwNPhEwFwrZN+7CucbCyBc2d8VOgO FOU+XNYxCgnk24TEYiOQ2LB/n8pt X-Google-Smtp-Source: AOwi7QDKo8pYtsVO20Ie0CRKAK+o833da2CDBHPxJ6Lnx9io0oSZNpvo7E0rNF/WBEnyEKhK4iiHtA== X-Received: by 10.28.125.205 with SMTP id y196mr1024835wmc.128.1505824194028; Tue, 19 Sep 2017 05:29:54 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:28:59 +0200 Message-Id: <1505824179-21541-11-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PULL 10/50] scsi: Introduce scsi_sense_buf_to_errno X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fam Zheng This recognizes the "fixed" and "descriptor" format sense data, extracts the sense key/asc/ascq fields then converts them to an errno. Signed-off-by: Fam Zheng Message-Id: <20170821141008.19383-4-famz@redhat.com> Signed-off-by: Paolo Bonzini --- include/scsi/scsi.h | 1 + util/scsi.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index f894ace..fe33038 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h @@ -15,5 +15,6 @@ #define QEMU_SCSI_H =20 int scsi_sense_to_errno(int key, int asc, int ascq); +int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size); =20 #endif diff --git a/util/scsi.c b/util/scsi.c index 472eb5b..472293d 100644 --- a/util/scsi.c +++ b/util/scsi.c @@ -58,3 +58,33 @@ int scsi_sense_to_errno(int key, int asc, int ascq) return EIO; } } + +int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size) +{ + int key, asc, ascq; + if (sense_size < 1) { + return EIO; + } + switch (sense[0]) { + case 0x70: /* Fixed format sense data. */ + if (sense_size < 14) { + return EIO; + } + key =3D sense[2] & 0xF; + asc =3D sense[12]; + ascq =3D sense[13]; + break; + case 0x72: /* Descriptor format sense data. */ + if (sense_size < 4) { + return EIO; + } + key =3D sense[1] & 0xF; + asc =3D sense[2]; + ascq =3D sense[3]; + break; + default: + return EIO; + break; + } + return scsi_sense_to_errno(key, asc, ascq); +} --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824649917602.977971379766; Tue, 19 Sep 2017 05:37:29 -0700 (PDT) Received: from localhost ([::1]:42595 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHmJ-0001Nv-MA for importer@patchew.org; Tue, 19 Sep 2017 08:37:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59683) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf4-0003ly-UC for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf2-0005F8-Ke for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:58 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:37388) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf2-0005Ev-Ee for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:56 -0400 Received: by mail-wm0-x244.google.com with SMTP id f4so3731700wmh.4 for ; Tue, 19 Sep 2017 05:29:56 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=zaNDpTtpo0spVzOtDxwsx7c9Ve0V8UYw1CrT+HqJNMw=; b=IqkgD195J9en4BxuBT4JixBfIPxvvPyT67PDPU5jOAFcx+jYGgWXyJ/pwNAwIgkVmS QdxxPO7m4sRsJG+3V2T5IEarbYvWi2WXSCoXrz/bKCux8+kodwZmTNwSJRoZZMl95paQ UciWaQXXQ7uNbJRxRSIwlFkKEntzOWs4YpIeMWtv0ReRZUv/4+Q06jm3Ho6HYOmAz+Z9 DLco3tEFY6269W+bsa1zIjdQBHk6iM91b+2T5LtDekMk3AqxeL0DMtHq4ssgm56Zosgd hBcBdFATaPTSE+6XqHM1KROfkxfXAxHyot5FKQ2mgCMNJ+xZe0Ydw5eXZ3/j7UuohATH B5RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=zaNDpTtpo0spVzOtDxwsx7c9Ve0V8UYw1CrT+HqJNMw=; b=c0R7RSfATX5i0+RDFKJSCSuKhSeGzUix4OdbX7flrIYC5TFMCYfc+OlwxbaQYcVPtD cHbG1PxOXAvFiiHSe50gUQ2+tAj5IywN2jKzWvfqzX7O8YzQiwdTBIBqvnGNToYmWSkm fIH+zNPZNFMEjF/kTlZLgUij+IpA22UDqa94ErzqXxPC5/C9vhh+2jQbfEFWUcv7Kyu8 F135NDOgC5YV61fZxxd4pNg2dpNd5CyOEru2VxlITOCZKEk9NioL2Ji0Zev1Pdk6RnY3 DZ+cf+6RTyyuuNhMWj1ETkGhDr5u3xfBWepeN00i8ysTcFnuij99xzYuHA87go8qG30d DdjQ== X-Gm-Message-State: AHPjjUjvYSPxSW2Egr4ZTgCpn9razEXEJkZI+bOeW8XSVeG7+ltpWKtT 49TgWWWDERScgc73DiSlgSmWZxR2 X-Google-Smtp-Source: AOwi7QBE5BxAEpztb4CfiD87k3vKXbr7iD1NBhPFSAlUvx4wi6yF05yBoUu6ZLhF3/uSdLSGHYdaQg== X-Received: by 10.28.92.73 with SMTP id q70mr990753wmb.150.1505824195118; Tue, 19 Sep 2017 05:29:55 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:00 +0200 Message-Id: <1505824179-21541-12-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PULL 11/50] scsi-block: Support rerror/werror X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Fam Zheng This makes the werror/rerror options available on the scsi-block device, to allow user specify error handling policy similar to scsi-hd. Signed-off-by: Fam Zheng Message-Id: <20170821141008.19383-5-famz@redhat.com> Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-disk.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 5f1e5e8..cf38f93 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -39,6 +39,7 @@ do { printf("scsi-disk: " fmt , ## __VA_ARGS__); } while = (0) #include "hw/block/block.h" #include "sysemu/dma.h" #include "qemu/cutils.h" +#include "scsi/scsi.h" =20 #ifdef __linux #include @@ -106,7 +107,7 @@ typedef struct SCSIDiskState bool tray_locked; } SCSIDiskState; =20 -static int scsi_handle_rw_error(SCSIDiskReq *r, int error, bool acct_faile= d); +static bool scsi_handle_rw_error(SCSIDiskReq *r, int error, bool acct_fail= ed); =20 static void scsi_free_request(SCSIRequest *req) { @@ -184,19 +185,10 @@ static bool scsi_disk_req_check_error(SCSIDiskReq *r,= int ret, bool acct_failed) return true; } =20 - if (ret < 0) { + if (ret < 0 || (r->status && *r->status)) { return scsi_handle_rw_error(r, -ret, acct_failed); } =20 - if (r->status && *r->status) { - if (acct_failed) { - SCSIDiskState *s =3D DO_UPCAST(SCSIDiskState, qdev, r->req.dev= ); - block_acct_failed(blk_get_stats(s->qdev.conf.blk), &r->acct); - } - scsi_req_complete(&r->req, *r->status); - return true; - } - return false; } =20 @@ -422,13 +414,13 @@ static void scsi_read_data(SCSIRequest *req) } =20 /* - * scsi_handle_rw_error has two return values. 0 means that the error - * must be ignored, 1 means that the error has been processed and the + * scsi_handle_rw_error has two return values. False means that the error + * must be ignored, true means that the error has been processed and the * caller should not do anything else for this request. Note that * scsi_handle_rw_error always manages its reference counts, independent * of the return value. */ -static int scsi_handle_rw_error(SCSIDiskReq *r, int error, bool acct_faile= d) +static bool scsi_handle_rw_error(SCSIDiskReq *r, int error, bool acct_fail= ed) { bool is_read =3D (r->req.cmd.mode =3D=3D SCSI_XFER_FROM_DEV); SCSIDiskState *s =3D DO_UPCAST(SCSIDiskState, qdev, r->req.dev); @@ -440,6 +432,11 @@ static int scsi_handle_rw_error(SCSIDiskReq *r, int er= ror, bool acct_failed) block_acct_failed(blk_get_stats(s->qdev.conf.blk), &r->acct); } switch (error) { + case 0: + /* The command has run, no need to fake sense. */ + assert(r->status && *r->status); + scsi_req_complete(&r->req, *r->status); + break; case ENOMEDIUM: scsi_check_condition(r, SENSE_CODE(NO_MEDIUM)); break; @@ -457,6 +454,18 @@ static int scsi_handle_rw_error(SCSIDiskReq *r, int er= ror, bool acct_failed) break; } } + if (!error) { + assert(r->status && *r->status); + error =3D scsi_sense_buf_to_errno(r->req.sense, sizeof(r->req.sens= e)); + + if (error =3D=3D ECANCELED || error =3D=3D EAGAIN || error =3D=3D = ENOTCONN || + error =3D=3D 0) { + /* These errors are handled by guest. */ + scsi_req_complete(&r->req, *r->status); + return true; + } + } + blk_error_action(s->qdev.conf.blk, action, is_read, error); if (action =3D=3D BLOCK_ERROR_ACTION_STOP) { scsi_req_retry(&r->req); @@ -2972,6 +2981,7 @@ static const TypeInfo scsi_cd_info =3D { =20 #ifdef __linux__ static Property scsi_block_properties[] =3D { + DEFINE_BLOCK_ERROR_PROPERTIES(SCSIDiskState, qdev.conf), \ DEFINE_PROP_DRIVE("drive", SCSIDiskState, qdev.conf.blk), DEFINE_PROP_END_OF_LIST(), }; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824664392531.1580573688627; Tue, 19 Sep 2017 05:37:44 -0700 (PDT) Received: from localhost ([::1]:42597 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHmZ-0001au-M6 for importer@patchew.org; Tue, 19 Sep 2017 08:37:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59734) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf7-0003oG-Iu for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf3-0005Fa-IZ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:01 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:36437) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf3-0005FH-Cs for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:29:57 -0400 Received: by mail-wr0-x241.google.com with SMTP id g50so2141046wra.3 for ; Tue, 19 Sep 2017 05:29:57 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=11aFFIPDSVuui9gVJBpE1N2363pWs7gwVNlEkLWiRys=; b=EsR6QjbZJ4OoQEaownJZgGqAbLZRE9QtnQKrK3I0i4QrXIHdyFRU/dKYcxJ/K7f3Uf k648C7DQdSXdXPOvXuTMTl7tadMvWfoYk9f7sNF4+qO8VIAv50f/VOWieHjfnzD2wFjG 4tvqEM6/8K0Figib1O4lwMxaqhP7/AjaNY0PCDmjCv0VZ4QVySF9D44+2WtDWHcOjrzW 9er2HmmvkXoH555KWJI0ghryvtMCGgvtPwRtt/mkx8Bzi37tODJEBu47baLPyRcN6rAX egtLXoVQFhoxjYnsh3g2fJ3u9T6qfJLGycdzWiU/GhkXC2pB0iwMoKMgPIsEqeYMamgb APzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=11aFFIPDSVuui9gVJBpE1N2363pWs7gwVNlEkLWiRys=; b=M6aj0E9IHBB8UeH0rFhVLfYHg3exj3llBglTRnyADK3huueQw7SbnnKxJuuLke4nyx fcYI4YQEYBks/FjjtpSzI4WBDXl425cH1WuO1XQiwjg6yHii0PbTzexc3va5bDNH7300 PhUDBYFjHF6FLPuHy6KPGUEMZoHHdmC4NMzE0+RakrJ2lQlKOpyc83OFZa7YnL6WchyI yeggPciaQEp0z+eNz3pjDyd4NpTaJ+V9YJKLrM/nUlnVmrOPLPJOZ5as/eGEbYgR92DI 4dQhT+kiEI2XKZZv2jpQW1o5l1j2Ndtq+lXLnrPzTa5RcAd06jrlgrkU5vVgs3PS4C1W PgQg== X-Gm-Message-State: AHPjjUjrNBDIQXfRpj7ihgfh0ymfVv7376T9fRAQSuwrmS3km0ZvPVo0 Y2JrNPNMX//K8O1M8nEFsYZRhoG8 X-Google-Smtp-Source: AOwi7QBhpZjyy+GYWJTyTVeB/moPCtOGmr7fjq8B5QZCbyGRY/YRQ/g4xNrVEz6SUvBJE/NNFJ+aew== X-Received: by 10.223.184.181 with SMTP id i50mr1240253wrf.136.1505824196093; Tue, 19 Sep 2017 05:29:56 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:01 +0200 Message-Id: <1505824179-21541-13-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 12/50] scsi: rename scsi_build_sense to scsi_convert_sense X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 After introducing the scsi/ subdirectory, there will be a scsi_build_sense function that is the same as scsi_req_build_sense but without needing a SCSIRequest. The existing scsi_build_sense function gets in the way, remove it. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-bus.c | 10 +++++----- hw/scsi/scsi-disk.c | 4 ++-- include/hw/scsi/scsi.h | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index ade31c1..fac360e 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -790,7 +790,7 @@ int scsi_req_get_sense(SCSIRequest *req, uint8_t *buf, = int len) return 0; } =20 - ret =3D scsi_build_sense(req->sense, req->sense_len, buf, len, true); + ret =3D scsi_convert_sense(req->sense, req->sense_len, buf, len, true); =20 /* * FIXME: clearing unit attention conditions upon autosense should be = done @@ -811,7 +811,7 @@ int scsi_req_get_sense(SCSIRequest *req, uint8_t *buf, = int len) =20 int scsi_device_get_sense(SCSIDevice *dev, uint8_t *buf, int len, bool fix= ed) { - return scsi_build_sense(dev->sense, dev->sense_len, buf, len, fixed); + return scsi_convert_sense(dev->sense, dev->sense_len, buf, len, fixed); } =20 void scsi_req_build_sense(SCSIRequest *req, SCSISense sense) @@ -1531,12 +1531,12 @@ const struct SCSISense sense_code_SPACE_ALLOC_FAILE= D =3D { }; =20 /* - * scsi_build_sense + * scsi_convert_sense * * Convert between fixed and descriptor sense buffers */ -int scsi_build_sense(uint8_t *in_buf, int in_len, - uint8_t *buf, int len, bool fixed) +int scsi_convert_sense(uint8_t *in_buf, int in_len, + uint8_t *buf, int len, bool fixed) { bool fixed_in; SCSISense sense; diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index cf38f93..990ba04 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1987,8 +1987,8 @@ static int32_t scsi_disk_emulate_command(SCSIRequest = *req, uint8_t *buf) break; case REQUEST_SENSE: /* Just return "NO SENSE". */ - buflen =3D scsi_build_sense(NULL, 0, outbuf, r->buflen, - (req->cmd.buf[1] & 1) =3D=3D 0); + buflen =3D scsi_convert_sense(NULL, 0, outbuf, r->buflen, + (req->cmd.buf[1] & 1) =3D=3D 0); if (buflen < 0) { goto illegal_request; } diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index 6b85786..6ef67fb 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -244,8 +244,8 @@ extern const struct SCSISense sense_code_SPACE_ALLOC_FA= ILED; uint32_t scsi_data_cdb_xfer(uint8_t *buf); uint32_t scsi_cdb_xfer(uint8_t *buf); int scsi_cdb_length(uint8_t *buf); -int scsi_build_sense(uint8_t *in_buf, int in_len, - uint8_t *buf, int len, bool fixed); +int scsi_convert_sense(uint8_t *in_buf, int in_len, + uint8_t *buf, int len, bool fixed); =20 SCSIRequest *scsi_req_alloc(const SCSIReqOps *reqops, SCSIDevice *d, uint32_t tag, uint32_t lun, void *hba_private); --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824920838494.6777729138198; Tue, 19 Sep 2017 05:42:00 -0700 (PDT) Received: from localhost ([::1]:42618 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHqh-00057B-Uf for importer@patchew.org; Tue, 19 Sep 2017 08:42:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59837) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfF-0003yc-Dq for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf6-0005H6-C0 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:09 -0400 Received: from mail-wr0-x229.google.com ([2a00:1450:400c:c0c::229]:47385) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf5-0005GT-Tj for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:00 -0400 Received: by mail-wr0-x229.google.com with SMTP id k20so2947613wre.4 for ; Tue, 19 Sep 2017 05:29:59 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.56 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=E1KTNLlvpyW3u0G/vT6Ljr01XBEnvG1dbhYPv19Mvv0=; b=EulyKmaLR6J6G9OYXNCErOUEvrv/R0dEcS1PwdUXLwYhFMLXXmSyLmly0/6Z7myd4v iAtGsZ0qo70GKPixPFRWR1XzUFy9Ju3AHRJXSk7dQof0mr/2L2d+//ZQ2onFPJ+Djw4q TxoMWsis1l4rcc393B157SlxzincI/0TfjImIFAOZRep49rL6II41HdDBC7FU72pIar5 qEhvEkjlW66PwbOSy9JkVomK/xqfNM75r04tGyRdOPSPxRh/mqL+8S5F6YhXOCHjEnmi RgXsk4Oxz8eHo2qGfBM6A9+/J6M+3gcHmDxb/pgK9dvNmS8fhxy2yNiM9l5h8cQ0XFLP RSkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=E1KTNLlvpyW3u0G/vT6Ljr01XBEnvG1dbhYPv19Mvv0=; b=B4dvGfmfUIVQzzFzaLg6ULlYdQeyw2zusRp4wAKS8EBnOIW41/qlvWKpFrq4iSXd6Z ZPklyxpnLmNinNyVBvmhRcrW4lyndoTKSg0L2oYZpveF/70an1McB2mjNvR3ixzUEs9n EoQw+v/vqE5r2b092fD981shR3MsBrxl5KOuNglc8rMuLVo1s5PFhva/bM/St1WHQB2E 2XJ6O4CgZCUvSMNiux2DJ1LOcmLiGiD+GVZnoFV/ciUIpG1RW4oJcooh3x4xrCr4dcC6 s1OvP20YEnB3qWCu0TMzy8P+5mcCew/vjEJG+QN1oiSDDMjtriRSBYmx/v7AYDRJWw9n 1nZQ== X-Gm-Message-State: AHPjjUgson3xwHVA1tYhaljB42H9FgN0qeNI1FO7sk+t6/TShcsYITUG 51qm596xe/KJl44xgGm7oljKnD2/ X-Google-Smtp-Source: AOwi7QATK/vrTBJQM3cNomRZmWBlvs2CH6sh3fE0xzCSEoSZ41GgKekZeRmXiLGGt450wHGZvHcENA== X-Received: by 10.223.161.212 with SMTP id v20mr1356286wrv.195.1505824197975; Tue, 19 Sep 2017 05:29:57 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:02 +0200 Message-Id: <1505824179-21541-14-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::229 Subject: [Qemu-devel] [PULL 13/50] scsi: move non-emulation specific code to scsi/ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 util/scsi.c includes some SCSI code that is shared by block/iscsi.c and hw/scsi, but the introduction of the persistent reservation helper will add many more instances of this. There is also include/block/scsi.h, which actually is not part of the core block layer. The persistent reservation manager will also need a home. A scsi/ directory provides one for both the aforementioned shared code and the PR manager code. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Paolo Bonzini --- MAINTAINERS | 7 + Makefile.objs | 2 +- block/iscsi.c | 6 +- hw/scsi/scsi-bus.c | 397 --------------------------------------- hw/scsi/scsi-disk.c | 1 - hw/scsi/scsi-generic.c | 8 - include/block/scsi.h | 2 - include/hw/scsi/scsi.h | 94 +--------- include/scsi/scsi.h | 20 -- include/scsi/utils.h | 119 ++++++++++++ scsi/Makefile.objs | 1 + scsi/utils.c | 492 +++++++++++++++++++++++++++++++++++++++++++++= ++++ util/Makefile.objs | 1 - util/scsi.c | 90 --------- 14 files changed, 626 insertions(+), 614 deletions(-) delete mode 100644 include/scsi/scsi.h create mode 100644 include/scsi/utils.h create mode 100644 scsi/Makefile.objs create mode 100644 scsi/utils.c delete mode 100644 util/scsi.c diff --git a/MAINTAINERS b/MAINTAINERS index c207cb0..2dbb9ec 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1215,6 +1215,13 @@ F: migration/block* F: include/block/aio.h T: git git://github.com/stefanha/qemu.git block =20 +Block SCSI subsystem +M: Paolo Bonzini +L: qemu-block@nongnu.org +S: Supported +F: include/scsi/* +F: scsi/* + Block Jobs M: Jeff Cody L: qemu-block@nongnu.org diff --git a/Makefile.objs b/Makefile.objs index 3a6914c..9e89100 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -11,7 +11,7 @@ chardev-obj-y =3D chardev/ =20 block-obj-y +=3D nbd/ block-obj-y +=3D block.o blockjob.o -block-obj-y +=3D block/ +block-obj-y +=3D block/ scsi/ block-obj-y +=3D qemu-io-cmds.o block-obj-$(CONFIG_REPLICATION) +=3D replication.o =20 diff --git a/block/iscsi.c b/block/iscsi.c index 1e8ae5a..f1d3aaa 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -40,10 +40,14 @@ #include "qmp-commands.h" #include "qapi/qmp/qstring.h" #include "crypto/secret.h" -#include "scsi/scsi.h" +#include "scsi/utils.h" =20 +/* Conflict between scsi/utils.h and libiscsi! :( */ +#define SCSI_XFER_NONE ISCSI_XFER_NONE #include #include +#undef SCSI_XFER_NONE +QEMU_BUILD_BUG_ON((int)SCSI_XFER_NONE !=3D (int)ISCSI_XFER_NONE); =20 #ifdef __linux__ #include diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index fac360e..42920d5 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -956,36 +956,6 @@ static int ata_passthrough_16_xfer(SCSIDevice *dev, ui= nt8_t *buf) return xfer * unit; } =20 -uint32_t scsi_data_cdb_xfer(uint8_t *buf) -{ - if ((buf[0] >> 5) =3D=3D 0 && buf[4] =3D=3D 0) { - return 256; - } else { - return scsi_cdb_xfer(buf); - } -} - -uint32_t scsi_cdb_xfer(uint8_t *buf) -{ - switch (buf[0] >> 5) { - case 0: - return buf[4]; - break; - case 1: - case 2: - return lduw_be_p(&buf[7]); - break; - case 4: - return ldl_be_p(&buf[10]) & 0xffffffffULL; - break; - case 5: - return ldl_be_p(&buf[6]) & 0xffffffffULL; - break; - default: - return -1; - } -} - static int scsi_req_xfer(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf) { cmd->xfer =3D scsi_cdb_xfer(buf); @@ -1298,53 +1268,6 @@ static void scsi_cmd_xfer_mode(SCSICommand *cmd) } } =20 -static uint64_t scsi_cmd_lba(SCSICommand *cmd) -{ - uint8_t *buf =3D cmd->buf; - uint64_t lba; - - switch (buf[0] >> 5) { - case 0: - lba =3D ldl_be_p(&buf[0]) & 0x1fffff; - break; - case 1: - case 2: - case 5: - lba =3D ldl_be_p(&buf[2]) & 0xffffffffULL; - break; - case 4: - lba =3D ldq_be_p(&buf[2]); - break; - default: - lba =3D -1; - - } - return lba; -} - -int scsi_cdb_length(uint8_t *buf) { - int cdb_len; - - switch (buf[0] >> 5) { - case 0: - cdb_len =3D 6; - break; - case 1: - case 2: - cdb_len =3D 10; - break; - case 4: - cdb_len =3D 16; - break; - case 5: - cdb_len =3D 12; - break; - default: - cdb_len =3D -1; - } - return cdb_len; -} - int scsi_req_parse_cdb(SCSIDevice *dev, SCSICommand *cmd, uint8_t *buf) { int rc; @@ -1391,326 +1314,6 @@ void scsi_device_report_change(SCSIDevice *dev, SCS= ISense sense) } } =20 -/* - * Predefined sense codes - */ - -/* No sense data available */ -const struct SCSISense sense_code_NO_SENSE =3D { - .key =3D NO_SENSE , .asc =3D 0x00 , .ascq =3D 0x00 -}; - -/* LUN not ready, Manual intervention required */ -const struct SCSISense sense_code_LUN_NOT_READY =3D { - .key =3D NOT_READY, .asc =3D 0x04, .ascq =3D 0x03 -}; - -/* LUN not ready, Medium not present */ -const struct SCSISense sense_code_NO_MEDIUM =3D { - .key =3D NOT_READY, .asc =3D 0x3a, .ascq =3D 0x00 -}; - -/* LUN not ready, medium removal prevented */ -const struct SCSISense sense_code_NOT_READY_REMOVAL_PREVENTED =3D { - .key =3D NOT_READY, .asc =3D 0x53, .ascq =3D 0x02 -}; - -/* Hardware error, internal target failure */ -const struct SCSISense sense_code_TARGET_FAILURE =3D { - .key =3D HARDWARE_ERROR, .asc =3D 0x44, .ascq =3D 0x00 -}; - -/* Illegal request, invalid command operation code */ -const struct SCSISense sense_code_INVALID_OPCODE =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x20, .ascq =3D 0x00 -}; - -/* Illegal request, LBA out of range */ -const struct SCSISense sense_code_LBA_OUT_OF_RANGE =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x21, .ascq =3D 0x00 -}; - -/* Illegal request, Invalid field in CDB */ -const struct SCSISense sense_code_INVALID_FIELD =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x24, .ascq =3D 0x00 -}; - -/* Illegal request, Invalid field in parameter list */ -const struct SCSISense sense_code_INVALID_PARAM =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x26, .ascq =3D 0x00 -}; - -/* Illegal request, Parameter list length error */ -const struct SCSISense sense_code_INVALID_PARAM_LEN =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x1a, .ascq =3D 0x00 -}; - -/* Illegal request, LUN not supported */ -const struct SCSISense sense_code_LUN_NOT_SUPPORTED =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x25, .ascq =3D 0x00 -}; - -/* Illegal request, Saving parameters not supported */ -const struct SCSISense sense_code_SAVING_PARAMS_NOT_SUPPORTED =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x39, .ascq =3D 0x00 -}; - -/* Illegal request, Incompatible medium installed */ -const struct SCSISense sense_code_INCOMPATIBLE_FORMAT =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x30, .ascq =3D 0x00 -}; - -/* Illegal request, medium removal prevented */ -const struct SCSISense sense_code_ILLEGAL_REQ_REMOVAL_PREVENTED =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x53, .ascq =3D 0x02 -}; - -/* Illegal request, Invalid Transfer Tag */ -const struct SCSISense sense_code_INVALID_TAG =3D { - .key =3D ILLEGAL_REQUEST, .asc =3D 0x4b, .ascq =3D 0x01 -}; - -/* Command aborted, I/O process terminated */ -const struct SCSISense sense_code_IO_ERROR =3D { - .key =3D ABORTED_COMMAND, .asc =3D 0x00, .ascq =3D 0x06 -}; - -/* Command aborted, I_T Nexus loss occurred */ -const struct SCSISense sense_code_I_T_NEXUS_LOSS =3D { - .key =3D ABORTED_COMMAND, .asc =3D 0x29, .ascq =3D 0x07 -}; - -/* Command aborted, Logical Unit failure */ -const struct SCSISense sense_code_LUN_FAILURE =3D { - .key =3D ABORTED_COMMAND, .asc =3D 0x3e, .ascq =3D 0x01 -}; - -/* Command aborted, Overlapped Commands Attempted */ -const struct SCSISense sense_code_OVERLAPPED_COMMANDS =3D { - .key =3D ABORTED_COMMAND, .asc =3D 0x4e, .ascq =3D 0x00 -}; - -/* Unit attention, Capacity data has changed */ -const struct SCSISense sense_code_CAPACITY_CHANGED =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x2a, .ascq =3D 0x09 -}; - -/* Unit attention, Power on, reset or bus device reset occurred */ -const struct SCSISense sense_code_RESET =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x29, .ascq =3D 0x00 -}; - -/* Unit attention, No medium */ -const struct SCSISense sense_code_UNIT_ATTENTION_NO_MEDIUM =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x3a, .ascq =3D 0x00 -}; - -/* Unit attention, Medium may have changed */ -const struct SCSISense sense_code_MEDIUM_CHANGED =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x28, .ascq =3D 0x00 -}; - -/* Unit attention, Reported LUNs data has changed */ -const struct SCSISense sense_code_REPORTED_LUNS_CHANGED =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x3f, .ascq =3D 0x0e -}; - -/* Unit attention, Device internal reset */ -const struct SCSISense sense_code_DEVICE_INTERNAL_RESET =3D { - .key =3D UNIT_ATTENTION, .asc =3D 0x29, .ascq =3D 0x04 -}; - -/* Data Protection, Write Protected */ -const struct SCSISense sense_code_WRITE_PROTECTED =3D { - .key =3D DATA_PROTECT, .asc =3D 0x27, .ascq =3D 0x00 -}; - -/* Data Protection, Space Allocation Failed Write Protect */ -const struct SCSISense sense_code_SPACE_ALLOC_FAILED =3D { - .key =3D DATA_PROTECT, .asc =3D 0x27, .ascq =3D 0x07 -}; - -/* - * scsi_convert_sense - * - * Convert between fixed and descriptor sense buffers - */ -int scsi_convert_sense(uint8_t *in_buf, int in_len, - uint8_t *buf, int len, bool fixed) -{ - bool fixed_in; - SCSISense sense; - if (!fixed && len < 8) { - return 0; - } - - if (in_len =3D=3D 0) { - sense.key =3D NO_SENSE; - sense.asc =3D 0; - sense.ascq =3D 0; - } else { - fixed_in =3D (in_buf[0] & 2) =3D=3D 0; - - if (fixed =3D=3D fixed_in) { - memcpy(buf, in_buf, MIN(len, in_len)); - return MIN(len, in_len); - } - - if (fixed_in) { - sense.key =3D in_buf[2]; - sense.asc =3D in_buf[12]; - sense.ascq =3D in_buf[13]; - } else { - sense.key =3D in_buf[1]; - sense.asc =3D in_buf[2]; - sense.ascq =3D in_buf[3]; - } - } - - memset(buf, 0, len); - if (fixed) { - /* Return fixed format sense buffer */ - buf[0] =3D 0x70; - buf[2] =3D sense.key; - buf[7] =3D 10; - buf[12] =3D sense.asc; - buf[13] =3D sense.ascq; - return MIN(len, SCSI_SENSE_LEN); - } else { - /* Return descriptor format sense buffer */ - buf[0] =3D 0x72; - buf[1] =3D sense.key; - buf[2] =3D sense.asc; - buf[3] =3D sense.ascq; - return 8; - } -} - -const char *scsi_command_name(uint8_t cmd) -{ - static const char *names[] =3D { - [ TEST_UNIT_READY ] =3D "TEST_UNIT_READY", - [ REWIND ] =3D "REWIND", - [ REQUEST_SENSE ] =3D "REQUEST_SENSE", - [ FORMAT_UNIT ] =3D "FORMAT_UNIT", - [ READ_BLOCK_LIMITS ] =3D "READ_BLOCK_LIMITS", - [ REASSIGN_BLOCKS ] =3D "REASSIGN_BLOCKS/INITIALIZE ELEME= NT STATUS", - /* LOAD_UNLOAD and INITIALIZE_ELEMENT_STATUS use the same operatio= n code */ - [ READ_6 ] =3D "READ_6", - [ WRITE_6 ] =3D "WRITE_6", - [ SET_CAPACITY ] =3D "SET_CAPACITY", - [ READ_REVERSE ] =3D "READ_REVERSE", - [ WRITE_FILEMARKS ] =3D "WRITE_FILEMARKS", - [ SPACE ] =3D "SPACE", - [ INQUIRY ] =3D "INQUIRY", - [ RECOVER_BUFFERED_DATA ] =3D "RECOVER_BUFFERED_DATA", - [ MAINTENANCE_IN ] =3D "MAINTENANCE_IN", - [ MAINTENANCE_OUT ] =3D "MAINTENANCE_OUT", - [ MODE_SELECT ] =3D "MODE_SELECT", - [ RESERVE ] =3D "RESERVE", - [ RELEASE ] =3D "RELEASE", - [ COPY ] =3D "COPY", - [ ERASE ] =3D "ERASE", - [ MODE_SENSE ] =3D "MODE_SENSE", - [ START_STOP ] =3D "START_STOP/LOAD_UNLOAD", - /* LOAD_UNLOAD and START_STOP use the same operation code */ - [ RECEIVE_DIAGNOSTIC ] =3D "RECEIVE_DIAGNOSTIC", - [ SEND_DIAGNOSTIC ] =3D "SEND_DIAGNOSTIC", - [ ALLOW_MEDIUM_REMOVAL ] =3D "ALLOW_MEDIUM_REMOVAL", - [ READ_CAPACITY_10 ] =3D "READ_CAPACITY_10", - [ READ_10 ] =3D "READ_10", - [ WRITE_10 ] =3D "WRITE_10", - [ SEEK_10 ] =3D "SEEK_10/POSITION_TO_ELEMENT", - /* SEEK_10 and POSITION_TO_ELEMENT use the same operation code */ - [ WRITE_VERIFY_10 ] =3D "WRITE_VERIFY_10", - [ VERIFY_10 ] =3D "VERIFY_10", - [ SEARCH_HIGH ] =3D "SEARCH_HIGH", - [ SEARCH_EQUAL ] =3D "SEARCH_EQUAL", - [ SEARCH_LOW ] =3D "SEARCH_LOW", - [ SET_LIMITS ] =3D "SET_LIMITS", - [ PRE_FETCH ] =3D "PRE_FETCH/READ_POSITION", - /* READ_POSITION and PRE_FETCH use the same operation code */ - [ SYNCHRONIZE_CACHE ] =3D "SYNCHRONIZE_CACHE", - [ LOCK_UNLOCK_CACHE ] =3D "LOCK_UNLOCK_CACHE", - [ READ_DEFECT_DATA ] =3D "READ_DEFECT_DATA/INITIALIZE_ELEM= ENT_STATUS_WITH_RANGE", - /* READ_DEFECT_DATA and INITIALIZE_ELEMENT_STATUS_WITH_RANGE use t= he same operation code */ - [ MEDIUM_SCAN ] =3D "MEDIUM_SCAN", - [ COMPARE ] =3D "COMPARE", - [ COPY_VERIFY ] =3D "COPY_VERIFY", - [ WRITE_BUFFER ] =3D "WRITE_BUFFER", - [ READ_BUFFER ] =3D "READ_BUFFER", - [ UPDATE_BLOCK ] =3D "UPDATE_BLOCK", - [ READ_LONG_10 ] =3D "READ_LONG_10", - [ WRITE_LONG_10 ] =3D "WRITE_LONG_10", - [ CHANGE_DEFINITION ] =3D "CHANGE_DEFINITION", - [ WRITE_SAME_10 ] =3D "WRITE_SAME_10", - [ UNMAP ] =3D "UNMAP", - [ READ_TOC ] =3D "READ_TOC", - [ REPORT_DENSITY_SUPPORT ] =3D "REPORT_DENSITY_SUPPORT", - [ SANITIZE ] =3D "SANITIZE", - [ GET_CONFIGURATION ] =3D "GET_CONFIGURATION", - [ LOG_SELECT ] =3D "LOG_SELECT", - [ LOG_SENSE ] =3D "LOG_SENSE", - [ MODE_SELECT_10 ] =3D "MODE_SELECT_10", - [ RESERVE_10 ] =3D "RESERVE_10", - [ RELEASE_10 ] =3D "RELEASE_10", - [ MODE_SENSE_10 ] =3D "MODE_SENSE_10", - [ PERSISTENT_RESERVE_IN ] =3D "PERSISTENT_RESERVE_IN", - [ PERSISTENT_RESERVE_OUT ] =3D "PERSISTENT_RESERVE_OUT", - [ WRITE_FILEMARKS_16 ] =3D "WRITE_FILEMARKS_16", - [ EXTENDED_COPY ] =3D "EXTENDED_COPY", - [ ATA_PASSTHROUGH_16 ] =3D "ATA_PASSTHROUGH_16", - [ ACCESS_CONTROL_IN ] =3D "ACCESS_CONTROL_IN", - [ ACCESS_CONTROL_OUT ] =3D "ACCESS_CONTROL_OUT", - [ READ_16 ] =3D "READ_16", - [ COMPARE_AND_WRITE ] =3D "COMPARE_AND_WRITE", - [ WRITE_16 ] =3D "WRITE_16", - [ WRITE_VERIFY_16 ] =3D "WRITE_VERIFY_16", - [ VERIFY_16 ] =3D "VERIFY_16", - [ PRE_FETCH_16 ] =3D "PRE_FETCH_16", - [ SYNCHRONIZE_CACHE_16 ] =3D "SPACE_16/SYNCHRONIZE_CACHE_16", - /* SPACE_16 and SYNCHRONIZE_CACHE_16 use the same operation code */ - [ LOCATE_16 ] =3D "LOCATE_16", - [ WRITE_SAME_16 ] =3D "ERASE_16/WRITE_SAME_16", - /* ERASE_16 and WRITE_SAME_16 use the same operation code */ - [ SERVICE_ACTION_IN_16 ] =3D "SERVICE_ACTION_IN_16", - [ WRITE_LONG_16 ] =3D "WRITE_LONG_16", - [ REPORT_LUNS ] =3D "REPORT_LUNS", - [ ATA_PASSTHROUGH_12 ] =3D "BLANK/ATA_PASSTHROUGH_12", - [ MOVE_MEDIUM ] =3D "MOVE_MEDIUM", - [ EXCHANGE_MEDIUM ] =3D "EXCHANGE MEDIUM", - [ READ_12 ] =3D "READ_12", - [ WRITE_12 ] =3D "WRITE_12", - [ ERASE_12 ] =3D "ERASE_12/GET_PERFORMANCE", - /* ERASE_12 and GET_PERFORMANCE use the same operation code */ - [ SERVICE_ACTION_IN_12 ] =3D "SERVICE_ACTION_IN_12", - [ WRITE_VERIFY_12 ] =3D "WRITE_VERIFY_12", - [ VERIFY_12 ] =3D "VERIFY_12", - [ SEARCH_HIGH_12 ] =3D "SEARCH_HIGH_12", - [ SEARCH_EQUAL_12 ] =3D "SEARCH_EQUAL_12", - [ SEARCH_LOW_12 ] =3D "SEARCH_LOW_12", - [ READ_ELEMENT_STATUS ] =3D "READ_ELEMENT_STATUS", - [ SEND_VOLUME_TAG ] =3D "SEND_VOLUME_TAG/SET_STREAMING", - /* SEND_VOLUME_TAG and SET_STREAMING use the same operation code */ - [ READ_CD ] =3D "READ_CD", - [ READ_DEFECT_DATA_12 ] =3D "READ_DEFECT_DATA_12", - [ READ_DVD_STRUCTURE ] =3D "READ_DVD_STRUCTURE", - [ RESERVE_TRACK ] =3D "RESERVE_TRACK", - [ SEND_CUE_SHEET ] =3D "SEND_CUE_SHEET", - [ SEND_DVD_STRUCTURE ] =3D "SEND_DVD_STRUCTURE", - [ SET_CD_SPEED ] =3D "SET_CD_SPEED", - [ SET_READ_AHEAD ] =3D "SET_READ_AHEAD", - [ ALLOW_OVERWRITE ] =3D "ALLOW_OVERWRITE", - [ MECHANISM_STATUS ] =3D "MECHANISM_STATUS", - [ GET_EVENT_STATUS_NOTIFICATION ] =3D "GET_EVENT_STATUS_NOTIFICATI= ON", - [ READ_DISC_INFORMATION ] =3D "READ_DISC_INFORMATION", - }; - - if (cmd >=3D ARRAY_SIZE(names) || names[cmd] =3D=3D NULL) - return "*UNKNOWN*"; - return names[cmd]; -} - SCSIRequest *scsi_req_ref(SCSIRequest *req) { assert(req->refcount > 0); diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 990ba04..ac8be40 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -39,7 +39,6 @@ do { printf("scsi-disk: " fmt , ## __VA_ARGS__); } while = (0) #include "hw/block/block.h" #include "sysemu/dma.h" #include "qemu/cutils.h" -#include "scsi/scsi.h" =20 #ifdef __linux #include diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 7e1cbab..7a8f500 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -36,14 +36,6 @@ do { fprintf(stderr, "scsi-generic: " fmt , ## __VA_ARGS= __); } while (0) #include #include "block/scsi.h" =20 -#define SG_ERR_DRIVER_TIMEOUT 0x06 -#define SG_ERR_DRIVER_SENSE 0x08 - -#define SG_ERR_DID_OK 0x00 -#define SG_ERR_DID_NO_CONNECT 0x01 -#define SG_ERR_DID_BUS_BUSY 0x02 -#define SG_ERR_DID_TIME_OUT 0x03 - #ifndef MAX_UINT #define MAX_UINT ((unsigned int)-1) #endif diff --git a/include/block/scsi.h b/include/block/scsi.h index cdf0a58..a141dd7 100644 --- a/include/block/scsi.h +++ b/include/block/scsi.h @@ -150,8 +150,6 @@ #define READ_CD 0xbe #define SEND_DVD_STRUCTURE 0xbf =20 -const char *scsi_command_name(uint8_t cmd); - /* * SERVICE ACTION IN subcodes */ diff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h index 6ef67fb..23a8ee6 100644 --- a/include/hw/scsi/scsi.h +++ b/include/hw/scsi/scsi.h @@ -4,45 +4,20 @@ #include "hw/qdev.h" #include "hw/block/block.h" #include "sysemu/sysemu.h" +#include "scsi/utils.h" #include "qemu/notify.h" =20 #define MAX_SCSI_DEVS 255 =20 -#define SCSI_CMD_BUF_SIZE 16 -#define SCSI_SENSE_LEN 18 -#define SCSI_SENSE_LEN_SCANNER 32 -#define SCSI_INQUIRY_LEN 36 - typedef struct SCSIBus SCSIBus; typedef struct SCSIBusInfo SCSIBusInfo; -typedef struct SCSICommand SCSICommand; typedef struct SCSIDevice SCSIDevice; typedef struct SCSIRequest SCSIRequest; typedef struct SCSIReqOps SCSIReqOps; =20 -enum SCSIXferMode { - SCSI_XFER_NONE, /* TEST_UNIT_READY, ... */ - SCSI_XFER_FROM_DEV, /* READ, INQUIRY, MODE_SENSE, ... */ - SCSI_XFER_TO_DEV, /* WRITE, MODE_SELECT, ... */ -}; - -typedef struct SCSISense { - uint8_t key; - uint8_t asc; - uint8_t ascq; -} SCSISense; - #define SCSI_SENSE_BUF_SIZE_OLD 96 #define SCSI_SENSE_BUF_SIZE 252 =20 -struct SCSICommand { - uint8_t buf[SCSI_CMD_BUF_SIZE]; - int len; - size_t xfer; - uint64_t lba; - enum SCSIXferMode mode; -}; - struct SCSIRequest { SCSIBus *bus; SCSIDevice *dev; @@ -180,73 +155,6 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, Bl= ockBackend *blk, void scsi_bus_legacy_handle_cmdline(SCSIBus *bus, bool deprecated); void scsi_legacy_handle_cmdline(void); =20 -/* - * Predefined sense codes - */ - -/* No sense data available */ -extern const struct SCSISense sense_code_NO_SENSE; -/* LUN not ready, Manual intervention required */ -extern const struct SCSISense sense_code_LUN_NOT_READY; -/* LUN not ready, Medium not present */ -extern const struct SCSISense sense_code_NO_MEDIUM; -/* LUN not ready, medium removal prevented */ -extern const struct SCSISense sense_code_NOT_READY_REMOVAL_PREVENTED; -/* Hardware error, internal target failure */ -extern const struct SCSISense sense_code_TARGET_FAILURE; -/* Illegal request, invalid command operation code */ -extern const struct SCSISense sense_code_INVALID_OPCODE; -/* Illegal request, LBA out of range */ -extern const struct SCSISense sense_code_LBA_OUT_OF_RANGE; -/* Illegal request, Invalid field in CDB */ -extern const struct SCSISense sense_code_INVALID_FIELD; -/* Illegal request, Invalid field in parameter list */ -extern const struct SCSISense sense_code_INVALID_PARAM; -/* Illegal request, Parameter list length error */ -extern const struct SCSISense sense_code_INVALID_PARAM_LEN; -/* Illegal request, LUN not supported */ -extern const struct SCSISense sense_code_LUN_NOT_SUPPORTED; -/* Illegal request, Saving parameters not supported */ -extern const struct SCSISense sense_code_SAVING_PARAMS_NOT_SUPPORTED; -/* Illegal request, Incompatible format */ -extern const struct SCSISense sense_code_INCOMPATIBLE_FORMAT; -/* Illegal request, medium removal prevented */ -extern const struct SCSISense sense_code_ILLEGAL_REQ_REMOVAL_PREVENTED; -/* Illegal request, Invalid Transfer Tag */ -extern const struct SCSISense sense_code_INVALID_TAG; -/* Command aborted, I/O process terminated */ -extern const struct SCSISense sense_code_IO_ERROR; -/* Command aborted, I_T Nexus loss occurred */ -extern const struct SCSISense sense_code_I_T_NEXUS_LOSS; -/* Command aborted, Logical Unit failure */ -extern const struct SCSISense sense_code_LUN_FAILURE; -/* Command aborted, Overlapped Commands Attempted */ -extern const struct SCSISense sense_code_OVERLAPPED_COMMANDS; -/* LUN not ready, Capacity data has changed */ -extern const struct SCSISense sense_code_CAPACITY_CHANGED; -/* LUN not ready, Medium not present */ -extern const struct SCSISense sense_code_UNIT_ATTENTION_NO_MEDIUM; -/* Unit attention, Power on, reset or bus device reset occurred */ -extern const struct SCSISense sense_code_RESET; -/* Unit attention, Medium may have changed*/ -extern const struct SCSISense sense_code_MEDIUM_CHANGED; -/* Unit attention, Reported LUNs data has changed */ -extern const struct SCSISense sense_code_REPORTED_LUNS_CHANGED; -/* Unit attention, Device internal reset */ -extern const struct SCSISense sense_code_DEVICE_INTERNAL_RESET; -/* Data Protection, Write Protected */ -extern const struct SCSISense sense_code_WRITE_PROTECTED; -/* Data Protection, Space Allocation Failed Write Protect */ -extern const struct SCSISense sense_code_SPACE_ALLOC_FAILED; - -#define SENSE_CODE(x) sense_code_ ## x - -uint32_t scsi_data_cdb_xfer(uint8_t *buf); -uint32_t scsi_cdb_xfer(uint8_t *buf); -int scsi_cdb_length(uint8_t *buf); -int scsi_convert_sense(uint8_t *in_buf, int in_len, - uint8_t *buf, int len, bool fixed); - SCSIRequest *scsi_req_alloc(const SCSIReqOps *reqops, SCSIDevice *d, uint32_t tag, uint32_t lun, void *hba_private); SCSIRequest *scsi_req_new(SCSIDevice *d, uint32_t tag, uint32_t lun, diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h deleted file mode 100644 index fe33038..0000000 --- a/include/scsi/scsi.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * SCSI helpers - * - * Copyright 2017 Red Hat, Inc. - * - * Authors: - * Fam Zheng - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the F= ree - * Software Foundation; either version 2 of the License, or (at your optio= n) - * any later version. - */ -#ifndef QEMU_SCSI_H -#define QEMU_SCSI_H - -int scsi_sense_to_errno(int key, int asc, int ascq); -int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size); - -#endif diff --git a/include/scsi/utils.h b/include/scsi/utils.h new file mode 100644 index 0000000..90bf4dc --- /dev/null +++ b/include/scsi/utils.h @@ -0,0 +1,119 @@ +#ifndef SCSI_UTILS_H +#define SCSI_UTILS_H 1 + +#ifdef CONFIG_LINUX +#include +#endif + +#define SCSI_CMD_BUF_SIZE 16 +#define SCSI_SENSE_LEN 18 +#define SCSI_SENSE_LEN_SCANNER 32 +#define SCSI_INQUIRY_LEN 36 + +enum SCSIXferMode { + SCSI_XFER_NONE, /* TEST_UNIT_READY, ... */ + SCSI_XFER_FROM_DEV, /* READ, INQUIRY, MODE_SENSE, ... */ + SCSI_XFER_TO_DEV, /* WRITE, MODE_SELECT, ... */ +}; + +typedef struct SCSICommand { + uint8_t buf[SCSI_CMD_BUF_SIZE]; + int len; + size_t xfer; + uint64_t lba; + enum SCSIXferMode mode; +} SCSICommand; + +typedef struct SCSISense { + uint8_t key; + uint8_t asc; + uint8_t ascq; +} SCSISense; + +/* + * Predefined sense codes + */ + +/* No sense data available */ +extern const struct SCSISense sense_code_NO_SENSE; +/* LUN not ready, Manual intervention required */ +extern const struct SCSISense sense_code_LUN_NOT_READY; +/* LUN not ready, Medium not present */ +extern const struct SCSISense sense_code_NO_MEDIUM; +/* LUN not ready, medium removal prevented */ +extern const struct SCSISense sense_code_NOT_READY_REMOVAL_PREVENTED; +/* Hardware error, internal target failure */ +extern const struct SCSISense sense_code_TARGET_FAILURE; +/* Illegal request, invalid command operation code */ +extern const struct SCSISense sense_code_INVALID_OPCODE; +/* Illegal request, LBA out of range */ +extern const struct SCSISense sense_code_LBA_OUT_OF_RANGE; +/* Illegal request, Invalid field in CDB */ +extern const struct SCSISense sense_code_INVALID_FIELD; +/* Illegal request, Invalid field in parameter list */ +extern const struct SCSISense sense_code_INVALID_PARAM; +/* Illegal request, Parameter list length error */ +extern const struct SCSISense sense_code_INVALID_PARAM_LEN; +/* Illegal request, LUN not supported */ +extern const struct SCSISense sense_code_LUN_NOT_SUPPORTED; +/* Illegal request, Saving parameters not supported */ +extern const struct SCSISense sense_code_SAVING_PARAMS_NOT_SUPPORTED; +/* Illegal request, Incompatible format */ +extern const struct SCSISense sense_code_INCOMPATIBLE_FORMAT; +/* Illegal request, medium removal prevented */ +extern const struct SCSISense sense_code_ILLEGAL_REQ_REMOVAL_PREVENTED; +/* Illegal request, Invalid Transfer Tag */ +extern const struct SCSISense sense_code_INVALID_TAG; +/* Command aborted, I/O process terminated */ +extern const struct SCSISense sense_code_IO_ERROR; +/* Command aborted, I_T Nexus loss occurred */ +extern const struct SCSISense sense_code_I_T_NEXUS_LOSS; +/* Command aborted, Logical Unit failure */ +extern const struct SCSISense sense_code_LUN_FAILURE; +/* Command aborted, Overlapped Commands Attempted */ +extern const struct SCSISense sense_code_OVERLAPPED_COMMANDS; +/* LUN not ready, Capacity data has changed */ +extern const struct SCSISense sense_code_CAPACITY_CHANGED; +/* LUN not ready, Medium not present */ +extern const struct SCSISense sense_code_UNIT_ATTENTION_NO_MEDIUM; +/* Unit attention, Power on, reset or bus device reset occurred */ +extern const struct SCSISense sense_code_RESET; +/* Unit attention, Medium may have changed*/ +extern const struct SCSISense sense_code_MEDIUM_CHANGED; +/* Unit attention, Reported LUNs data has changed */ +extern const struct SCSISense sense_code_REPORTED_LUNS_CHANGED; +/* Unit attention, Device internal reset */ +extern const struct SCSISense sense_code_DEVICE_INTERNAL_RESET; +/* Data Protection, Write Protected */ +extern const struct SCSISense sense_code_WRITE_PROTECTED; +/* Data Protection, Space Allocation Failed Write Protect */ +extern const struct SCSISense sense_code_SPACE_ALLOC_FAILED; + +#define SENSE_CODE(x) sense_code_ ## x + +int scsi_sense_to_errno(int key, int asc, int ascq); +int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size); + +int scsi_convert_sense(uint8_t *in_buf, int in_len, + uint8_t *buf, int len, bool fixed); +const char *scsi_command_name(uint8_t cmd); + +uint64_t scsi_cmd_lba(SCSICommand *cmd); +uint32_t scsi_data_cdb_xfer(uint8_t *buf); +uint32_t scsi_cdb_xfer(uint8_t *buf); +int scsi_cdb_length(uint8_t *buf); + +/* Linux SG_IO interface. */ +#ifdef CONFIG_LINUX +#define SG_ERR_DRIVER_TIMEOUT 0x06 +#define SG_ERR_DRIVER_SENSE 0x08 + +#define SG_ERR_DID_OK 0x00 +#define SG_ERR_DID_NO_CONNECT 0x01 +#define SG_ERR_DID_BUS_BUSY 0x02 +#define SG_ERR_DID_TIME_OUT 0x03 + +#define SG_ERR_DRIVER_SENSE 0x08 +#endif + +#endif diff --git a/scsi/Makefile.objs b/scsi/Makefile.objs new file mode 100644 index 0000000..31b82a5 --- /dev/null +++ b/scsi/Makefile.objs @@ -0,0 +1 @@ +block-obj-y +=3D utils.o diff --git a/scsi/utils.c b/scsi/utils.c new file mode 100644 index 0000000..2327e06 --- /dev/null +++ b/scsi/utils.c @@ -0,0 +1,492 @@ +/* + * SCSI helpers + * + * Copyright 2017 Red Hat, Inc. + * + * Authors: + * Fam Zheng + * Paolo Bonzini + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the F= ree + * Software Foundation; either version 2 of the License, or (at your optio= n) + * any later version. + */ + +#include "qemu/osdep.h" +#include "block/scsi.h" +#include "scsi/utils.h" +#include "qemu/bswap.h" + +uint32_t scsi_data_cdb_xfer(uint8_t *buf) +{ + if ((buf[0] >> 5) =3D=3D 0 && buf[4] =3D=3D 0) { + return 256; + } else { + return scsi_cdb_xfer(buf); + } +} + +uint32_t scsi_cdb_xfer(uint8_t *buf) +{ + switch (buf[0] >> 5) { + case 0: + return buf[4]; + break; + case 1: + case 2: + return lduw_be_p(&buf[7]); + break; + case 4: + return ldl_be_p(&buf[10]) & 0xffffffffULL; + break; + case 5: + return ldl_be_p(&buf[6]) & 0xffffffffULL; + break; + default: + return -1; + } +} + +uint64_t scsi_cmd_lba(SCSICommand *cmd) +{ + uint8_t *buf =3D cmd->buf; + uint64_t lba; + + switch (buf[0] >> 5) { + case 0: + lba =3D ldl_be_p(&buf[0]) & 0x1fffff; + break; + case 1: + case 2: + case 5: + lba =3D ldl_be_p(&buf[2]) & 0xffffffffULL; + break; + case 4: + lba =3D ldq_be_p(&buf[2]); + break; + default: + lba =3D -1; + + } + return lba; +} + +int scsi_cdb_length(uint8_t *buf) +{ + int cdb_len; + + switch (buf[0] >> 5) { + case 0: + cdb_len =3D 6; + break; + case 1: + case 2: + cdb_len =3D 10; + break; + case 4: + cdb_len =3D 16; + break; + case 5: + cdb_len =3D 12; + break; + default: + cdb_len =3D -1; + } + return cdb_len; +} + +/* + * Predefined sense codes + */ + +/* No sense data available */ +const struct SCSISense sense_code_NO_SENSE =3D { + .key =3D NO_SENSE , .asc =3D 0x00 , .ascq =3D 0x00 +}; + +/* LUN not ready, Manual intervention required */ +const struct SCSISense sense_code_LUN_NOT_READY =3D { + .key =3D NOT_READY, .asc =3D 0x04, .ascq =3D 0x03 +}; + +/* LUN not ready, Medium not present */ +const struct SCSISense sense_code_NO_MEDIUM =3D { + .key =3D NOT_READY, .asc =3D 0x3a, .ascq =3D 0x00 +}; + +/* LUN not ready, medium removal prevented */ +const struct SCSISense sense_code_NOT_READY_REMOVAL_PREVENTED =3D { + .key =3D NOT_READY, .asc =3D 0x53, .ascq =3D 0x02 +}; + +/* Hardware error, internal target failure */ +const struct SCSISense sense_code_TARGET_FAILURE =3D { + .key =3D HARDWARE_ERROR, .asc =3D 0x44, .ascq =3D 0x00 +}; + +/* Illegal request, invalid command operation code */ +const struct SCSISense sense_code_INVALID_OPCODE =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x20, .ascq =3D 0x00 +}; + +/* Illegal request, LBA out of range */ +const struct SCSISense sense_code_LBA_OUT_OF_RANGE =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x21, .ascq =3D 0x00 +}; + +/* Illegal request, Invalid field in CDB */ +const struct SCSISense sense_code_INVALID_FIELD =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x24, .ascq =3D 0x00 +}; + +/* Illegal request, Invalid field in parameter list */ +const struct SCSISense sense_code_INVALID_PARAM =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x26, .ascq =3D 0x00 +}; + +/* Illegal request, Parameter list length error */ +const struct SCSISense sense_code_INVALID_PARAM_LEN =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x1a, .ascq =3D 0x00 +}; + +/* Illegal request, LUN not supported */ +const struct SCSISense sense_code_LUN_NOT_SUPPORTED =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x25, .ascq =3D 0x00 +}; + +/* Illegal request, Saving parameters not supported */ +const struct SCSISense sense_code_SAVING_PARAMS_NOT_SUPPORTED =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x39, .ascq =3D 0x00 +}; + +/* Illegal request, Incompatible medium installed */ +const struct SCSISense sense_code_INCOMPATIBLE_FORMAT =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x30, .ascq =3D 0x00 +}; + +/* Illegal request, medium removal prevented */ +const struct SCSISense sense_code_ILLEGAL_REQ_REMOVAL_PREVENTED =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x53, .ascq =3D 0x02 +}; + +/* Illegal request, Invalid Transfer Tag */ +const struct SCSISense sense_code_INVALID_TAG =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x4b, .ascq =3D 0x01 +}; + +/* Command aborted, I/O process terminated */ +const struct SCSISense sense_code_IO_ERROR =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x00, .ascq =3D 0x06 +}; + +/* Command aborted, I_T Nexus loss occurred */ +const struct SCSISense sense_code_I_T_NEXUS_LOSS =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x29, .ascq =3D 0x07 +}; + +/* Command aborted, Logical Unit failure */ +const struct SCSISense sense_code_LUN_FAILURE =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x3e, .ascq =3D 0x01 +}; + +/* Command aborted, Overlapped Commands Attempted */ +const struct SCSISense sense_code_OVERLAPPED_COMMANDS =3D { + .key =3D ABORTED_COMMAND, .asc =3D 0x4e, .ascq =3D 0x00 +}; + +/* Unit attention, Capacity data has changed */ +const struct SCSISense sense_code_CAPACITY_CHANGED =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x2a, .ascq =3D 0x09 +}; + +/* Unit attention, Power on, reset or bus device reset occurred */ +const struct SCSISense sense_code_RESET =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x29, .ascq =3D 0x00 +}; + +/* Unit attention, No medium */ +const struct SCSISense sense_code_UNIT_ATTENTION_NO_MEDIUM =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x3a, .ascq =3D 0x00 +}; + +/* Unit attention, Medium may have changed */ +const struct SCSISense sense_code_MEDIUM_CHANGED =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x28, .ascq =3D 0x00 +}; + +/* Unit attention, Reported LUNs data has changed */ +const struct SCSISense sense_code_REPORTED_LUNS_CHANGED =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x3f, .ascq =3D 0x0e +}; + +/* Unit attention, Device internal reset */ +const struct SCSISense sense_code_DEVICE_INTERNAL_RESET =3D { + .key =3D UNIT_ATTENTION, .asc =3D 0x29, .ascq =3D 0x04 +}; + +/* Data Protection, Write Protected */ +const struct SCSISense sense_code_WRITE_PROTECTED =3D { + .key =3D DATA_PROTECT, .asc =3D 0x27, .ascq =3D 0x00 +}; + +/* Data Protection, Space Allocation Failed Write Protect */ +const struct SCSISense sense_code_SPACE_ALLOC_FAILED =3D { + .key =3D DATA_PROTECT, .asc =3D 0x27, .ascq =3D 0x07 +}; + +/* + * scsi_convert_sense + * + * Convert between fixed and descriptor sense buffers + */ +int scsi_convert_sense(uint8_t *in_buf, int in_len, + uint8_t *buf, int len, bool fixed) +{ + bool fixed_in; + SCSISense sense; + if (!fixed && len < 8) { + return 0; + } + + if (in_len =3D=3D 0) { + sense.key =3D NO_SENSE; + sense.asc =3D 0; + sense.ascq =3D 0; + } else { + fixed_in =3D (in_buf[0] & 2) =3D=3D 0; + + if (fixed =3D=3D fixed_in) { + memcpy(buf, in_buf, MIN(len, in_len)); + return MIN(len, in_len); + } + + if (fixed_in) { + sense.key =3D in_buf[2]; + sense.asc =3D in_buf[12]; + sense.ascq =3D in_buf[13]; + } else { + sense.key =3D in_buf[1]; + sense.asc =3D in_buf[2]; + sense.ascq =3D in_buf[3]; + } + } + + memset(buf, 0, len); + if (fixed) { + /* Return fixed format sense buffer */ + buf[0] =3D 0x70; + buf[2] =3D sense.key; + buf[7] =3D 10; + buf[12] =3D sense.asc; + buf[13] =3D sense.ascq; + return MIN(len, SCSI_SENSE_LEN); + } else { + /* Return descriptor format sense buffer */ + buf[0] =3D 0x72; + buf[1] =3D sense.key; + buf[2] =3D sense.asc; + buf[3] =3D sense.ascq; + return 8; + } +} + +int scsi_sense_to_errno(int key, int asc, int ascq) +{ + switch (key) { + case 0x00: /* NO SENSE */ + case 0x01: /* RECOVERED ERROR */ + case 0x06: /* UNIT ATTENTION */ + /* These sense keys are not errors */ + return 0; + case 0x0b: /* COMMAND ABORTED */ + return ECANCELED; + case 0x02: /* NOT READY */ + case 0x05: /* ILLEGAL REQUEST */ + case 0x07: /* DATA PROTECTION */ + /* Parse ASCQ */ + break; + default: + return EIO; + } + switch ((asc << 8) | ascq) { + case 0x1a00: /* PARAMETER LIST LENGTH ERROR */ + case 0x2000: /* INVALID OPERATION CODE */ + case 0x2400: /* INVALID FIELD IN CDB */ + case 0x2600: /* INVALID FIELD IN PARAMETER LIST */ + return EINVAL; + case 0x2100: /* LBA OUT OF RANGE */ + case 0x2707: /* SPACE ALLOC FAILED */ + return ENOSPC; + case 0x2500: /* LOGICAL UNIT NOT SUPPORTED */ + return ENOTSUP; + case 0x3a00: /* MEDIUM NOT PRESENT */ + case 0x3a01: /* MEDIUM NOT PRESENT TRAY CLOSED */ + case 0x3a02: /* MEDIUM NOT PRESENT TRAY OPEN */ + return ENOMEDIUM; + case 0x2700: /* WRITE PROTECTED */ + return EACCES; + case 0x0401: /* NOT READY, IN PROGRESS OF BECOMING READY */ + return EAGAIN; + case 0x0402: /* NOT READY, INITIALIZING COMMAND REQUIRED */ + return ENOTCONN; + default: + return EIO; + } +} + +int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size) +{ + int key, asc, ascq; + if (sense_size < 1) { + return EIO; + } + switch (sense[0]) { + case 0x70: /* Fixed format sense data. */ + if (sense_size < 14) { + return EIO; + } + key =3D sense[2] & 0xF; + asc =3D sense[12]; + ascq =3D sense[13]; + break; + case 0x72: /* Descriptor format sense data. */ + if (sense_size < 4) { + return EIO; + } + key =3D sense[1] & 0xF; + asc =3D sense[2]; + ascq =3D sense[3]; + break; + default: + return EIO; + break; + } + return scsi_sense_to_errno(key, asc, ascq); +} + +const char *scsi_command_name(uint8_t cmd) +{ + static const char *names[] =3D { + [ TEST_UNIT_READY ] =3D "TEST_UNIT_READY", + [ REWIND ] =3D "REWIND", + [ REQUEST_SENSE ] =3D "REQUEST_SENSE", + [ FORMAT_UNIT ] =3D "FORMAT_UNIT", + [ READ_BLOCK_LIMITS ] =3D "READ_BLOCK_LIMITS", + [ REASSIGN_BLOCKS ] =3D "REASSIGN_BLOCKS/INITIALIZE ELEME= NT STATUS", + /* LOAD_UNLOAD and INITIALIZE_ELEMENT_STATUS use the same operatio= n code */ + [ READ_6 ] =3D "READ_6", + [ WRITE_6 ] =3D "WRITE_6", + [ SET_CAPACITY ] =3D "SET_CAPACITY", + [ READ_REVERSE ] =3D "READ_REVERSE", + [ WRITE_FILEMARKS ] =3D "WRITE_FILEMARKS", + [ SPACE ] =3D "SPACE", + [ INQUIRY ] =3D "INQUIRY", + [ RECOVER_BUFFERED_DATA ] =3D "RECOVER_BUFFERED_DATA", + [ MAINTENANCE_IN ] =3D "MAINTENANCE_IN", + [ MAINTENANCE_OUT ] =3D "MAINTENANCE_OUT", + [ MODE_SELECT ] =3D "MODE_SELECT", + [ RESERVE ] =3D "RESERVE", + [ RELEASE ] =3D "RELEASE", + [ COPY ] =3D "COPY", + [ ERASE ] =3D "ERASE", + [ MODE_SENSE ] =3D "MODE_SENSE", + [ START_STOP ] =3D "START_STOP/LOAD_UNLOAD", + /* LOAD_UNLOAD and START_STOP use the same operation code */ + [ RECEIVE_DIAGNOSTIC ] =3D "RECEIVE_DIAGNOSTIC", + [ SEND_DIAGNOSTIC ] =3D "SEND_DIAGNOSTIC", + [ ALLOW_MEDIUM_REMOVAL ] =3D "ALLOW_MEDIUM_REMOVAL", + [ READ_CAPACITY_10 ] =3D "READ_CAPACITY_10", + [ READ_10 ] =3D "READ_10", + [ WRITE_10 ] =3D "WRITE_10", + [ SEEK_10 ] =3D "SEEK_10/POSITION_TO_ELEMENT", + /* SEEK_10 and POSITION_TO_ELEMENT use the same operation code */ + [ WRITE_VERIFY_10 ] =3D "WRITE_VERIFY_10", + [ VERIFY_10 ] =3D "VERIFY_10", + [ SEARCH_HIGH ] =3D "SEARCH_HIGH", + [ SEARCH_EQUAL ] =3D "SEARCH_EQUAL", + [ SEARCH_LOW ] =3D "SEARCH_LOW", + [ SET_LIMITS ] =3D "SET_LIMITS", + [ PRE_FETCH ] =3D "PRE_FETCH/READ_POSITION", + /* READ_POSITION and PRE_FETCH use the same operation code */ + [ SYNCHRONIZE_CACHE ] =3D "SYNCHRONIZE_CACHE", + [ LOCK_UNLOCK_CACHE ] =3D "LOCK_UNLOCK_CACHE", + [ READ_DEFECT_DATA ] =3D "READ_DEFECT_DATA/INITIALIZE_ELEM= ENT_STATUS_WITH_RANGE", + /* READ_DEFECT_DATA and INITIALIZE_ELEMENT_STATUS_WITH_RANGE use t= he same operation code */ + [ MEDIUM_SCAN ] =3D "MEDIUM_SCAN", + [ COMPARE ] =3D "COMPARE", + [ COPY_VERIFY ] =3D "COPY_VERIFY", + [ WRITE_BUFFER ] =3D "WRITE_BUFFER", + [ READ_BUFFER ] =3D "READ_BUFFER", + [ UPDATE_BLOCK ] =3D "UPDATE_BLOCK", + [ READ_LONG_10 ] =3D "READ_LONG_10", + [ WRITE_LONG_10 ] =3D "WRITE_LONG_10", + [ CHANGE_DEFINITION ] =3D "CHANGE_DEFINITION", + [ WRITE_SAME_10 ] =3D "WRITE_SAME_10", + [ UNMAP ] =3D "UNMAP", + [ READ_TOC ] =3D "READ_TOC", + [ REPORT_DENSITY_SUPPORT ] =3D "REPORT_DENSITY_SUPPORT", + [ SANITIZE ] =3D "SANITIZE", + [ GET_CONFIGURATION ] =3D "GET_CONFIGURATION", + [ LOG_SELECT ] =3D "LOG_SELECT", + [ LOG_SENSE ] =3D "LOG_SENSE", + [ MODE_SELECT_10 ] =3D "MODE_SELECT_10", + [ RESERVE_10 ] =3D "RESERVE_10", + [ RELEASE_10 ] =3D "RELEASE_10", + [ MODE_SENSE_10 ] =3D "MODE_SENSE_10", + [ PERSISTENT_RESERVE_IN ] =3D "PERSISTENT_RESERVE_IN", + [ PERSISTENT_RESERVE_OUT ] =3D "PERSISTENT_RESERVE_OUT", + [ WRITE_FILEMARKS_16 ] =3D "WRITE_FILEMARKS_16", + [ EXTENDED_COPY ] =3D "EXTENDED_COPY", + [ ATA_PASSTHROUGH_16 ] =3D "ATA_PASSTHROUGH_16", + [ ACCESS_CONTROL_IN ] =3D "ACCESS_CONTROL_IN", + [ ACCESS_CONTROL_OUT ] =3D "ACCESS_CONTROL_OUT", + [ READ_16 ] =3D "READ_16", + [ COMPARE_AND_WRITE ] =3D "COMPARE_AND_WRITE", + [ WRITE_16 ] =3D "WRITE_16", + [ WRITE_VERIFY_16 ] =3D "WRITE_VERIFY_16", + [ VERIFY_16 ] =3D "VERIFY_16", + [ PRE_FETCH_16 ] =3D "PRE_FETCH_16", + [ SYNCHRONIZE_CACHE_16 ] =3D "SPACE_16/SYNCHRONIZE_CACHE_16", + /* SPACE_16 and SYNCHRONIZE_CACHE_16 use the same operation code */ + [ LOCATE_16 ] =3D "LOCATE_16", + [ WRITE_SAME_16 ] =3D "ERASE_16/WRITE_SAME_16", + /* ERASE_16 and WRITE_SAME_16 use the same operation code */ + [ SERVICE_ACTION_IN_16 ] =3D "SERVICE_ACTION_IN_16", + [ WRITE_LONG_16 ] =3D "WRITE_LONG_16", + [ REPORT_LUNS ] =3D "REPORT_LUNS", + [ ATA_PASSTHROUGH_12 ] =3D "BLANK/ATA_PASSTHROUGH_12", + [ MOVE_MEDIUM ] =3D "MOVE_MEDIUM", + [ EXCHANGE_MEDIUM ] =3D "EXCHANGE MEDIUM", + [ READ_12 ] =3D "READ_12", + [ WRITE_12 ] =3D "WRITE_12", + [ ERASE_12 ] =3D "ERASE_12/GET_PERFORMANCE", + /* ERASE_12 and GET_PERFORMANCE use the same operation code */ + [ SERVICE_ACTION_IN_12 ] =3D "SERVICE_ACTION_IN_12", + [ WRITE_VERIFY_12 ] =3D "WRITE_VERIFY_12", + [ VERIFY_12 ] =3D "VERIFY_12", + [ SEARCH_HIGH_12 ] =3D "SEARCH_HIGH_12", + [ SEARCH_EQUAL_12 ] =3D "SEARCH_EQUAL_12", + [ SEARCH_LOW_12 ] =3D "SEARCH_LOW_12", + [ READ_ELEMENT_STATUS ] =3D "READ_ELEMENT_STATUS", + [ SEND_VOLUME_TAG ] =3D "SEND_VOLUME_TAG/SET_STREAMING", + /* SEND_VOLUME_TAG and SET_STREAMING use the same operation code */ + [ READ_CD ] =3D "READ_CD", + [ READ_DEFECT_DATA_12 ] =3D "READ_DEFECT_DATA_12", + [ READ_DVD_STRUCTURE ] =3D "READ_DVD_STRUCTURE", + [ RESERVE_TRACK ] =3D "RESERVE_TRACK", + [ SEND_CUE_SHEET ] =3D "SEND_CUE_SHEET", + [ SEND_DVD_STRUCTURE ] =3D "SEND_DVD_STRUCTURE", + [ SET_CD_SPEED ] =3D "SET_CD_SPEED", + [ SET_READ_AHEAD ] =3D "SET_READ_AHEAD", + [ ALLOW_OVERWRITE ] =3D "ALLOW_OVERWRITE", + [ MECHANISM_STATUS ] =3D "MECHANISM_STATUS", + [ GET_EVENT_STATUS_NOTIFICATION ] =3D "GET_EVENT_STATUS_NOTIFICATI= ON", + [ READ_DISC_INFORMATION ] =3D "READ_DISC_INFORMATION", + }; + + if (cmd >=3D ARRAY_SIZE(names) || names[cmd] =3D=3D NULL) { + return "*UNKNOWN*"; + } + return names[cmd]; +} diff --git a/util/Makefile.objs b/util/Makefile.objs index c9e6c49..50a55ec 100644 --- a/util/Makefile.objs +++ b/util/Makefile.objs @@ -45,4 +45,3 @@ util-obj-y +=3D qht.o util-obj-y +=3D range.o util-obj-y +=3D stats64.o util-obj-y +=3D systemd.o -util-obj-y +=3D scsi.o diff --git a/util/scsi.c b/util/scsi.c deleted file mode 100644 index 472293d..0000000 --- a/util/scsi.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * SCSI helpers - * - * Copyright 2017 Red Hat, Inc. - * - * Authors: - * Fam Zheng - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the F= ree - * Software Foundation; either version 2 of the License, or (at your optio= n) - * any later version. - */ - -#include "qemu/osdep.h" -#include "scsi/scsi.h" - -int scsi_sense_to_errno(int key, int asc, int ascq) -{ - switch (key) { - case 0x00: /* NO SENSE */ - case 0x01: /* RECOVERED ERROR */ - case 0x06: /* UNIT ATTENTION */ - /* These sense keys are not errors */ - return 0; - case 0x0b: /* COMMAND ABORTED */ - return ECANCELED; - case 0x02: /* NOT READY */ - case 0x05: /* ILLEGAL REQUEST */ - case 0x07: /* DATA PROTECTION */ - /* Parse ASCQ */ - break; - default: - return EIO; - } - switch ((asc << 8) | ascq) { - case 0x1a00: /* PARAMETER LIST LENGTH ERROR */ - case 0x2000: /* INVALID OPERATION CODE */ - case 0x2400: /* INVALID FIELD IN CDB */ - case 0x2600: /* INVALID FIELD IN PARAMETER LIST */ - return EINVAL; - case 0x2100: /* LBA OUT OF RANGE */ - case 0x2707: /* SPACE ALLOC FAILED */ - return ENOSPC; - case 0x2500: /* LOGICAL UNIT NOT SUPPORTED */ - return ENOTSUP; - case 0x3a00: /* MEDIUM NOT PRESENT */ - case 0x3a01: /* MEDIUM NOT PRESENT TRAY CLOSED */ - case 0x3a02: /* MEDIUM NOT PRESENT TRAY OPEN */ - return ENOMEDIUM; - case 0x2700: /* WRITE PROTECTED */ - return EACCES; - case 0x0401: /* NOT READY, IN PROGRESS OF BECOMING READY */ - return EAGAIN; - case 0x0402: /* NOT READY, INITIALIZING COMMAND REQUIRED */ - return ENOTCONN; - default: - return EIO; - } -} - -int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size) -{ - int key, asc, ascq; - if (sense_size < 1) { - return EIO; - } - switch (sense[0]) { - case 0x70: /* Fixed format sense data. */ - if (sense_size < 14) { - return EIO; - } - key =3D sense[2] & 0xF; - asc =3D sense[12]; - ascq =3D sense[13]; - break; - case 0x72: /* Descriptor format sense data. */ - if (sense_size < 4) { - return EIO; - } - key =3D sense[1] & 0xF; - asc =3D sense[2]; - ascq =3D sense[3]; - break; - default: - return EIO; - break; - } - return scsi_sense_to_errno(key, asc, ascq); -} --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825136907192.01650168628134; Tue, 19 Sep 2017 05:45:36 -0700 (PDT) Received: from localhost ([::1]:42630 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHuC-0008I0-6I for importer@patchew.org; Tue, 19 Sep 2017 08:45:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59723) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf7-0003oC-44 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf6-0005Gz-9c for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:01 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:37665) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf6-0005Ga-3m for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:00 -0400 Received: by mail-wr0-x244.google.com with SMTP id u48so2145775wrf.4 for ; Tue, 19 Sep 2017 05:29:59 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uIl0COuhSXoQslEjyWImp8/QxlB9YQ9nglFcpEX8yMA=; b=g20G7gFBeUe2WYI2hn/Tzr76+m2BwHkWy57AKOkwdGpP4uEp75kRYzV0xKtBx9y8Bm 5WNX9ZekV00eBt8X9ujlHEc6fa5tmFsBwMm55uT60J2YI0SkhLa9DW96S0tvhEGHpcle DX2KtPbVsai/xPG+krjuLHzcdxLrKhiyz2slSRZiEIDq9SG/hpWlvwhxeE0SrEJSeK/6 caY8iDOkVICM80Kz2YsktXyPSHm25vX0ZyUq7Qpuocm45ErrA9JTi/kQHBlqzIWRBBxX eTkT8lmRI10gprw/VEglTh/UMB97bwCIEEkirsMBs64kWuJdbxCjbAHTiN6WnsKhaf9N cWGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=uIl0COuhSXoQslEjyWImp8/QxlB9YQ9nglFcpEX8yMA=; b=c4RAecrbaJWgGxDaVS5s6Ztj7Fct9dcWo9u7PXRxzYXjA1XSqWa9HAtECpVOR5YFTK rOb28i+X7Og1tVRF0hjbwmUU6jHSGNjI6SbewDPORbHWaCdOi/Aia1c3fqx+HNRkrE5V LJO+lrbqCiCCFchMvGkxPbP86esky+9lVOHbXcCuxNtSxeKgNGws1d+HmfzbdzPYCuxZ Kmflh/UNtMSl5moiwcC6AOGhBfK0woNVezacwYyk3B12/90jnuXDSP2n559k89PUQg33 fAOe/K73RLi5kCS48BC5RC1HBa7OsiqeQnpiKlUwqjWYfY+R0ZQwibxy0uz2UfjBoNed y/CQ== X-Gm-Message-State: AHPjjUitYKWe89vf/VV5bRrvWn8yZ1GSESVVoiGjUDXf3pcg8NIPz0PX EXLs0k6kYwIej7se/KdFjMENGDn5 X-Google-Smtp-Source: AOwi7QDSpsODxMXmOpHXins0Jds3ayei5fPE4EXbRuIMoyiKxqgdWGFXghqp5WNO74Q0c7tQGHQK7A== X-Received: by 10.223.159.11 with SMTP id l11mr1307219wrf.148.1505824198795; Tue, 19 Sep 2017 05:29:58 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:03 +0200 Message-Id: <1505824179-21541-15-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PULL 14/50] scsi: introduce scsi_build_sense X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Move more knowledge of sense data format out of hw/scsi/scsi-bus.c for reusability. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-bus.c | 8 +------- include/scsi/utils.h | 2 ++ scsi/utils.c | 11 +++++++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 42920d5..652ab04 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -818,13 +818,7 @@ void scsi_req_build_sense(SCSIRequest *req, SCSISense = sense) { trace_scsi_req_build_sense(req->dev->id, req->lun, req->tag, sense.key, sense.asc, sense.ascq); - memset(req->sense, 0, 18); - req->sense[0] =3D 0x70; - req->sense[2] =3D sense.key; - req->sense[7] =3D 10; - req->sense[12] =3D sense.asc; - req->sense[13] =3D sense.ascq; - req->sense_len =3D 18; + req->sense_len =3D scsi_build_sense(req->sense, sense); } =20 static void scsi_req_enqueue_internal(SCSIRequest *req) diff --git a/include/scsi/utils.h b/include/scsi/utils.h index 90bf4dc..b49392d 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -30,6 +30,8 @@ typedef struct SCSISense { uint8_t ascq; } SCSISense; =20 +int scsi_build_sense(uint8_t *buf, SCSISense sense); + /* * Predefined sense codes */ diff --git a/scsi/utils.c b/scsi/utils.c index 2327e06..89d9167 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -96,6 +96,17 @@ int scsi_cdb_length(uint8_t *buf) return cdb_len; } =20 +int scsi_build_sense(uint8_t *buf, SCSISense sense) +{ + memset(buf, 0, 18); + buf[0] =3D 0x70; + buf[2] =3D sense.key; + buf[7] =3D 10; + buf[12] =3D sense.asc; + buf[13] =3D sense.ascq; + return 18; +} + /* * Predefined sense codes */ --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150582530352169.53540720182343; Tue, 19 Sep 2017 05:48:23 -0700 (PDT) Received: from localhost ([::1]:42645 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHws-0002JZ-PN for importer@patchew.org; Tue, 19 Sep 2017 08:48:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59754) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHf8-0003pH-EG for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf7-0005HZ-Cr for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:02 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:35300) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf7-0005HF-4S for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:01 -0400 Received: by mail-wr0-x243.google.com with SMTP id n64so2146949wrb.2 for ; Tue, 19 Sep 2017 05:30:01 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:29:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=liCLK7J5lH6EejpIZCs4jaXpVui9fWnhLEsKpyxi8Yk=; b=Hg6T7btz2xbL2GQnlHxO2fJ3OyYQqJ7IVGB0NCcPxlSU9naD4ZSj3U4LkGFb851Pqp wuPWhvaACm+J5Z/lbF4aS2ckWIjYiNgTCrswLoh0cGdiwOcutL0CK25IqzlS9CN6QCeJ 2oOK0omYaTeTduKF/2yyCR5dqhy5vk2udxDi1BNde5fgpiGlMY+zDEyaGWBSYi5GNBJe NyrQfMD4G+kzsIpE4UHLk2rLPm1UnO4qHkmJP3Uax3PpZkWGaQ/9e/8QWQLp9MLbOOl+ AOBZ72Q1Jn2oDt6dR/a8vAy2uBmvLr6FJi7IvB2Ho8mrdOyMBUTbSzXfZph0Tt54PxVv H3zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=liCLK7J5lH6EejpIZCs4jaXpVui9fWnhLEsKpyxi8Yk=; b=rbUztaiJfKdWAlbtyhUsBIkeK658eRanr6xayNCF2eHpJkFmdrVU4cFKsoaUlcSnlV +1WKFn9fd1t/yCaeABV/urSAO0JPPKX3LJyqIKO+SjvCaLdG5au0KVgQ2Kp2abjMmeSn 1n3z9d/EGkjhR47Nf2+bRTrLNnINLAKuy/a2rMFkqTt76efVh/UdxiocjWfur2T1p8vn uZ7TSmiZe0DZ2B2wlfR0ZBXYGo5R4SrFOEO7PMtBjHEammKO9y4NYfXf9ivYuXrWVqlr ubrENS+jczpleAX8vdOx5hE05uZqMAFxKXmqOpa+GmF+EDGFzh8e4m9Tl+TDcrL2xyfN cXmg== X-Gm-Message-State: AHPjjUjv/yZyRxcprIWmQqBkTSVH5B4S/7JsXJKdBU2Y9Uz3MAuZgCaB 9O/85RhxqXzHIqxbMNacYv8RZ2WL X-Google-Smtp-Source: AOwi7QAwOAYNdbiWDakBl9RV44tERrBo5pChO041ThcuX4BYvvuT4v4+CNyqZoz5diB/Rp4yTsu0IA== X-Received: by 10.223.134.231 with SMTP id 36mr1351825wry.141.1505824199799; Tue, 19 Sep 2017 05:29:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:04 +0200 Message-Id: <1505824179-21541-16-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PULL 15/50] scsi: introduce sg_io_sense_from_errno X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Move more knowledge of SG_IO out of hw/scsi/scsi-generic.c, for reusability. Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- hw/scsi/scsi-generic.c | 40 +++++++--------------------------------- include/scsi/utils.h | 3 +++ scsi/utils.c | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 33 deletions(-) diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 7a8f500..04c687e 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -81,6 +81,7 @@ static void scsi_free_request(SCSIRequest *req) static void scsi_command_complete_noio(SCSIGenericReq *r, int ret) { int status; + SCSISense sense; =20 assert(r->req.aiocb =3D=3D NULL); =20 @@ -88,42 +89,15 @@ static void scsi_command_complete_noio(SCSIGenericReq *= r, int ret) scsi_req_cancel_complete(&r->req); goto done; } - if (r->io_header.driver_status & SG_ERR_DRIVER_SENSE) { - r->req.sense_len =3D r->io_header.sb_len_wr; - } - - if (ret !=3D 0) { - switch (ret) { - case -EDOM: - status =3D TASK_SET_FULL; - break; - case -ENOMEM: - status =3D CHECK_CONDITION; - scsi_req_build_sense(&r->req, SENSE_CODE(TARGET_FAILURE)); - break; - default: - status =3D CHECK_CONDITION; - scsi_req_build_sense(&r->req, SENSE_CODE(IO_ERROR)); - break; - } - } else { - if (r->io_header.host_status =3D=3D SG_ERR_DID_NO_CONNECT || - r->io_header.host_status =3D=3D SG_ERR_DID_BUS_BUSY || - r->io_header.host_status =3D=3D SG_ERR_DID_TIME_OUT || - (r->io_header.driver_status & SG_ERR_DRIVER_TIMEOUT)) { - status =3D BUSY; - BADF("Driver Timeout\n"); - } else if (r->io_header.host_status) { - status =3D CHECK_CONDITION; - scsi_req_build_sense(&r->req, SENSE_CODE(I_T_NEXUS_LOSS)); - } else if (r->io_header.status) { - status =3D r->io_header.status; - } else if (r->io_header.driver_status & SG_ERR_DRIVER_SENSE) { - status =3D CHECK_CONDITION; + status =3D sg_io_sense_from_errno(-ret, &r->io_header, &sense); + if (status =3D=3D CHECK_CONDITION) { + if (r->io_header.driver_status & SG_ERR_DRIVER_SENSE) { + r->req.sense_len =3D r->io_header.sb_len_wr; } else { - status =3D GOOD; + scsi_req_build_sense(&r->req, sense); } } + DPRINTF("Command complete 0x%p tag=3D0x%x status=3D%d\n", r, r->req.tag, status); =20 diff --git a/include/scsi/utils.h b/include/scsi/utils.h index b49392d..d301b31 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -116,6 +116,9 @@ int scsi_cdb_length(uint8_t *buf); #define SG_ERR_DID_TIME_OUT 0x03 =20 #define SG_ERR_DRIVER_SENSE 0x08 + +int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, + SCSISense *sense); #endif =20 #endif diff --git a/scsi/utils.c b/scsi/utils.c index 89d9167..6ee9f40 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -501,3 +501,38 @@ const char *scsi_command_name(uint8_t cmd) } return names[cmd]; } + +#ifdef CONFIG_LINUX +int sg_io_sense_from_errno(int errno_value, struct sg_io_hdr *io_hdr, + SCSISense *sense) +{ + if (errno_value !=3D 0) { + switch (errno_value) { + case EDOM: + return TASK_SET_FULL; + case ENOMEM: + *sense =3D SENSE_CODE(TARGET_FAILURE); + return CHECK_CONDITION; + default: + *sense =3D SENSE_CODE(IO_ERROR); + return CHECK_CONDITION; + } + } else { + if (io_hdr->host_status =3D=3D SG_ERR_DID_NO_CONNECT || + io_hdr->host_status =3D=3D SG_ERR_DID_BUS_BUSY || + io_hdr->host_status =3D=3D SG_ERR_DID_TIME_OUT || + (io_hdr->driver_status & SG_ERR_DRIVER_TIMEOUT)) { + return BUSY; + } else if (io_hdr->host_status) { + *sense =3D SENSE_CODE(I_T_NEXUS_LOSS); + return CHECK_CONDITION; + } else if (io_hdr->status) { + return io_hdr->status; + } else if (io_hdr->driver_status & SG_ERR_DRIVER_SENSE) { + return CHECK_CONDITION; + } else { + return GOOD; + } + } +} +#endif --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824748964845.6337216998452; Tue, 19 Sep 2017 05:39:08 -0700 (PDT) Received: from localhost ([::1]:42605 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHnw-0002kX-39 for importer@patchew.org; Tue, 19 Sep 2017 08:39:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59809) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfD-0003vB-3R for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHf8-0005IX-L1 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:07 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:33568) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHf8-0005Hw-C9 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:02 -0400 Received: by mail-wm0-x241.google.com with SMTP id m127so3756503wmm.0 for ; Tue, 19 Sep 2017 05:30:02 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.29.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5VysAHy/7GWGBAtFNp506uNKWZtj+e/kWvZv79VPfrE=; b=AVpEkFg6cy12RM10SkbRKPLU0MS5LQyGnw2KiNgupjvG4vSc7FzzQacT7nG+GBA8So uXC6XUn5p2Ao5qNsB7uHZ8zZ+sHcDPFEgMTKTGMQWAMDbqjF3vr0SokDAfYTFAER3vva xVDFxX/Ra8iM/VjO6w3kDK3cdH1k+iUE0HUSP9PBq/fhtZkEFGjUeeX9SnZP+vq6W5oL uXaPYXfDgw+EK8zrAKEpl/qRRsDUblWsoNFuHUfhlb+qEF0bSp/3LWVhn0pLZbS7p81d 3Silp+6CJjndJ+CTYJ0s1kT4rTPfHx9Zyz/gqTp7woeqR5CMlfcuF+XjoHjEJPxvLzTW bsIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5VysAHy/7GWGBAtFNp506uNKWZtj+e/kWvZv79VPfrE=; b=p1g3mhYmFwSNYU04plv68qkI0uxD2CgBrYsmtTzYKP3lwGYCBQa8Znco3jwfu/QThi XXtf8DhPcArikxAr3d+/YGELY+qRzG2XUeNVzU67JYsCuHBfq4yaVwlwAP1AOOWp29hg TmtVWwZj3LJXBJPrNfWitCZsf2xJs8p206dZa2ycXqtCRqXZNLzAfgWvwVSMioQjIOc1 6hs7KX2TD5A3Up9qWo0oWbxodqQvOkoN1rNfArCMRKafzQpPfCBqkFdeOAM0L9pjPgqQ OYywBIQqSLrZWyWA/uJ/uGImuNG6qe0UOoZRzxd6F6a8ICkOWxW8ZDpDjBpeq2v2YH+a K3lg== X-Gm-Message-State: AHPjjUhlt6mG3I9+7GISFCP03BBCfr6p7Lbpc1Agx0CQpb3g8Pt1JGyq WchKiwuSVzO3G+qNcxUh4omFvnSm X-Google-Smtp-Source: AOwi7QBqIMSEib3mO/AbXbLR9nigOeYuKfviajhmdd/wGMWfcrwXGcByS0B62uV7AmLH+dzzOcIjhw== X-Received: by 10.28.236.194 with SMTP id h63mr1025307wmi.159.1505824200916; Tue, 19 Sep 2017 05:30:00 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:05 +0200 Message-Id: <1505824179-21541-17-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 16/50] scsi: move block/scsi.h to include/scsi/constants.h X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Complete the transition by renaming this header, which was shared by block/iscsi.c and the SCSI emulation code. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- block/iscsi.c | 2 +- hw/block/virtio-blk.c | 2 +- hw/scsi/megasas.c | 2 +- hw/scsi/mptendian.c | 2 +- hw/scsi/mptsas.c | 2 +- hw/scsi/scsi-bus.c | 2 +- hw/scsi/scsi-disk.c | 2 +- hw/scsi/scsi-generic.c | 2 +- hw/scsi/spapr_vscsi.c | 2 +- hw/scsi/virtio-scsi-dataplane.c | 2 +- hw/scsi/virtio-scsi.c | 2 +- hw/scsi/vmw_pvscsi.c | 2 +- hw/usb/dev-uas.c | 2 +- include/hw/ide/internal.h | 2 +- include/{block/scsi.h =3D> scsi/constants.h} | 0 scsi/utils.c | 2 +- tests/virtio-scsi-test.c | 2 +- 17 files changed, 16 insertions(+), 16 deletions(-) rename include/{block/scsi.h =3D> scsi/constants.h} (100%) diff --git a/block/iscsi.c b/block/iscsi.c index f1d3aaa..4683f3b 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -34,7 +34,7 @@ #include "qemu/bitops.h" #include "qemu/bitmap.h" #include "block/block_int.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "qemu/iov.h" #include "qemu/uuid.h" #include "qmp-commands.h" diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index a16ac75..05d1440 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -22,7 +22,7 @@ #include "sysemu/blockdev.h" #include "hw/virtio/virtio-blk.h" #include "dataplane/virtio-blk.h" -#include "block/scsi.h" +#include "scsi/constants.h" #ifdef __linux__ # include #endif diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index 734fdae..0db68aa 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -27,7 +27,7 @@ #include "hw/pci/msix.h" #include "qemu/iov.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "trace.h" #include "qapi/error.h" #include "mfi.h" diff --git a/hw/scsi/mptendian.c b/hw/scsi/mptendian.c index b7fe2a2..3415229 100644 --- a/hw/scsi/mptendian.c +++ b/hw/scsi/mptendian.c @@ -28,7 +28,7 @@ #include "hw/pci/msi.h" #include "qemu/iov.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "trace.h" =20 #include "mptsas.h" diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 765ab53..8bae8f5 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -30,7 +30,7 @@ #include "hw/pci/msi.h" #include "qemu/iov.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "trace.h" #include "qapi/error.h" #include "mptsas.h" diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 652ab04..977f7bc 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -3,7 +3,7 @@ #include "qapi/error.h" #include "qemu/error-report.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "hw/qdev.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index ac8be40..6e841fb 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -32,7 +32,7 @@ do { printf("scsi-disk: " fmt , ## __VA_ARGS__); } while = (0) #include "qapi/error.h" #include "qemu/error-report.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "sysemu/sysemu.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 04c687e..bd0d9ff 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -34,7 +34,7 @@ do { printf("scsi-generic: " fmt , ## __VA_ARGS__); } whi= le (0) do { fprintf(stderr, "scsi-generic: " fmt , ## __VA_ARGS__); } while (0) =20 #include -#include "block/scsi.h" +#include "scsi/constants.h" =20 #ifndef MAX_UINT #define MAX_UINT ((unsigned int)-1) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 55ee48c..360db53 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -36,7 +36,7 @@ #include "cpu.h" #include "hw/hw.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "srp.h" #include "hw/qdev.h" #include "hw/ppc/spapr.h" diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplan= e.c index 944ea4e..add4b3f 100644 --- a/hw/scsi/virtio-scsi-dataplane.c +++ b/hw/scsi/virtio-scsi-dataplane.c @@ -17,7 +17,7 @@ #include "qemu/error-report.h" #include "sysemu/block-backend.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" =20 diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index aca1909..3aa9971 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -21,7 +21,7 @@ #include "qemu/iov.h" #include "sysemu/block-backend.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" =20 diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index 77d8b6f..6d3f0bf 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -28,7 +28,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "hw/pci/msi.h" #include "vmw_pvscsi.h" #include "trace.h" diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index fffc424..c218b53 100644 --- a/hw/usb/dev-uas.c +++ b/hw/usb/dev-uas.c @@ -19,7 +19,7 @@ #include "hw/usb.h" #include "hw/usb/desc.h" #include "hw/scsi/scsi.h" -#include "block/scsi.h" +#include "scsi/constants.h" =20 /* --------------------------------------------------------------------- */ =20 diff --git a/include/hw/ide/internal.h b/include/hw/ide/internal.h index 7dd0db4..180e00e 100644 --- a/include/hw/ide/internal.h +++ b/include/hw/ide/internal.h @@ -11,7 +11,7 @@ #include "sysemu/dma.h" #include "sysemu/sysemu.h" #include "hw/block/block.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "qapi/error.h" =20 /* debug IDE devices */ diff --git a/include/block/scsi.h b/include/scsi/constants.h similarity index 100% rename from include/block/scsi.h rename to include/scsi/constants.h diff --git a/scsi/utils.c b/scsi/utils.c index 6ee9f40..fab60bd 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -14,7 +14,7 @@ */ =20 #include "qemu/osdep.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "scsi/utils.h" #include "qemu/bswap.h" =20 diff --git a/tests/virtio-scsi-test.c b/tests/virtio-scsi-test.c index d148512..2934305 100644 --- a/tests/virtio-scsi-test.c +++ b/tests/virtio-scsi-test.c @@ -10,7 +10,7 @@ =20 #include "qemu/osdep.h" #include "libqtest.h" -#include "block/scsi.h" +#include "scsi/constants.h" #include "libqos/libqos-pc.h" #include "libqos/libqos-spapr.h" #include "libqos/virtio.h" --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825648704419.0000333528942; Tue, 19 Sep 2017 05:54:08 -0700 (PDT) Received: from localhost ([::1]:42667 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI2R-00071P-8H for importer@patchew.org; Tue, 19 Sep 2017 08:54:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59848) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfG-0003zJ-1i for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfA-0005KG-IJ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:10 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:35862) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfA-0005Jt-CD for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:04 -0400 Received: by mail-wm0-x243.google.com with SMTP id r136so3737965wmf.3 for ; Tue, 19 Sep 2017 05:30:04 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ymmvr2V60KOYndD4j8gImm5aUXhFXWFNPn0j7DbhV3s=; b=SQEjiyWJVrXWTFYxukuN062qQyZLa3b4UOILt1tXdWixfIB4OFsxlo3lgyRDNLuz9k THPORg9+/igVo6f3p2fQ3OKA74dKW/Rh0fO4wBNqSzSo+oRq+EBr7g5Q9jUISTGaH5f6 oN2cI88BlF6Zj7po2XCAI8NU/1oynA0Yuk1WTkWNZGXzElUiF4tN0qSC854WWm8TN7Og rNpR3uO/TVaQ6lhrja03X+XExXD6UMMMv3aLj9RmpDsZXhSPSgzaAYH2S86SqjPzcIQ2 QVcD/c06d5KSY+JjhVqjSwuZxqN1WFLc3veVwSfJv/zOalLaLMdkCDNql5481rfBGjwO fjqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ymmvr2V60KOYndD4j8gImm5aUXhFXWFNPn0j7DbhV3s=; b=aZ/wPikhF589/e4zpVgBnwgURQCVFwU/OCtGy+GZs+mz36JKySGVHGm7IuNOm6xMP5 owpMV+ZLvkRZSmh/bqx9RBkPQ2RWBySmk4GA4aoQGXlVs5N8gVgIJpd+tCTLNyxP0e8K iE81js0TSAsIG994Xc3BGl/dBnsjIK5xmA/jLSk4x7O8EAU6aBrLWRIpMbGcUbnBgQ1E ky1SHnP6GHg4rO055hqOSG/40cTP7o/mhG9nppWR/mCyKkiLQv1dd/euHFCMJhC7qjhj yCFi8SAc4NpWDGHMDX33HYS1ua4qOHXThJ/Vqfa/57V3i5UBMVcZUb0ndpY50hewFzf3 qzPg== X-Gm-Message-State: AHPjjUiL88tvgVo6hyo5/CKLDzDCLgIPZGOEQMhHDMF3Wy4IDa8YaPUt y3WEgXCPUAaGXMyD/S7hvzivqYJ3 X-Google-Smtp-Source: AOwi7QDT8nKumB3yflTO1gcpa144idYwmijz/xAjSxYe+Ma/PKZdqp87JOyFwfyGPunJPDcEC02uLg== X-Received: by 10.28.169.140 with SMTP id s134mr961663wme.36.1505824203014; Tue, 19 Sep 2017 05:30:03 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:06 +0200 Message-Id: <1505824179-21541-18-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 17/50] MAINTAINERS: update mail address for NVDIMM X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Xiao Guangrong Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Xiao Guangrong My Intel mail account will be disabled soon, update the mail info to my private mail Signed-off-by: Xiao Guangrong Message-Id: <1490074437-17059-1-git-send-email-guangrong.xiao@linux.intel.c= om> Signed-off-by: Paolo Bonzini --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 2dbb9ec..57f4efd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1131,7 +1131,7 @@ F: tests/rocker/ F: docs/specs/rocker.txt =20 NVDIMM -M: Xiao Guangrong +M: Xiao Guangrong S: Maintained F: hw/acpi/nvdimm.c F: hw/mem/nvdimm.c --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824986504648.8020937336763; Tue, 19 Sep 2017 05:43:06 -0700 (PDT) Received: from localhost ([::1]:42621 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHrl-0006EM-OQ for importer@patchew.org; Tue, 19 Sep 2017 08:43:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59916) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfK-00046Y-TS for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfB-0005Kq-Hu for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:14 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:37397) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfB-0005KM-91 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:05 -0400 Received: by mail-wm0-x241.google.com with SMTP id f4so3732102wmh.4 for ; Tue, 19 Sep 2017 05:30:05 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=MQTppsDc8kCxok2t7AKfFaHLT6m/qeqKMeyvnn8SUSM=; b=oLf5RzyRYz5KfZsNVTFer1e7I3iObnsvcDlYG7nhktcKgpol7iH6cass8mhUJA7EAv zGoeYM7qn1wLqzrpddkekr1rpP6V9RryHnhbJBeMwBMS0p5imUQqHN6L/yeEn7082to+ HnjwAT/8SO2IeIi7TfndTCVCLqQarPpjPidhHYtxLuQ20MEPpJ2za0rBp31Du3xhc2eW n7N7I2f+pDJdb/748Vt7Ehyn8dvDfGMD8J/eb0Z8mvo/0OGxoNzISc68iwZK+/ZU6J+c TivlnQ0r+AMOPH4agGuL/kme/fGNQMF/h+EyKfbQXxaZUjn3X51CNwwSZ//3n1irIdOm jJeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=MQTppsDc8kCxok2t7AKfFaHLT6m/qeqKMeyvnn8SUSM=; b=QlOc+0rkFxSkgA9AHa3Q6zZYXOztQbJ903D1Q8YiVGCsJwXwp6+oE7mwKJ/9P/MY8x atuFHhAIF4+yDdFcmzHSSybvuX4ZFpN7U0GSz9Ayl5S8aGmTzv2gXEsIU1hORZ1xQ5Xs 5zIhrvT9Zn4v+zNs3ciqrF3zZkCPT6NX7r8yvQORKv+40wlJ8MITBQfTXDkRcfFueNIV N55TiNgB5+B7OlYZqkiHRdTSX3k+o6Nh8bSci5TBv91/eJXxCa83QAhIQWEkNflDyY8j zaQvjPO6H4NHUo6YPclpnFSMxBZBanJzvrX80+W87m+CB75fgmtJIssoobh6Hg/MeJ8W 2ZnQ== X-Gm-Message-State: AHPjjUiNT8/NjT6pmmNdfTTDxvNQhcVHVQrkwNDFaK+Wqyq+aILRpGe5 VFAd1hA5RAmRllD1sMVNIbjhHfNM X-Google-Smtp-Source: AOwi7QAFYBqHdZDwAn2DMrf1TDMgDf+ES3v2UFhhtY2ltgk7HbZ1/Rn3GNL50V0yWgs81d1MiAVVYQ== X-Received: by 10.28.230.198 with SMTP id e67mr917788wmi.8.1505824204000; Tue, 19 Sep 2017 05:30:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:07 +0200 Message-Id: <1505824179-21541-19-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 18/50] i386/kvm: use a switch statement for MSR detection X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ladi Prosek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ladi Prosek Switch is easier on the eye and might lead to better codegen. Signed-off-by: Ladi Prosek Reviewed-by: David Hildenbrand Message-Id: <20170807085703.32267-2-lprosek@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 75 +++++++++++++++++++++++----------------------------= ---- 1 file changed, 31 insertions(+), 44 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 6db7783..b14a0db 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1081,65 +1081,52 @@ static int kvm_get_supported_msrs(KVMState *s) int i; =20 for (i =3D 0; i < kvm_msr_list->nmsrs; i++) { - if (kvm_msr_list->indices[i] =3D=3D MSR_STAR) { + switch (kvm_msr_list->indices[i]) { + case MSR_STAR: has_msr_star =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_VM_HSAVE_PA) { + break; + case MSR_VM_HSAVE_PA: has_msr_hsave_pa =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_TSC_AUX) { + break; + case MSR_TSC_AUX: has_msr_tsc_aux =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_TSC_ADJUST) { + break; + case MSR_TSC_ADJUST: has_msr_tsc_adjust =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_IA32_TSCDEADLINE) { + break; + case MSR_IA32_TSCDEADLINE: has_msr_tsc_deadline =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_IA32_SMBASE) { + break; + case MSR_IA32_SMBASE: has_msr_smbase =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_IA32_MISC_ENABLE) { + break; + case MSR_IA32_MISC_ENABLE: has_msr_misc_enable =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_IA32_BNDCFGS) { + break; + case MSR_IA32_BNDCFGS: has_msr_bndcfgs =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D MSR_IA32_XSS) { + break; + case MSR_IA32_XSS: has_msr_xss =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_CRASH_CTL) { + break;; + case HV_X64_MSR_CRASH_CTL: has_msr_hv_crash =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_RESET) { + break; + case HV_X64_MSR_RESET: has_msr_hv_reset =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_VP_INDEX) { + break; + case HV_X64_MSR_VP_INDEX: has_msr_hv_vpindex =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_VP_RUNTIME)= { + break; + case HV_X64_MSR_VP_RUNTIME: has_msr_hv_runtime =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_SCONTROL) { + break; + case HV_X64_MSR_SCONTROL: has_msr_hv_synic =3D true; - continue; - } - if (kvm_msr_list->indices[i] =3D=3D HV_X64_MSR_STIMER0_CON= FIG) { + break; + case HV_X64_MSR_STIMER0_CONFIG: has_msr_hv_stimer =3D true; - continue; + break; } } } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825811008162.65953124440387; Tue, 19 Sep 2017 05:56:51 -0700 (PDT) Received: from localhost ([::1]:42682 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI54-0000qu-55 for importer@patchew.org; Tue, 19 Sep 2017 08:56:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59874) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfI-00042R-B0 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfC-0005L3-G4 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:12 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:38516) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfC-0005Kw-98 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:06 -0400 Received: by mail-wm0-x241.google.com with SMTP id x17so3721997wmd.5 for ; Tue, 19 Sep 2017 05:30:06 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=1vEZEx+i1lx8vLsJ+Qn1ZThn8hBBfpzWzkV1HE4C6+Y=; b=LVUGUSBha/O3HGCv0ht+h6o1i2nBSUTEsGtGkb4LL2Apf/6Cq9Dt5dnmb8/J6nnH04 mJZv4J+Jw6sTaMpHWhYGUrAutBs7akahqmueZcCAT7o1tcQoE+P7vMiaqdUCxFPSX3RI uYCo7bSSG25lygO4SOYJirPbcwDCaSlqAqXjt/by7d84UF8VcSq4g72zhuRIAEILA8N0 unF41e/ArV4gjeYUXZXvqDV/zDSuj7KVkt41BSov9tT6626bk30pzJ4wdZ/kPzz52OMD j7JlbLmZluGUxaw8VVRZYCqFt1xmr7i13Ji0lxVK5pLE5jjFa1JBS+R8qTvLAby/KZ+V hxLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=1vEZEx+i1lx8vLsJ+Qn1ZThn8hBBfpzWzkV1HE4C6+Y=; b=DmZ2oPI6TPUZRg+K/0k1QCsO2YhNvS/4sXju3/UiQrc9/GvDnwoJPndU9H3b9gBqdp KVwqEicvtvguWRJs1Dxm+/pxOEt4RBBCUFPDum5b7ap3Le29bQyp0rH3xtA/OKoDKuy2 p73TMyTKLLcl3llwTM5q0iiXsioTfT8sKS8qGagi1Gk894jrEFJE2zplXfcr1ACMCXPZ aFdSSA5u0MzMmaMtbBJLG/W/pNgopbPv7X6JbqA2izNe6YrgNgUzIzmtHuOdq2yz0/v7 jMEwS+3Q+x8cfUQDXSG00A20UZQLvdm4v1N15YA5jdMqhUmTq9+R72m0ooeIN6w/oF5+ Ib/w== X-Gm-Message-State: AHPjjUhHLpK/ZsdDgRx5K01YZOg7H9N/KGGgNGjRh2Prz097F0UHmSfl 6R91F8zigfcsOd/zveHyW2nFLgb5 X-Google-Smtp-Source: AOwi7QAHDrai+iRASdGByPpob3eQimfFjZ1+Zx5wNIUsEywgZIxRAnBwQD0u3kkbBZlEiYdou3OfKA== X-Received: by 10.28.143.138 with SMTP id r132mr925195wmd.18.1505824204938; Tue, 19 Sep 2017 05:30:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:08 +0200 Message-Id: <1505824179-21541-20-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 19/50] i386/kvm: set tsc_khz before configuring Hyper-V CPUID X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ladi Prosek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ladi Prosek Timing-related Hyper-V enlightenments will benefit from knowing the final tsc_khz value. This commit just moves the code in preparation for further changes. Signed-off-by: Ladi Prosek Message-Id: <20170807085703.32267-3-lprosek@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index b14a0db..15d56ae 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -695,6 +695,25 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 cpuid_i =3D 0; =20 + r =3D kvm_arch_set_tsc_khz(cs); + if (r < 0) { + goto fail; + } + + /* vcpu's TSC frequency is either specified by user, or following + * the value used by KVM if the former is not present. In the + * latter case, we query it from KVM and record in env->tsc_khz, + * so that vcpu's TSC frequency can be migrated later via this field. + */ + if (!env->tsc_khz) { + r =3D kvm_check_extension(cs->kvm_state, KVM_CAP_GET_TSC_KHZ) ? + kvm_vcpu_ioctl(cs, KVM_GET_TSC_KHZ) : + -ENOTSUP; + if (r > 0) { + env->tsc_khz =3D r; + } + } + /* Paravirtualization CPUIDs */ if (hyperv_enabled(cpu)) { c =3D &cpuid_data.entries[cpuid_i++]; @@ -961,25 +980,6 @@ int kvm_arch_init_vcpu(CPUState *cs) } } =20 - r =3D kvm_arch_set_tsc_khz(cs); - if (r < 0) { - goto fail; - } - - /* vcpu's TSC frequency is either specified by user, or following - * the value used by KVM if the former is not present. In the - * latter case, we query it from KVM and record in env->tsc_khz, - * so that vcpu's TSC frequency can be migrated later via this field. - */ - if (!env->tsc_khz) { - r =3D kvm_check_extension(cs->kvm_state, KVM_CAP_GET_TSC_KHZ) ? - kvm_vcpu_ioctl(cs, KVM_GET_TSC_KHZ) : - -ENOTSUP; - if (r > 0) { - env->tsc_khz =3D r; - } - } - if (cpu->vmware_cpuid_freq /* Guests depend on 0x40000000 to detect this feature, so only exp= ose * it if KVM exposes leaf 0x40000000. (Conflicts with Hyper-V) */ --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825480215946.0127826379328; Tue, 19 Sep 2017 05:51:20 -0700 (PDT) Received: from localhost ([::1]:42658 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHzj-0004cd-9U for importer@patchew.org; Tue, 19 Sep 2017 08:51:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfH-00041w-QE for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfD-0005Lm-Ii for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:11 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:34411) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfD-0005LM-Ck for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:07 -0400 Received: by mail-wm0-x243.google.com with SMTP id i131so3749601wma.1 for ; Tue, 19 Sep 2017 05:30:07 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=YQhlF2ct2VUbriyIwjWCEnoxnDrqMoy38Rw+qyNfcio=; b=hD1Un7mf9EXhWeqL3RaYjxgqP2F75WArgZ6HoUL4KZ2cuVxgYU6uwkCyJ2HxXzOWsp dAG5pVVk3Fen1tt21bswypDRghcSA2O76sIsDkyPQIHCwc8Rw0ODIHWaWpQGLv/kV1CF LHo33mRLHn8c0rmRcm9FXqSElREqgcBVkio/tt4r01jl2EtdDXFhP16dAz5HuaeRmsZf IleL+OsEKwRRrTqKGDGMuk3D1gwXbrcY0zIqoycG0arwxfpPchAti8ky+7INVMn1ePkQ PgPA0MUouTDRpUYBO64Or/wtpO8FUfR0GhoCuN4/9jAbHGkvSS7XxKHN3wleKPalWgdp 9hwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=YQhlF2ct2VUbriyIwjWCEnoxnDrqMoy38Rw+qyNfcio=; b=KGlH2CCOGJKsJxAXOE/G/cKEAk7ZwT0H9KHvm1rgCd/Pv5Q33/QIpu/76kBuHbLUOz /6x+hGEgb607mpr7544SnuAejQERR6/Ek6yrWCIUuMCYMqLGVf+nnSASLb44Hhjz7h7e 7N6LlHuZUo6NVYHxXyibrsrUOViH3xQWC/GBRodMMczCubLWXWj78v66F38pa+FNhu2b UGrsDFHk9Q7P/QPpS7nxlSzWog8kPdWSVmW5vXijPGsFHfiJ4YiurQFalenEb2+aIz3V dNYBbizZXwZPUbqW1RCIkGVIoikXHj7y+bmSBbZz2272N1HlSAGsczIJVUj3mG9cQGi5 mRWA== X-Gm-Message-State: AHPjjUgOtDqZdargg6/Oq6GdEIvxxm88+HxhF3x7T14y98NxyEQQV+S9 cNUVs8D6ZKIQbhQuQ68qEOcsLN1Z X-Google-Smtp-Source: AOwi7QCqL04/aW1XcmCUJ0RpofahgaCNDSJq5cR4ZTA4s/SvsmIkgkyYPy+nkSYexlBVNbBdtOAsuQ== X-Received: by 10.28.125.205 with SMTP id y196mr1025412wmc.128.1505824206127; Tue, 19 Sep 2017 05:30:06 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:09 +0200 Message-Id: <1505824179-21541-21-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 20/50] i386/kvm: introduce tsc_is_stable_and_known() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ladi Prosek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ladi Prosek Move the "is TSC stable and known" condition to a reusable helper. Signed-off-by: Ladi Prosek Reviewed-by: David Hildenbrand Message-Id: <20170807085703.32267-4-lprosek@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 15d56ae..2dc01c9 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -611,6 +611,15 @@ static int kvm_arch_set_tsc_khz(CPUState *cs) return 0; } =20 +static bool tsc_is_stable_and_known(CPUX86State *env) +{ + if (!env->tsc_khz) { + return false; + } + return (env->features[FEAT_8000_0007_EDX] & CPUID_APM_INVTSC) + || env->user_tsc_khz; +} + static int hyperv_handle_properties(CPUState *cs) { X86CPU *cpu =3D X86_CPU(cs); @@ -986,9 +995,7 @@ int kvm_arch_init_vcpu(CPUState *cs) && cpu->expose_kvm && kvm_base =3D=3D KVM_CPUID_SIGNATURE /* TSC clock must be stable and known for this feature. */ - && ((env->features[FEAT_8000_0007_EDX] & CPUID_APM_INVTSC) - || env->user_tsc_khz !=3D 0) - && env->tsc_khz !=3D 0) { + && tsc_is_stable_and_known(env)) { =20 c =3D &cpuid_data.entries[cpuid_i++]; c->function =3D KVM_CPUID_SIGNATURE | 0x10; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150582524446753.735396445231004; Tue, 19 Sep 2017 05:47:24 -0700 (PDT) Received: from localhost ([::1]:42643 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHvv-0001Xe-KR for importer@patchew.org; Tue, 19 Sep 2017 08:47:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59909) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfK-000466-Ck for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfE-0005My-J7 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:14 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:35002) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfE-0005M7-D2 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:08 -0400 Received: by mail-wm0-x241.google.com with SMTP id e64so3756809wmi.2 for ; Tue, 19 Sep 2017 05:30:08 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/nSOJS09jyv84mSwYAP8YvUumUAdJ9ZGtcifvGaqIWQ=; b=C3VFGcF61s86hm3TAQGLABlAgfAk90+FJ2yNcmQ4KFyyqqyGIs0wveRFYgsVDuI80P Hzjpn1/342SDESZd5aOa8yPnP9K8PW2BAP+J21t2e4AkYF6oX7HUKopXoz8PMfkQSWnG D1uJ3uq/jHjOjtFIoTbwICkcgPr+7cL91Sn+b7rj0qFOCjjDEX340gFp/yuAQPN69ywe EKkMy5U+ER/lhJMhMqSglWKDFLu1m2uA/IZDsTQc3Af8+78mklLnbmLpopjZmP2klAaG yv26GB+2aV31fQHN/3cO8OCwuIE/jDQmyUqRcLbEwFgn4vCLAAvH0IRp9ngOBGwQIX9o OZCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/nSOJS09jyv84mSwYAP8YvUumUAdJ9ZGtcifvGaqIWQ=; b=Kze7F+Xn21dluXlz0NZ4ULU1x/dTleP468aQBCCvdWqYczPHNPoFcS6FLqAOfTuDSO ZgkHbkUqqZmXZETxIg85KRfOaH3tKyqi2XTIWHpRDNIkhYzcQ399tXNl38vFU9VseKCt 8e1tD75bhIXPMikqIxX1zYVr1g9ou73d0/k/gV48jmEwS1zAsx7akS1bVLlM31rfAxel TWVx4L2uCqSumenzWKbKhevjcc+dgzdI4H3LPuZIvaapCSfjIgVh/veN9VVyS8dGeUh1 NMcsDU4OyKr3CIulblzGrnZw3DlfKczqrTnYOQOkk0siVsciQpaaO2vCiZkgcmIFWPAh sYxg== X-Gm-Message-State: AHPjjUjPcJh2SGEnUa/jWM6Ck1dFYti8JkAUsy/oZmC3KV9JdHKuOhpd lJl8v3ZrxhHRkdR6h00/7lCVGT25 X-Google-Smtp-Source: AOwi7QDn/Jv+vh2ubykSjLEmc5DJGiqaNYB1iXZQ86EbyH2Cne6Yq2lMRx0hJtxs6pE22Pa5KjeA+A== X-Received: by 10.28.236.194 with SMTP id h63mr1025638wmi.159.1505824207078; Tue, 19 Sep 2017 05:30:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:10 +0200 Message-Id: <1505824179-21541-22-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 21/50] i386/kvm: advertise Hyper-V frequency MSRs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ladi Prosek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Ladi Prosek As of kernel commit eb82feea59d6 ("KVM: hyperv: support HV_X64_MSR_TSC_FREQ= UENCY and HV_X64_MSR_APIC_FREQUENCY"), KVM supports two new MSRs which are requir= ed for nested Hyper-V to read timestamps with RDTSC + TSC page. This commit makes QEMU advertise the MSRs with CPUID.40000003H:EAX[11] and CPUID.40000003H:EDX[8] as specified in the Hyper-V TLFS and experimentally verified on a Hyper-V host. The feature is enabled with the existing hv-tim= e CPU flag, and only if the TSC frequency is stable across migrations and known. Signed-off-by: Ladi Prosek Reviewed-by: David Hildenbrand Message-Id: <20170807085703.32267-5-lprosek@redhat.com> Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 2dc01c9..739334a 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -89,6 +89,7 @@ static bool has_msr_hv_vpindex; static bool has_msr_hv_runtime; static bool has_msr_hv_synic; static bool has_msr_hv_stimer; +static bool has_msr_hv_frequencies; static bool has_msr_xss; =20 static bool has_msr_architectural_pmu; @@ -640,7 +641,13 @@ static int hyperv_handle_properties(CPUState *cs) if (cpu->hyperv_time) { env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_HYPERCALL_AVAILABLE; env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_TIME_REF_COUNT_AVAI= LABLE; - env->features[FEAT_HYPERV_EAX] |=3D 0x200; + env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_REFERENCE_TSC_AVAIL= ABLE; + + if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) { + env->features[FEAT_HYPERV_EAX] |=3D HV_X64_ACCESS_FREQUENCY_MS= RS; + env->features[FEAT_HYPERV_EDX] |=3D + HV_FEATURE_FREQUENCY_MSRS_AVAILABLE; + } } if (cpu->hyperv_crash && has_msr_hv_crash) { env->features[FEAT_HYPERV_EDX] |=3D HV_X64_GUEST_CRASH_MSR_AVAILAB= LE; @@ -1134,6 +1141,9 @@ static int kvm_get_supported_msrs(KVMState *s) case HV_X64_MSR_STIMER0_CONFIG: has_msr_hv_stimer =3D true; break; + case HV_X64_MSR_TSC_FREQUENCY: + has_msr_hv_frequencies =3D true; + break; } } } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825129788533.9159424007651; Tue, 19 Sep 2017 05:45:29 -0700 (PDT) Received: from localhost ([::1]:42628 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHu4-0008F2-PS for importer@patchew.org; Tue, 19 Sep 2017 08:45:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfL-00047H-F5 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfF-0005Pm-Ov for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:15 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:34412) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfF-0005O2-J7 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:09 -0400 Received: by mail-wm0-x242.google.com with SMTP id i131so3749680wma.1 for ; Tue, 19 Sep 2017 05:30:09 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JL0j/qo0D/OEnNSJpsTouct0QBUnOD2UuhuOtVKYBF0=; b=jSxaO9SExoeCY0l2/AGmEukfEN0/zFDeYZ25NI3g0f7u9pkeiwEx5hcoxD39ItcNhU ueQVwbNvdOPsdqH+SmAdm1hV7eXFe3TEKi5YLbKMzsJF7Z1F09EQicvxBoueSq8uYjxY Q3HDssPJZE8gP6A3uxAqYkHP1O8M9M/dDUfGklR69irkm1V6YJfhJJfoC2P0VStd5LQP qgXmNyDhyXBxn3nrosUVmCjYRHtyrmT9pyD1XOo0fLuGEKjw8VizPXOsnmOs/dN1HFM8 zijcfFC1w4SF0Xkb2QdG/3ucFl4iM2OPDeEfQOUVdLksC+OovF6NyGv9Ei9qadocs3sk 8Ymg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=JL0j/qo0D/OEnNSJpsTouct0QBUnOD2UuhuOtVKYBF0=; b=Inj0HLrHQZ+0sHhGkBCy54PWip2DZiM+zO+Th5AFrYj560cQXNj/V8pWog9B6Fk7K3 BqsUc15+a+Xg72BB1Z+WuB19/IYsSjyUe8gib8i7pxjBMgCT1zGebUVuIC4hBp3rF9Id G1HwKVMMGajGte4ileNhl+l5z2wXvtJeO8Ey/c4xq1AU6PSTnDJzWyoDrl9R3PVk19jm +UZz8OdzGcTu8JgcKoXDzCyKwPu95hbE+86dszyabDWGCd9JQ01cYTx3XXYu97YhEyky fPvuFIoSp2ViTKPPMMmSid2Fp3B/IYI0QeJ1fg4G3b//OW8URsTFJbuK/tex1RJ45wGa P1BQ== X-Gm-Message-State: AHPjjUjd9URK18/he8H7Qn38W+EYe2S3FkStI6zszueolLLddYS6N4ET ga5EH9yqnjKyy++IfHtcatgQeEWh X-Google-Smtp-Source: AOwi7QALHa+XVLLtF/CiYMvaYs+FqkUh3jT0PJXDDsrA0DtP4XRLoo5CIduFmz6qB4VbD0AlnhpTZg== X-Received: by 10.28.134.143 with SMTP id i137mr1031945wmd.27.1505824208026; Tue, 19 Sep 2017 05:30:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:11 +0200 Message-Id: <1505824179-21541-23-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 22/50] MAINTAINERS: update email, add missing test entry for megasas X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Philippe Mathieu-Daud=C3=A9 and update maintainer email address Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170910171557.12689-1-f4bug@amsat.org> Signed-off-by: Paolo Bonzini --- MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 57f4efd..ef7c191 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1103,11 +1103,12 @@ F: hw/block/nvme* F: tests/nvme-test.c =20 megasas -M: Hannes Reinecke +M: Hannes Reinecke L: qemu-block@nongnu.org S: Supported F: hw/scsi/megasas.c F: hw/scsi/mfi.h +F: tests/megasas-test.c =20 Network packet abstractions M: Dmitry Fleytman --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824829533234.374921125441; Tue, 19 Sep 2017 05:40:29 -0700 (PDT) Received: from localhost ([::1]:42609 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHpE-0003qZ-MS for importer@patchew.org; Tue, 19 Sep 2017 08:40:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfM-00048Y-MG for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfG-0005R1-Tl for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:16 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:33573) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfG-0005Q9-Nd for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:10 -0400 Received: by mail-wm0-x243.google.com with SMTP id m127so3756869wmm.0 for ; Tue, 19 Sep 2017 05:30:10 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=pgBQmdux1gX7UnsyoemlFR8dRsoGnHo/zOdzLyQavrQ=; b=ZhUsCWLyYslLFKkVaXSpZUcDtyV3cCXDJKRh/KZOv1TBMtgcZPq4/K4XJNiaXsLCeU mW9WFmieiFK6JCETLs3X57N+Y2Q20nGjIbERuxCcsSwsJouR5y5Ti/vb0XdsHaHmTUfI nBkzV9Rc5pWi+3oPdmPoymHgoGp/SBfQ6pZUdM78cVatjwj0sS/ei7lVlAxGp43FHZrd Qd+DEPeXkNivxAjLDgh6UXa4tBO6A1E26hBLfjoBGkFxOMlZ7/c650CqcxdvxuDmkNOX LjIQ4Q0zmHqXH3LfXGvnwl9tLlkSv1O9zbT9PsSdiHUNJvJtt3dVZciWFweH3jJpSgUX dlvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=pgBQmdux1gX7UnsyoemlFR8dRsoGnHo/zOdzLyQavrQ=; b=hbIUWiXdEQxuhofYx897dUxFB52Hvn+hHl0g9xPMUYjTU9p/vuHQCk88sz+C9WKrNm u1Ss4DtFjuDoS8YzrIUG+pHPtKXK5anZOCx9OG3u2Ikz1wS4LaIUaJK3bZxZ8c9ts23V +wfU1w/HH0j0zHbv37xaBX7XNtE47T5rYpDoc30DoL9EImp/crVFswzG1GC1XwcwK5ll 7CuP5nB06e84e2XiMgDy8oX9MwZnDStjjWOhXq23lDqDBiPBOhaVozhnN0daNFvjtUvJ NXHMaA9fE4EUtKVscBfSzeMxOAwVcDhfs+OsAa78MoTMqcqagPyINgm6H8bJIpQIXbAQ ffBw== X-Gm-Message-State: AHPjjUi4AtOtVAiA8/EGjOjKD32PkjKSMyCFqFJ8096zFo77/1m/pjHl WiUsal+Yqpm6z7DJX5Dm0ePCWy8A X-Google-Smtp-Source: AOwi7QC+yVkxUjOiOe++LDhUTPwA6lMvBuxHxELt1iXudeRl3Sxvg6hUMs3jto2OX/YIMB+rxbgNUQ== X-Received: by 10.28.0.7 with SMTP id 7mr911602wma.109.1505824209422; Tue, 19 Sep 2017 05:30:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:12 +0200 Message-Id: <1505824179-21541-24-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 23/50] memory: Rename queue to mrqueue (memory region queue) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kamil Rytarowski Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Kamil Rytarowski SunOS declares struct queue in . This fixes build on SmartOS (Joyent). Patch cherry-picked from pkgsrc by jperkin (Joyent). Signed-off-by: Kamil Rytarowski Message-Id: <20170903163304.17919-1-n54@gmx.com> Signed-off-by: Paolo Bonzini --- memory.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/memory.c b/memory.c index c0adc35..b9920a6 100644 --- a/memory.c +++ b/memory.c @@ -2701,10 +2701,10 @@ typedef struct MemoryRegionList MemoryRegionList; =20 struct MemoryRegionList { const MemoryRegion *mr; - QTAILQ_ENTRY(MemoryRegionList) queue; + QTAILQ_ENTRY(MemoryRegionList) mrqueue; }; =20 -typedef QTAILQ_HEAD(queue, MemoryRegionList) MemoryRegionListHead; +typedef QTAILQ_HEAD(mrqueue, MemoryRegionList) MemoryRegionListHead; =20 #define MR_SIZE(size) (int128_nz(size) ? (hwaddr)int128_get64( \ int128_sub((size), int128_one())) : 0) @@ -2746,7 +2746,7 @@ static void mtree_print_mr(fprintf_function mon_print= f, void *f, bool found =3D false; =20 /* check if the alias is already in the queue */ - QTAILQ_FOREACH(ml, alias_print_queue, queue) { + QTAILQ_FOREACH(ml, alias_print_queue, mrqueue) { if (ml->mr =3D=3D mr->alias) { found =3D true; } @@ -2755,7 +2755,7 @@ static void mtree_print_mr(fprintf_function mon_print= f, void *f, if (!found) { ml =3D g_new(MemoryRegionList, 1); ml->mr =3D mr->alias; - QTAILQ_INSERT_TAIL(alias_print_queue, ml, queue); + QTAILQ_INSERT_TAIL(alias_print_queue, ml, mrqueue); } mon_printf(f, TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %s): alias %s @%s " TARGET_FMT_plx @@ -2783,26 +2783,26 @@ static void mtree_print_mr(fprintf_function mon_pri= ntf, void *f, QTAILQ_FOREACH(submr, &mr->subregions, subregions_link) { new_ml =3D g_new(MemoryRegionList, 1); new_ml->mr =3D submr; - QTAILQ_FOREACH(ml, &submr_print_queue, queue) { + QTAILQ_FOREACH(ml, &submr_print_queue, mrqueue) { if (new_ml->mr->addr < ml->mr->addr || (new_ml->mr->addr =3D=3D ml->mr->addr && new_ml->mr->priority > ml->mr->priority)) { - QTAILQ_INSERT_BEFORE(ml, new_ml, queue); + QTAILQ_INSERT_BEFORE(ml, new_ml, mrqueue); new_ml =3D NULL; break; } } if (new_ml) { - QTAILQ_INSERT_TAIL(&submr_print_queue, new_ml, queue); + QTAILQ_INSERT_TAIL(&submr_print_queue, new_ml, mrqueue); } } =20 - QTAILQ_FOREACH(ml, &submr_print_queue, queue) { + QTAILQ_FOREACH(ml, &submr_print_queue, mrqueue) { mtree_print_mr(mon_printf, f, ml->mr, level + 1, cur_start, alias_print_queue); } =20 - QTAILQ_FOREACH_SAFE(ml, &submr_print_queue, queue, next_ml) { + QTAILQ_FOREACH_SAFE(ml, &submr_print_queue, mrqueue, next_ml) { g_free(ml); } } @@ -2872,13 +2872,13 @@ void mtree_info(fprintf_function mon_printf, void *= f, bool flatview) } =20 /* print aliased regions */ - QTAILQ_FOREACH(ml, &ml_head, queue) { + QTAILQ_FOREACH(ml, &ml_head, mrqueue) { mon_printf(f, "memory-region: %s\n", memory_region_name(ml->mr)); mtree_print_mr(mon_printf, f, ml->mr, 1, 0, &ml_head); mon_printf(f, "\n"); } =20 - QTAILQ_FOREACH_SAFE(ml, &ml_head, queue, ml2) { + QTAILQ_FOREACH_SAFE(ml, &ml_head, mrqueue, ml2) { g_free(ml); } } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825967679897.4492462115969; Tue, 19 Sep 2017 05:59:27 -0700 (PDT) Received: from localhost ([::1]:42692 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI7a-0003Bn-RL for importer@patchew.org; Tue, 19 Sep 2017 08:59:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfN-0004As-Qy for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfH-0005Rm-Ud for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:17 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:35865) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfH-0005RD-Oy for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:11 -0400 Received: by mail-wm0-x241.google.com with SMTP id r136so3738282wmf.3 for ; Tue, 19 Sep 2017 05:30:11 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=qFWXCi8DiI8dwa0Q5Jys4V6A+x2aYZNi09lm6+u24Uc=; b=He1Ks7X6a7FuZeB8NT5YXbDO+AAAJuTrJ1LtnM69lop+iwsxi1m8C0Ln3XmmYqbaZU gIiNP6qANZbPyHsmyeWdY7/MHEd6bYBD84tP8j7GEWAAHm/qgb4bDHyOBa8wGut6AlTq bHzhP5A/HH1tTF9B9f/XzEil5tR3JSICdDtx8EQkz39IVwGpF5qZfNRw/GKZJcC0YpiN iDI1oZHbXIpqKBqwUoUGO2M0aX74SnlvdKMB9Qk1RXjTPU9ePTD3788m/KEf3Vf0UGUu qlLo2a/JqdhGZQdzrbsEodS40bDXTA3Z18otsxeiDwEbfnLxtTXjPjwx7qvUdSgmxeRy vdug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=qFWXCi8DiI8dwa0Q5Jys4V6A+x2aYZNi09lm6+u24Uc=; b=RIbU/wjKE1m3WGBDAx0dZnJMRlTBWeuAp4WJZ2jHBeVASuve+G3LiAszOxUdvhnmVO 7yyAJcQDA48UrSJJKZIjKI0i5I1ULrnjVOQYea2OSz5wIwdCxAsx6Ezv+7PxkW4izaIA E3GHC/rVCWLWiUjpPFaOQrJRRiNaW2zaHCbbfbkdaiC///21QHgFC7FAXhHOxc24KywA n7CZgFiBUjRkEPuHV1Q2t+NjCmf3BK7j9gVW9skXO3gpwrjiC9/NWALhceGn+BoYDkwA YqTD5JYzCTKRpDfbJFis183qq2KqMXme8CmFPNp1A9Qn5wV/GfERYhUVEgVecwPJxQgt UA1w== X-Gm-Message-State: AHPjjUhaEaunS0p+kr4rfEBLFd8Finr7lLO9UfoE4okb6YjBWsf2e8KV EV/2oJ6ln+bfbbAofktVYxBeYHa4 X-Google-Smtp-Source: AOwi7QBVg+fpiz3pY2CFxTZr8fG7AAQ2grROi1xKyOua1/Q4waiyJL0qA+5PcPt4mXYEVS33PpnZiA== X-Received: by 10.28.220.85 with SMTP id t82mr940979wmg.95.1505824210542; Tue, 19 Sep 2017 05:30:10 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:13 +0200 Message-Id: <1505824179-21541-25-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 24/50] scsi/esp: Rename the ESP macro to ESP_STATE X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kamil Rytarowski Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Kamil Rytarowski SunOS defines ESP (x86 register) in as 7. This fixes build on SmartOS (Joyent). Signed-off-by: Kamil Rytarowski Message-Id: <20170909142116.26816-1-n54@gmx.com> Signed-off-by: Paolo Bonzini --- hw/scsi/esp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index eee831e..22c2d91 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -593,7 +593,7 @@ const VMStateDescription vmstate_esp =3D { }; =20 #define TYPE_ESP "esp" -#define ESP(obj) OBJECT_CHECK(SysBusESPState, (obj), TYPE_ESP) +#define ESP_STATE(obj) OBJECT_CHECK(SysBusESPState, (obj), TYPE_ESP) =20 typedef struct { /*< private >*/ @@ -644,7 +644,7 @@ void esp_init(hwaddr espaddr, int it_shift, ESPState *esp; =20 dev =3D qdev_create(NULL, TYPE_ESP); - sysbus =3D ESP(dev); + sysbus =3D ESP_STATE(dev); esp =3D &sysbus->esp; esp->dma_memory_read =3D dma_memory_read; esp->dma_memory_write =3D dma_memory_write; @@ -672,7 +672,7 @@ static const struct SCSIBusInfo esp_scsi_info =3D { =20 static void sysbus_esp_gpio_demux(void *opaque, int irq, int level) { - SysBusESPState *sysbus =3D ESP(opaque); + SysBusESPState *sysbus =3D ESP_STATE(opaque); ESPState *s =3D &sysbus->esp; =20 switch (irq) { @@ -688,7 +688,7 @@ static void sysbus_esp_gpio_demux(void *opaque, int irq= , int level) static void sysbus_esp_realize(DeviceState *dev, Error **errp) { SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); - SysBusESPState *sysbus =3D ESP(dev); + SysBusESPState *sysbus =3D ESP_STATE(dev); ESPState *s =3D &sysbus->esp; =20 sysbus_init_irq(sbd, &s->irq); @@ -706,7 +706,7 @@ static void sysbus_esp_realize(DeviceState *dev, Error = **errp) =20 static void sysbus_esp_hard_reset(DeviceState *dev) { - SysBusESPState *sysbus =3D ESP(dev); + SysBusESPState *sysbus =3D ESP_STATE(dev); esp_hard_reset(&sysbus->esp); } =20 --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825488330576.9498353134011; Tue, 19 Sep 2017 05:51:28 -0700 (PDT) Received: from localhost ([::1]:42660 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHzr-0004i6-Hz for importer@patchew.org; Tue, 19 Sep 2017 08:51:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60087) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfS-0004GE-PG for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfJ-0005Sv-2O for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:22 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:34414) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfI-0005SM-SF for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:13 -0400 Received: by mail-wm0-x241.google.com with SMTP id i131so3749837wma.1 for ; Tue, 19 Sep 2017 05:30:12 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/BaqPddDhPMswY3yVQumVhtDfTSRHbBrrzgUlRFUHqc=; b=RvTzMqqdqmMTQQscYYQj/Et5yJ8kC9z7gaCiYfv44EHA6e9jfmXA3V17MJHnqBBhgW N9LFYOZ8QGRP6RZkz18FidbRjPvuzKFfhF1wTsvfSEBcDntZjisHDiF5L7ZkTW/uNQNP 0/gRyXVgxqP1yjg1v+K7B106gamGaqpIx94FmniqN/TKgxiGv+6jgLzJs+tLn8uqkW1l b6JfNmJiO+MyQCgdKCidIdLkj00jg5vLRAytGN7vgyn9eTw4HehxnbXIvnslIAKu/vDp T7soXH/MeejB++tERMalK6MzGdthc71nBBiC1FBPAelX1nGYNpC3u5bCvQZJpczw4CQD +huw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/BaqPddDhPMswY3yVQumVhtDfTSRHbBrrzgUlRFUHqc=; b=bOcrIFzL8x2/OCXBZwEV0CzkobOqpVI72OUckMEk0cmUVlTxPkPEioYhInaukEAa5H l9NoVMfY5Q7Q+XTjYtaw4eVoVAmxc/VK2D1gIZyiOB6vGhiWq9EOcHP2pBibZOVc8te7 2544gMf+WvNrhVzLV7vueI/bVK9iLjMcRrxeXLK4ZZ8+CpQzM9R1BwK6kyQntcvcQdS1 iLDiOro4N6oNYKBBcINsO5vxOulroMECuCQcd9fnfAhCHByMb9x+kEchZ1kjKttz4wsx TGvSaKD3OodfR9bTFj9d5+EndM5CPkURR8TupnO7IAdWln3yghrZ8OIEPex1loAzuic+ QFYg== X-Gm-Message-State: AHPjjUjEpoi2mpA3FzrTNlU+Con5h1WqLK719U4ooasdZkK1y1Su8tPa V2seYr4W/3IJDm/Vls5ytDnFe8ay X-Google-Smtp-Source: AOwi7QAHttXl1TqSa2DvBIuRnuNpCTnaNH/8XmmTCCaGHPyPIGz+NbFfYWzFRkR8yFEWxHYThwcGuw== X-Received: by 10.28.159.6 with SMTP id i6mr982771wme.119.1505824211592; Tue, 19 Sep 2017 05:30:11 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:14 +0200 Message-Id: <1505824179-21541-26-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 25/50] multiboot: validate multiboot header address values X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Prasad J Pandit Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Prasad J Pandit While loading kernel via multiboot-v1 image, (flags & 0x00010000) indicates that multiboot header contains valid addresses to load the kernel image. These addresses are used to compute kernel size and kernel text offset in the OS image. Validate these address values to avoid an OOB access issue. This is CVE-2017-14167. Reported-by: Thomas Garnier Signed-off-by: Prasad J Pandit Message-Id: <20170907063256.7418-1-ppandit@redhat.com> Signed-off-by: Paolo Bonzini --- hw/i386/multiboot.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c index 6001f4c..c7b70c9 100644 --- a/hw/i386/multiboot.c +++ b/hw/i386/multiboot.c @@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg, uint32_t mh_header_addr =3D ldl_p(header+i+12); uint32_t mh_load_end_addr =3D ldl_p(header+i+20); uint32_t mh_bss_end_addr =3D ldl_p(header+i+24); + mh_load_addr =3D ldl_p(header+i+16); + if (mh_header_addr < mh_load_addr) { + fprintf(stderr, "invalid mh_load_addr address\n"); + exit(1); + } + uint32_t mb_kernel_text_offset =3D i - (mh_header_addr - mh_load_a= ddr); uint32_t mb_load_size =3D 0; mh_entry_addr =3D ldl_p(header+i+28); =20 if (mh_load_end_addr) { + if (mh_bss_end_addr < mh_load_addr) { + fprintf(stderr, "invalid mh_bss_end_addr address\n"); + exit(1); + } mb_kernel_size =3D mh_bss_end_addr - mh_load_addr; + + if (mh_load_end_addr < mh_load_addr) { + fprintf(stderr, "invalid mh_load_end_addr address\n"); + exit(1); + } mb_load_size =3D mh_load_end_addr - mh_load_addr; } else { + if (kernel_file_size < mb_kernel_text_offset) { + fprintf(stderr, "invalid kernel_file_size\n"); + exit(1); + } mb_kernel_size =3D kernel_file_size - mb_kernel_text_offset; mb_load_size =3D mb_kernel_size; } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15058254915061017.7284092094313; Tue, 19 Sep 2017 05:51:31 -0700 (PDT) Received: from localhost ([::1]:42661 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHzu-0004jS-Qd for importer@patchew.org; Tue, 19 Sep 2017 08:51:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60008) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfP-0004Cd-LQ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfK-0005TO-0X for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:34414) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfJ-0005Sz-QK for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:13 -0400 Received: by mail-wm0-x243.google.com with SMTP id i131so3749880wma.1 for ; Tue, 19 Sep 2017 05:30:13 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=LS0BuA7ZSohUgDY7Bs9FC909dO8teSCPWNEseucNpHg=; b=jODD3N18Du5D1Z5cqYFpjo6blMYaD4mrXjlEeK3AKUh6Tcp6GmBpkpO9ia7tJRFv2d MUDMo6EipOpkzlFAWmuIRqt4pK+HOxd7v3PkqdGHj51O7yrMcVo8lxF/7FkqI+sIhyUF bFOALMVjr+TGjjDVKramKzjvr8K+dvFrJiQhbPu7i/PyeczVqBkReglBx0AHLB0zgmpI cEzCFvER9W3wHZ0dEI+/i5SCoR9t/vFsZ49p4VKQ6/qtq2wpO1POA8TRNyRKA9i6T8Md Ega8f4g2bKPmDBuXQCAEoK7yBNb2xPV9N/d8hrp6osVlhq7HH7j9CFB6fj5p790LqpgA ZJuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=LS0BuA7ZSohUgDY7Bs9FC909dO8teSCPWNEseucNpHg=; b=GeuQHtm29yKGV9B8Ti5e3F4N4SsGPKuhebrTkSK1Ry06Wnz0BzDPEkRr6EopaJE8/c 5/J6GSgdMAZlhJLiqqOymh96ORL6Jp+RPgzjAMe0V4BVweMoZgpfJokN/UN0nIZjScNk WcHojIkN6QksHhT0Rfj0sLWd7DotK7SP5hXQV6KCjXXSl84ebMb5h3QrZ/PNgsfPgr++ 1UdTVSa2yhcQ/DTXejk7j6cctujdDMHoSQMTw8J60bKsC+/uSmpxxKiLSziJ5aiujQkD NefV/sxDiOyPksf8QXI8KfjKOCSdj46MRyC+etrqH+rvlB6zgIE6IH3I8YBwFBi9VvHZ I2GA== X-Gm-Message-State: AHPjjUgNlkupQ6GkYqoHJRFmWOQtZ9wab7OjifjDHS5yOdgbKmD3mxM6 rpcp4ohmRwryh+83YXeEGTQm91Sb X-Google-Smtp-Source: AOwi7QAImFRWeRg99Q8JXSCq+fGoUWo3nXZeWS6kgusfy99P7s2GQIjDKIzpI4I9+b8jYzH3LACp/w== X-Received: by 10.28.175.75 with SMTP id y72mr896711wme.20.1505824212508; Tue, 19 Sep 2017 05:30:12 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:15 +0200 Message-Id: <1505824179-21541-27-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 26/50] kvm: require JOIN_MEMORY_REGIONS_WORKS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand We already require DESTROY_MEMORY_REGION_WORKS, JOIN_MEMORY_REGIONS_WORKS was added just half a year later. In addition, with flatview overlapping memory regions are first removed before adding the changed one. So we can't really detect joining memory regions this way. Let's just get rid of this special handling. Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-2-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index f85553a..985b179 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -79,7 +79,6 @@ struct KVMState int coalesced_mmio; struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; bool coalesced_flush_in_progress; - int broken_set_mem_region; int vcpu_events; int robust_singlestep; int debugregs; @@ -127,6 +126,7 @@ static bool kvm_immediate_exit; static const KVMCapabilityInfo kvm_required_capabilites[] =3D { KVM_CAP_INFO(USER_MEMORY), KVM_CAP_INFO(DESTROY_MEMORY_REGION_WORKS), + KVM_CAP_INFO(JOIN_MEMORY_REGIONS_WORKS), KVM_CAP_LAST_INFO }; =20 @@ -696,7 +696,6 @@ kvm_check_extension_list(KVMState *s, const KVMCapabili= tyInfo *list) static void kvm_set_phys_mem(KVMMemoryListener *kml, MemoryRegionSection *section, bool add) { - KVMState *s =3D kvm_state; KVMSlot *mem, old; int err; MemoryRegion *mr =3D section->mr; @@ -763,35 +762,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, abort(); } =20 - /* Workaround for older KVM versions: we can't join slots, even no= t by - * unregistering the previous ones and then registering the larger - * slot. We have to maintain the existing fragmentation. Sigh. - * - * This workaround assumes that the new slot starts at the same - * address as the first existing one. If not or if some overlapping - * slot comes around later, we will fail (not seen in practice so = far) - * - and actually require a recent KVM version. */ - if (s->broken_set_mem_region && - old.start_addr =3D=3D start_addr && old.memory_size < size && = add) { - mem =3D kvm_alloc_slot(kml); - mem->memory_size =3D old.memory_size; - mem->start_addr =3D old.start_addr; - mem->ram =3D old.ram; - mem->flags =3D kvm_mem_flags(mr); - - err =3D kvm_set_user_memory_region(kml, mem); - if (err) { - fprintf(stderr, "%s: error updating slot: %s\n", __func__, - strerror(-err)); - abort(); - } - - start_addr +=3D old.memory_size; - ram +=3D old.memory_size; - size -=3D old.memory_size; - continue; - } - /* register prefix slot */ if (old.start_addr < start_addr) { mem =3D kvm_alloc_slot(kml); @@ -833,10 +803,6 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, } } =20 - /* in case the KVM bug workaround already "consumed" the new slot */ - if (!size) { - return; - } if (!add) { return; } @@ -1692,12 +1658,6 @@ static int kvm_init(MachineState *ms) =20 s->coalesced_mmio =3D kvm_check_extension(s, KVM_CAP_COALESCED_MMIO); =20 - s->broken_set_mem_region =3D 1; - ret =3D kvm_check_extension(s, KVM_CAP_JOIN_MEMORY_REGIONS_WORKS); - if (ret > 0) { - s->broken_set_mem_region =3D 0; - } - #ifdef KVM_CAP_VCPU_EVENTS s->vcpu_events =3D kvm_check_extension(s, KVM_CAP_VCPU_EVENTS); #endif --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825146831348.4073113264204; Tue, 19 Sep 2017 05:45:46 -0700 (PDT) Received: from localhost ([::1]:42636 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHuM-0008WL-0u for importer@patchew.org; Tue, 19 Sep 2017 08:45:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60038) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfQ-0004E1-R4 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfL-0005U4-1w for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:20 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:38518) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfK-0005TY-Rz for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:14 -0400 Received: by mail-wm0-x242.google.com with SMTP id x17so3722376wmd.5 for ; Tue, 19 Sep 2017 05:30:14 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=xGhaycVMI3riVhRe8I1mihu2WOoS8ixcNKxFbRPQod0=; b=MWPp7s3F9ZEK0LG/HSP+RT+KOpOFigQo766uMdo5H/TBTu9GRc3QWvt0xHd3LeEd+1 9Y1XLS4tyqaxmJsLdDT7sgSbZhLol38n+L//b/W18X+rgfqJjYja0t69SKoRvXVCcPx0 d2jvvXf/QmiNCaVNgxEMsC8tE/IDJQNp3hNwUV1C2f/7QDun8/vElirdzCEGlvvXMgOy Q9aVrEQeP8pYTh+OQzR2HAJXMQvQPLXThrivsZsAtlMJb5mNzfH3VcYWeDMMtqcY1SLS ImGZCQdVoCcm1BECZG+P3pHruNnpKN1y5RXnLJhxlNsGWefpLCK+fhMLz3WhGvm1smC+ P1AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=xGhaycVMI3riVhRe8I1mihu2WOoS8ixcNKxFbRPQod0=; b=gznJzCMNfYWDbgRH706YdLGqknqsSUChYEEhZETJ/AbLIES+lzxobc7Xnxvr7AyWfx DeCfLApWSILzVHHo+TUfIhPpidY+JY8k6rAiTC6JQNzkJX2mCZDOCtK/lOP6VGkCNyZ3 4PDgpIyV24z8XHF2tYd/Bte2zp1RzXAbNmN1WTfBbpPdxruaEXd+z5wiRFb8BFTaRO1X QRNl8afNdYipNYPUe0oh2sCp/KiYccNp+eG/dgbhTVa2NW8GGZXC4nripkRFkJwuGKJg yamUTfJgCiL6Uzb+LxGYZ5EwVolrhLiEXiP5Rdl28T4NhtOIVzzsKv6VQ8zuxySv3Sw/ CGWg== X-Gm-Message-State: AHPjjUjosxNgiQTxsgR7RV25GsuQdOYx9zp4BRft8YhzOvtmI0ffRJBO F1AINwT1BPR+MythSbRl4IEQeuNN X-Google-Smtp-Source: AOwi7QDTSFUaOOXmUl0yURDU0aBJfOhQgQuaMSVWXcZ8n7CYK9QYecDklAWW47cMTnR5SoJBS92Iog== X-Received: by 10.28.216.75 with SMTP id p72mr1017000wmg.128.1505824213564; Tue, 19 Sep 2017 05:30:13 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:16 +0200 Message-Id: <1505824179-21541-28-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 27/50] kvm: factor out alignment of memory section X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Factor it out, so we can reuse it later. Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-3-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 59 +++++++++++++++++++++++++++++++++++--------------= ---- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 985b179..e0d100b 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -190,6 +190,36 @@ static KVMSlot *kvm_lookup_matching_slot(KVMMemoryList= ener *kml, } =20 /* + * Calculate and align the start address and the size of the section. + * Return the size. If the size is 0, the aligned section is empty. + */ +static hwaddr kvm_align_section(MemoryRegionSection *section, + hwaddr *start) +{ + hwaddr size =3D int128_get64(section->size); + hwaddr delta; + + *start =3D section->offset_within_address_space; + + /* kvm works in page size chunks, but the function may be called + with sub-page size and unaligned start address. Pad the start + address to next and truncate size to previous page boundary. */ + delta =3D qemu_real_host_page_size - (*start & ~qemu_real_host_page_ma= sk); + delta &=3D ~qemu_real_host_page_mask; + *start +=3D delta; + if (delta > size) { + return 0; + } + size -=3D delta; + size &=3D qemu_real_host_page_mask; + if (*start & ~qemu_real_host_page_mask) { + return 0; + } + + return size; +} + +/* * Find overlapping slot with lowest start address */ static KVMSlot *kvm_lookup_overlapping_slot(KVMMemoryListener *kml, @@ -700,25 +730,8 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, int err; MemoryRegion *mr =3D section->mr; bool writeable =3D !mr->readonly && !mr->rom_device; - hwaddr start_addr =3D section->offset_within_address_space; - ram_addr_t size =3D int128_get64(section->size); - void *ram =3D NULL; - unsigned delta; - - /* kvm works in page size chunks, but the function may be called - with sub-page size and unaligned start address. Pad the start - address to next and truncate size to previous page boundary. */ - delta =3D qemu_real_host_page_size - (start_addr & ~qemu_real_host_pag= e_mask); - delta &=3D ~qemu_real_host_page_mask; - if (delta > size) { - return; - } - start_addr +=3D delta; - size -=3D delta; - size &=3D qemu_real_host_page_mask; - if (!size || (start_addr & ~qemu_real_host_page_mask)) { - return; - } + hwaddr start_addr, size; + void *ram; =20 if (!memory_region_is_ram(mr)) { if (writeable || !kvm_readonly_mem_allowed) { @@ -730,7 +743,13 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, } } =20 - ram =3D memory_region_get_ram_ptr(mr) + section->offset_within_region = + delta; + size =3D kvm_align_section(section, &start_addr); + if (!size) { + return; + } + + ram =3D memory_region_get_ram_ptr(mr) + section->offset_within_region + + (section->offset_within_address_space - start_addr); =20 while (1) { mem =3D kvm_lookup_overlapping_slot(kml, start_addr, start_addr + = size); --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824974433123.36672172451233; Tue, 19 Sep 2017 05:42:54 -0700 (PDT) Received: from localhost ([::1]:42619 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHrY-0005vj-DI for importer@patchew.org; Tue, 19 Sep 2017 08:42:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60014) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfP-0004Cm-R0 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfL-0005V8-VA for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:33576) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfL-0005UB-OP for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:15 -0400 Received: by mail-wm0-x243.google.com with SMTP id m127so3757100wmm.0 for ; Tue, 19 Sep 2017 05:30:15 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=+DsfCwe+jybbgbHVQmD1gtTsWfdQbp7DiuOivJGfJ+0=; b=qfIV5t4QdIPq/fNtALuQsBJw0l/GvVXiNa7YOK57QwVOZz6x4KlQQvsKNhNbD8jlrI GEDblWBqrg7pnzAmvJfJC11cCmIoQB2WDwT3g7T2iRfQnCM5lSq2BR8RLkMKFB5sVMfq l0eZdVvhRW6RkUi3YuyV+aBt9czL8laSGzmxYO+48tWIjTeBdID9/w4oRT9RC+/xqvvf Wak8MErs//RFjJWnDBSknE4I97l9zVO6YBV8nYPqwTms23u4EPYqEXLhArULw2ZFxrxX i2QR7+pQLEn/ptHX9RnXMbLPfDQDWEETYYKaChDBrWDeiTBUjSorsf1X0DMdvEx6Qdc9 zgew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=+DsfCwe+jybbgbHVQmD1gtTsWfdQbp7DiuOivJGfJ+0=; b=MnPg8M4MM8VpqdOnIcl/b4YGMy5QtrPN4nFvnbmvnUktUiGjM9UXckt0vbGP4Yqe6j vpUKoJLukCxuTObMnzVUtDVpDi63ltQ0VkL6nKh4/nvp+Kl0I+QcD3/X/9uvV6ANesYh InvWDG68AuxeCrKbDlgWs5drAPBA/WtElbTmAXIciGGjSsr226amd9DgXxcMQfBAMV1O V63KikpStpE+gAr8yeYDOnni9gq7gnvs3uy3xKmBJfgjWIIyd5/R6HMoyHmfSyV1xzsc +9E77X/VNx30QcXmNhvIw1U7pkyqs8jwn4JyF782ot4MQ1664cashBmU0gk132nGdVzt PnKw== X-Gm-Message-State: AHPjjUj334BpC4S+CwFfSLDnh+9tqLU6zO6CPvAUjn7359UOVo+sumFv hOZNowwLyUPzlFPxABWPOFTj7ltH X-Google-Smtp-Source: AOwi7QAkj0ZdPTPaiZni8jEzRkJv8+IliyjgK8UJals6z3ngki1fIeVITZeQZCim0t3Fk9QpRsD64w== X-Received: by 10.28.23.3 with SMTP id 3mr921720wmx.62.1505824214447; Tue, 19 Sep 2017 05:30:14 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:17 +0200 Message-Id: <1505824179-21541-29-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 28/50] kvm: use start + size for memory ranges X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Convert kvm_lookup_matching_slot(). Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-4-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index e0d100b..88b0e63 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -172,7 +172,7 @@ static KVMSlot *kvm_alloc_slot(KVMMemoryListener *kml) =20 static KVMSlot *kvm_lookup_matching_slot(KVMMemoryListener *kml, hwaddr start_addr, - hwaddr end_addr) + hwaddr size) { KVMState *s =3D kvm_state; int i; @@ -180,8 +180,7 @@ static KVMSlot *kvm_lookup_matching_slot(KVMMemoryListe= ner *kml, for (i =3D 0; i < s->nr_slots; i++) { KVMSlot *mem =3D &kml->slots[i]; =20 - if (start_addr =3D=3D mem->start_addr && - end_addr =3D=3D mem->start_addr + mem->memory_size) { + if (start_addr =3D=3D mem->start_addr && size =3D=3D mem->memory_s= ize) { return mem; } } @@ -414,7 +413,7 @@ static int kvm_section_update_flags(KVMMemoryListener *= kml, { hwaddr phys_addr =3D section->offset_within_address_space; ram_addr_t size =3D int128_get64(section->size); - KVMSlot *mem =3D kvm_lookup_matching_slot(kml, phys_addr, phys_addr + = size); + KVMSlot *mem =3D kvm_lookup_matching_slot(kml, phys_addr, size); =20 if (mem =3D=3D NULL) { return 0; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825083364312.7740854090449; Tue, 19 Sep 2017 05:44:43 -0700 (PDT) Received: from localhost ([::1]:42626 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHtK-0007XE-HU for importer@patchew.org; Tue, 19 Sep 2017 08:44:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfO-0004BR-9G for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfN-0005Ve-5W for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:18 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:38226) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfM-0005VC-Rz for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:17 -0400 Received: by mail-wr0-x242.google.com with SMTP id p37so2134567wrb.5 for ; Tue, 19 Sep 2017 05:30:16 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=xAOM1cusMhWNvIWBLcWGlFf1RBtYPNbHhHsuAvfMct8=; b=qSe3QHhNrFrckanoZgsN/+vWpyHNWxjFx1TPbcaUoKKQ1Jr4T95IFQOlVFAVq0UKDD fzpa9avRY09cEYnPRJU8LO9gAEIYY7Dm8SEaZoV02iwptBvwPyumPwnkKM8viHhxRGrC glsLR//fZke41ahRKJwYY74sFXFm/nMTOTTctll9JlvFdDqZ8d9g49y1N5eUV8avwiDD 7/WakZfOcOCUkamm79YS06gFn5jJqUPArI94UE1oGh9zD8CEGS41++h7OIk7nJQZku8Q bi5g6fGTYncdMZ3UUSq7v+KWEGPQE4ZBVxN1LBiUz8ofQUwenYR9m4uUIIP96Byi4uPL 5ThA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=xAOM1cusMhWNvIWBLcWGlFf1RBtYPNbHhHsuAvfMct8=; b=XM3YDes8LI0+CXt1Z/InLz0fh9LWmJ5ku17YZiYSLfmVMKFGCM4hZDYqQoV3Eink3U h0wcA6jtQv31DLSsEykgslxpAxeYNWEgNWspTo9wOhPuxVqm1J4SO4yztxXVTaUdIVd+ xVcbejxE/UOaz4koZZ/ghpifQZctJ/v1wIriAkPQdD61AoxbD2Gvi9kFMm2PTkl7XLc1 uPhBTKvIBxCTt2J6IU+jfM1I35CcllvHqfnMkMEisvipkOBBy8Tdn6rBLp8UfH5fftjT L3gGm2CYRId/TYI5fhq/eKUS7rLPhATIBpYTumRdoLLbTdRXZ+TkwyG3iU2hD5qYCl1I 95bQ== X-Gm-Message-State: AHPjjUhdpd9lDYyxqvnA1hdiFgMq4QebEyvZnTa1mrAMNk6EicpGJOUq RQnsTnVV+9iYLZhyKYQzRb3kMkQF X-Google-Smtp-Source: AOwi7QDY+dK6tMQHt42zDex7LrWcqbZd+op1SdC7sYmen2mlFhW7OdN9YPkOQiGJC3BiaLFsmgGZcA== X-Received: by 10.223.153.106 with SMTP id x97mr1263860wrb.107.1505824215511; Tue, 19 Sep 2017 05:30:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:18 +0200 Message-Id: <1505824179-21541-30-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::242 Subject: [Qemu-devel] [PULL 29/50] kvm: we never have overlapping slots in kvm_set_phys_mem() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand The way flatview handles memory sections, we will never have overlapping memory sections in kvm. address_space_update_topology_pass() will make sure that we will only get called for a) an existing memory section for which we only update parameters (log_start, log_stop). b) an existing memory section we want to delete (region_del) c) a brand new memory section we want to add (region_add) We cannot have overlapping memory sections in kvm as we will first remove the overlapping sections and then add the ones without conflicts. Therefore we can remove the complexity for handling prefix and suffix slots. Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-5-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 68 +++++++++----------------------------------------= ---- 1 file changed, 11 insertions(+), 57 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 88b0e63..b677d1b 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -725,7 +725,7 @@ kvm_check_extension_list(KVMState *s, const KVMCapabili= tyInfo *list) static void kvm_set_phys_mem(KVMMemoryListener *kml, MemoryRegionSection *section, bool add) { - KVMSlot *mem, old; + KVMSlot *mem; int err; MemoryRegion *mr =3D section->mr; bool writeable =3D !mr->readonly && !mr->rom_device; @@ -750,28 +750,17 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, ram =3D memory_region_get_ram_ptr(mr) + section->offset_within_region + (section->offset_within_address_space - start_addr); =20 - while (1) { - mem =3D kvm_lookup_overlapping_slot(kml, start_addr, start_addr + = size); + mem =3D kvm_lookup_matching_slot(kml, start_addr, size); + if (!add) { if (!mem) { - break; - } - - if (add && start_addr >=3D mem->start_addr && - (start_addr + size <=3D mem->start_addr + mem->memory_size) && - (ram - start_addr =3D=3D mem->ram - mem->start_addr)) { - /* The new slot fits into the existing one and comes with - * identical parameters - update flags and done. */ - kvm_slot_update_flags(kml, mem, mr); + g_assert(!memory_region_is_ram(mr) && !writeable && !mr->romd_= mode); return; } - - old =3D *mem; - if (mem->flags & KVM_MEM_LOG_DIRTY_PAGES) { kvm_physical_sync_dirty_bitmap(kml, section); } =20 - /* unregister the overlapping slot */ + /* unregister the slot */ mem->memory_size =3D 0; err =3D kvm_set_user_memory_region(kml, mem); if (err) { @@ -779,51 +768,16 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml, __func__, strerror(-err)); abort(); } - - /* register prefix slot */ - if (old.start_addr < start_addr) { - mem =3D kvm_alloc_slot(kml); - mem->memory_size =3D start_addr - old.start_addr; - mem->start_addr =3D old.start_addr; - mem->ram =3D old.ram; - mem->flags =3D kvm_mem_flags(mr); - - err =3D kvm_set_user_memory_region(kml, mem); - if (err) { - fprintf(stderr, "%s: error registering prefix slot: %s\n", - __func__, strerror(-err)); -#ifdef TARGET_PPC - fprintf(stderr, "%s: This is probably because your kernel'= s " \ - "PAGE_SIZE is too big. Please try to use 4= k " \ - "PAGE_SIZE!\n", __func__); -#endif - abort(); - } - } - - /* register suffix slot */ - if (old.start_addr + old.memory_size > start_addr + size) { - ram_addr_t size_delta; - - mem =3D kvm_alloc_slot(kml); - mem->start_addr =3D start_addr + size; - size_delta =3D mem->start_addr - old.start_addr; - mem->memory_size =3D old.memory_size - size_delta; - mem->ram =3D old.ram + size_delta; - mem->flags =3D kvm_mem_flags(mr); - - err =3D kvm_set_user_memory_region(kml, mem); - if (err) { - fprintf(stderr, "%s: error registering suffix slot: %s\n", - __func__, strerror(-err)); - abort(); - } - } + return; } =20 - if (!add) { + if (mem) { + /* update the slot */ + kvm_slot_update_flags(kml, mem, mr); return; } + + /* register the new slot */ mem =3D kvm_alloc_slot(kml); mem->memory_size =3D size; mem->start_addr =3D start_addr; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505824814851162.07768237222626; Tue, 19 Sep 2017 05:40:14 -0700 (PDT) Received: from localhost ([::1]:42606 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHp0-0003eZ-2O for importer@patchew.org; Tue, 19 Sep 2017 08:40:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfO-0004Bx-Sc for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfO-0005WT-4K for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:18 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:34416) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfN-0005Vl-Uv for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:18 -0400 Received: by mail-wm0-x243.google.com with SMTP id i131so3750077wma.1 for ; Tue, 19 Sep 2017 05:30:17 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=dnSpq2yphbIrCjFlaYsVYcukQe2ANmufr4eM9UfpwJ4=; b=Mo97Lrbz6vyOgmpacwgs1Wz3P4B/+ZvTQFGq2pz6GLFLYe+q5g1Zm00tE7p4YCZCAF N32Eg6hqKB93VtE7Kymo/x17fpZYhpSRFz/9k5/HvhZs+bxgXiZMcIhQPXxc39Eghq86 YV2AFqkQufwG3NRjNPM3EzhiqwF4G2FbRSISE0RgzPBF4wZYQyZTJcTt9xtH679wkTHW fw619tsjosuxepQXSzkFQoT/zd4PcQVyVomNtA4O6SG2ElBFOdpLhzy+1f7KqeLhQ98v +/UzHrY9NZr9jA7h7KkCiU9kMO3WxL2fJ3nFlTzgQD3h7JxOQKS2kM1RtYomFA/a6zml HFoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=dnSpq2yphbIrCjFlaYsVYcukQe2ANmufr4eM9UfpwJ4=; b=J3RqiBCpjUZ/+nvfPoeUG522Fx2X5p3pSsXxjJX260TWG7IQ9GgkhNjRUez0RtoXD6 p7FvQDM16KmrPJVjpJwF9cCxFuuDHDWwgRp2aj6od0AjDyGZX322zQin9S+sVIDzlXiZ M95DLdToIXs3ukJ77Wr7bzDsv6W7X/9DI/FDeZPrSnE7ikHrfdfDaWWa2fxI0NOhAarI QjovX/CmW8Ao6tIc2SURsseutyvkZCTwD63snHOyOgSMnzC0uVAwrhnWP+EdbdHtIqMG MhgQGAbj72OsW1Ds44F/EWy9CvjPRyiAxlKHqzJ7tMBJtS1MXSRmcIFKqnArgAjYX16L gTeQ== X-Gm-Message-State: AHPjjUhoe3dopYEmLcmjO6WCID8fuROXGX1oVdcB9AZWoe+yelrq1e84 21YTkv4YvYD3SUlNGCOYOYbOXLbE X-Google-Smtp-Source: AOwi7QABW3pztMtnMzU5Hxgysylht1lMmCn8DVtYyQ3SCAKgTgHoj077hCWp0URkWHRjcrBPwT7OWQ== X-Received: by 10.28.134.143 with SMTP id i137mr1032367wmd.27.1505824216605; Tue, 19 Sep 2017 05:30:16 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:19 +0200 Message-Id: <1505824179-21541-31-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 30/50] kvm: kvm_log_start/stop are only called with known sections X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Let's properly align the sections first and bail out if we would ever get called with a memory section we don't know yet. Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-6-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index b677d1b..2ae4594 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -411,15 +411,21 @@ static int kvm_slot_update_flags(KVMMemoryListener *k= ml, KVMSlot *mem, static int kvm_section_update_flags(KVMMemoryListener *kml, MemoryRegionSection *section) { - hwaddr phys_addr =3D section->offset_within_address_space; - ram_addr_t size =3D int128_get64(section->size); - KVMSlot *mem =3D kvm_lookup_matching_slot(kml, phys_addr, size); + hwaddr start_addr, size; + KVMSlot *mem; =20 - if (mem =3D=3D NULL) { + size =3D kvm_align_section(section, &start_addr); + if (!size) { return 0; - } else { - return kvm_slot_update_flags(kml, mem, section->mr); } + + mem =3D kvm_lookup_matching_slot(kml, start_addr, size); + if (!mem) { + fprintf(stderr, "%s: error finding slot\n", __func__); + abort(); + } + + return kvm_slot_update_flags(kml, mem, section->mr); } =20 static void kvm_log_start(MemoryListener *listener, --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826131258148.69651055513043; Tue, 19 Sep 2017 06:02:11 -0700 (PDT) Received: from localhost ([::1]:42710 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIAE-0005WL-7V for importer@patchew.org; Tue, 19 Sep 2017 09:02:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfQ-0004DU-8l for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfP-0005X5-8y for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:20 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:33577) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfP-0005Wi-2x for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:19 -0400 Received: by mail-wm0-x242.google.com with SMTP id m127so3757248wmm.0 for ; Tue, 19 Sep 2017 05:30:18 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=qoTbc1ScBtvJEwYj2GELxqEc0SJg0ghgyva4aR9TiK0=; b=TBoo36DQUEx7xeik/NkjNZYyj+6BBuKZ+fo10mHqiATEi6mO7l4b4xBq5RhnMtk0BE gKNtDmN4BVL/zMd1bQmdugtOrfvBp9QbTjXibqOgzQaCINyvjKwHWNZeqdXxuKyTyJGH OFOulzek0GMkwJ3ihFDuhAKt87rb7ojuzgtXnYvVKMBJvrvGosx1EgTZh1tE2ZYOeOMa RGjtIvfXNgTEcy6QKJ/3xJkzFRigbyy3FUNhh7lwkZEoQPtQogwFYHDymH4qRoXbaEMl BhKhee/A613AUqwrban13MS7x+j/GAtM2yDv+3ano/w9wk6Dvp+PX+fAaOu7PY7GZJx1 rYfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=qoTbc1ScBtvJEwYj2GELxqEc0SJg0ghgyva4aR9TiK0=; b=IjkdlR//2cw31dpezDJZdPBGBOTv5y35OCIl78wj7R6hkxzjZUCIP92cLLNE8PIM29 L08FSclrjLa64v0ycVZdtgvDRqjaPF85BDnl3Q1Y1rfyyobUuCH7pILJK6zvd+4OIoot vtkj/M7nmRlnNo1r1TGYRGsna0NDuHcH9rqnZKL+b8sId4dz0PoRsinzNSUC4I6H0Ef6 O8Jv98mEAC4rjX6yR0IUBirkSWUkDNC69ZfLVh/WCGWUTv5w1FWxrPBd21Ahsln/e8tn HjF/eq/BWpJDIwfLBDxnHBbzTnE3OL+Kl1W67hRuaINUJr8wF9gyOsn6WmiNmcO2dbeO Qghw== X-Gm-Message-State: AHPjjUhbP2rEkkHHKOnOPExCF0QP6DnLdhKTIixj3r2NRNLS6QgifG7G vowoF8/PD7TK6xAMNigYwNX+fKw0 X-Google-Smtp-Source: AOwi7QBmg1gsBidOrkmeEn65DPQq1aXhaIepVCf1eFKVyaY5cUNlyQyHIrWUPc7Msd/MSGOCv5Al2g== X-Received: by 10.28.141.70 with SMTP id p67mr907753wmd.80.1505824217760; Tue, 19 Sep 2017 05:30:17 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:20 +0200 Message-Id: <1505824179-21541-32-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 31/50] kvm: kvm_log_sync() is only called with known memory sections X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Flatview will make sure that we can only end up in this function with memory sections that correspond to exactly one slot. So we don't have to iterate multiple times. There won't be overlapping slots but only matching slots. Properly align the section and look up the corresponding slot. This heavily simplifies this function. We can now get rid of kvm_lookup_overlapping_slot(). Signed-off-by: David Hildenbrand Message-Id: <20170911174933.20789-7-david@redhat.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 61 +++++++++++--------------------------------------= ---- 1 file changed, 12 insertions(+), 49 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 2ae4594..a8083e8 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -218,34 +218,6 @@ static hwaddr kvm_align_section(MemoryRegionSection *s= ection, return size; } =20 -/* - * Find overlapping slot with lowest start address - */ -static KVMSlot *kvm_lookup_overlapping_slot(KVMMemoryListener *kml, - hwaddr start_addr, - hwaddr end_addr) -{ - KVMState *s =3D kvm_state; - KVMSlot *found =3D NULL; - int i; - - for (i =3D 0; i < s->nr_slots; i++) { - KVMSlot *mem =3D &kml->slots[i]; - - if (mem->memory_size =3D=3D 0 || - (found && found->start_addr < mem->start_addr)) { - continue; - } - - if (end_addr > mem->start_addr && - start_addr < mem->start_addr + mem->memory_size) { - found =3D mem; - } - } - - return found; -} - int kvm_physical_memory_addr_from_host(KVMState *s, void *ram, hwaddr *phys_addr) { @@ -489,18 +461,16 @@ static int kvm_physical_sync_dirty_bitmap(KVMMemoryLi= stener *kml, MemoryRegionSection *section) { KVMState *s =3D kvm_state; - unsigned long size, allocated_size =3D 0; struct kvm_dirty_log d =3D {}; KVMSlot *mem; - int ret =3D 0; - hwaddr start_addr =3D section->offset_within_address_space; - hwaddr end_addr =3D start_addr + int128_get64(section->size); + hwaddr start_addr, size; =20 - d.dirty_bitmap =3D NULL; - while (start_addr < end_addr) { - mem =3D kvm_lookup_overlapping_slot(kml, start_addr, end_addr); - if (mem =3D=3D NULL) { - break; + size =3D kvm_align_section(section, &start_addr); + if (size) { + mem =3D kvm_lookup_matching_slot(kml, start_addr, size); + if (!mem) { + fprintf(stderr, "%s: error finding slot\n", __func__); + abort(); } =20 /* XXX bad kernel interface alert @@ -517,27 +487,20 @@ static int kvm_physical_sync_dirty_bitmap(KVMMemoryLi= stener *kml, */ size =3D ALIGN(((mem->memory_size) >> TARGET_PAGE_BITS), /*HOST_LONG_BITS*/ 64) / 8; - if (!d.dirty_bitmap) { - d.dirty_bitmap =3D g_malloc(size); - } else if (size > allocated_size) { - d.dirty_bitmap =3D g_realloc(d.dirty_bitmap, size); - } - allocated_size =3D size; - memset(d.dirty_bitmap, 0, allocated_size); + d.dirty_bitmap =3D g_malloc0(size); =20 d.slot =3D mem->slot | (kml->as_id << 16); if (kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) =3D=3D -1) { DPRINTF("ioctl failed %d\n", errno); - ret =3D -1; - break; + g_free(d.dirty_bitmap); + return -1; } =20 kvm_get_dirty_pages_log_range(section, d.dirty_bitmap); - start_addr =3D mem->start_addr + mem->memory_size; + g_free(d.dirty_bitmap); } - g_free(d.dirty_bitmap); =20 - return ret; + return 0; } =20 static void kvm_coalesce_mmio_region(MemoryListener *listener, --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15058253140282.3900271177411696; Tue, 19 Sep 2017 05:48:34 -0700 (PDT) Received: from localhost ([::1]:42646 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHx3-0002RA-Aa for importer@patchew.org; Tue, 19 Sep 2017 08:48:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfR-0004EF-2x for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfQ-0005Z8-9e for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:21 -0400 Received: from mail-wr0-x22f.google.com ([2a00:1450:400c:c0c::22f]:48171) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfQ-0005XL-23 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:20 -0400 Received: by mail-wr0-x22f.google.com with SMTP id 108so2947027wra.5 for ; Tue, 19 Sep 2017 05:30:19 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Dk/fNHmFyPaiLbEUo2UmebbdLLBU8nScZddRHKneIXI=; b=aPTgnCDQnhQZ/6jJSGAtH3vLMkL9QHiiy4ythZsPj0d0UZY5/g/xuEYGwWtxEyC+2w PbufESat6aX0scKjn7EwuYUDD7nm0lGU6VTSxbKragkkFzICcD+MJMGFALJNYhyQNPa8 R7P7OlUWfXVFpHtdegBmxuUBkoOGkGS3s04jjkFIM/BDSZNZY8/KEHq9octc03dVnzQa wyYT9KuOAykAXbgr6HRqd54HSpPoXOtUcPHiylod4BvrumXGsibHB6zK+BqZ/CEFvOhS fzZNVYNRwjLYyrtYu80+eBrmN2foLjhDtJQagV7sZnI6vWpBNc+LHxVYlYzBFPG6u9bo krjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Dk/fNHmFyPaiLbEUo2UmebbdLLBU8nScZddRHKneIXI=; b=tKeVBjZtR76IDGT6MAJolu9dUJv/5wk0mltCgBOF18sUl5tPm5XqkLjQF5QAtOphaW gW5l+P4PYLfGZLakp92Cq364YnisPEeW1FdVdka8uWN40t5Rl+p1pZLDyb11hTm082OS FWevma2c30kTnnmXYqairclg2QH7Ac0QOYrqgbLZu3kRLdr+WVt5gvg3L4fotRceTVD9 Mw/1yNOxDZ2eVZFAqQn4YLBptuMs+CExa6lGFEBBrfjLZzWSAgYx8d/QKGmU3mFSK8M/ wsiGSQAdOlZCz/WTTm71SlAe8x5S3XSwlkRYauTKxweB1yylMrJ51u+ej0xYLb5W9PgB Exsw== X-Gm-Message-State: AHPjjUjdGXN4GsjSpcM4LQw1agmBXktuCjojIBKPehmHtZxTMZN4ytFQ SWZq7Zf7u+Cm9NmUAE5J8j5UYDNd X-Google-Smtp-Source: AOwi7QBltYjIYn94TIQRuK1eCvnfFZ7i8Rl7fVUYTBsWUSx5a4dWJQ0hsq63TYJ7Qel48xUhTCrNDQ== X-Received: by 10.223.196.11 with SMTP id v11mr1204591wrf.21.1505824218725; Tue, 19 Sep 2017 05:30:18 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:21 +0200 Message-Id: <1505824179-21541-33-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22f Subject: [Qemu-devel] [PULL 32/50] test-qga: add missing qemu-ga tool dependency X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Philippe Mathieu-Daud=C3=A9 this fixes running 'make check-unit' without running 'make all' beforehand: $ make check-unit ... GTESTER tests/test-qga ** ERROR:tests/test-qga.c:73:fixture_setup: assertion failed (error =3D=3D NUL= L): Failed to execute child process "/build/qemu/qemu-ga" (No such file or = directory) (g-exec-error-quark, 8) make: *** [check-tests/test-qga] Error 1 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20170911210129.5874-1-f4bug@amsat.org> Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Paolo Bonzini --- tests/Makefile.include | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index fae5715..59e027f 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -832,7 +832,8 @@ endif qtest-obj-y =3D tests/libqtest.o $(test-util-obj-y) $(check-qtest-y): $(qtest-obj-y) =20 -tests/test-qga: tests/test-qga.o $(qtest-obj-y) +tests/test-qga$(EXESUF): qemu-ga$(EXESUF) +tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y) =20 SPEED =3D quick GTESTER_OPTIONS =3D -k $(if $(V),--verbose,-q) --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825656436280.4795798014193; Tue, 19 Sep 2017 05:54:16 -0700 (PDT) Received: from localhost ([::1]:42669 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI2Z-00077P-Lp for importer@patchew.org; Tue, 19 Sep 2017 08:54:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60082) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfS-0004FU-9e for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfR-0005a0-8b for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:22 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:35306) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfR-0005ZG-2j for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:21 -0400 Received: by mail-wr0-x241.google.com with SMTP id n64so2147426wrb.2 for ; Tue, 19 Sep 2017 05:30:20 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=m4k/Sj6JVGgaoCiIWgyiRYt36jWeftMd38SVATdqhX8=; b=UPBTi+ueQ75gT+Hrx5B/Ev/Tb21kksjykp8n1qitp0aluR3CaNpVxqrKaJrMQqEeeM 4UiQ10H6gZiSrl9rRyhY2UPtx55Gu7hUSfwlPW6JDOsKe/2QpXgM5P4s5T3UEfKQDMT0 Mg9eLq7FnS8b3hwW+Id0caSpKYIBDebvjn0UJK4nRKtgUsPqsWZ18vEZu9pd7KmM8d75 hteQKbOUBkaE2NG0Zlb31KbSRBJRzWU9h1/B53ar4pgl9bn8Cgzfulo4al2iocU27Psu e6SiS31vckoCOJDemSDMuGUJNoQwsSrCe43QsLi++MbG8CAtyfscvGnVGwex7MPYQD1z OnSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=m4k/Sj6JVGgaoCiIWgyiRYt36jWeftMd38SVATdqhX8=; b=uSlj0mO9fhMcjITc5l82HbuelVd2UpTYugxQKJLMEs2XUVhN2lord3XW6juezbf3oo GAGYQBb/2wQLhA4qnzTGvew63HkMan2FaTh3t9uQbsU+bWK/tmPoF3w/K7EwsCubcF2F ALXllZjkFdasxpNmp3bPYV9YYPfbzFCBWGrteVjZKqbhnBMBlppXKJIMXWyuoR0WMrHf ZG/AVytksJ5B23aNbG33b5i/wg6GuFLn2PQL9dQhwcg5myT12j98Npnpin3vP612JP0Y KIG+Sn+RLwlhFoOtEpNP0eZ2tRlCPCNrpC/QfL0+IyuiLZCjgkcjVEPJc8qb4f68YlCS NorQ== X-Gm-Message-State: AHPjjUhO3AWpvI7mCKLceUjIF/vL1kpZOcoJ1o1uJVo67hhQj3/ZKpHp Yl4oHp1N976jmDO9ULAwD4HeWAWu X-Google-Smtp-Source: AOwi7QBc+llkvUUcReI4s/vplLGfRTjPEzBXbY8Ptlr8w8SsJ8rUt0ox7lIK+dODPEnd9TqhxnQvWA== X-Received: by 10.223.159.11 with SMTP id l11mr1308283wrf.148.1505824219802; Tue, 19 Sep 2017 05:30:19 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:22 +0200 Message-Id: <1505824179-21541-34-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 33/50] hw/i386: Improve some of the warning messages X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Habkost , Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Signed-off-by: Alistair Francis Suggested-by: Eduardo Habkost Cc: Eduardo Habkost Message-Id: <1d6ef2ccd9667878ed5820fcf17eef35957ea5d8.1505158760.git.alista= ir.francis@xilinx.com> Signed-off-by: Paolo Bonzini --- hw/i386/acpi-build.c | 15 ++++++++++----- hw/i386/pc.c | 7 +++---- hw/i386/pc_q35.c | 8 +++++--- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 4d19d91..9776812 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2750,17 +2750,22 @@ void acpi_build(AcpiBuildTables *tables, MachineSta= te *machine) ACPI_BUILD_ALIGN_SIZE); if (tables_blob->len > legacy_table_size) { /* Should happen only with PCI bridges and -M pc-i440fx-2.0. = */ - warn_report("migration may not work."); + warn_report("ACPI table size %u exceeds %d bytes," + " migration may not work", + tables_blob->len, legacy_table_size); + error_printf("Try removing CPUs, NUMA nodes, memory slots" + " or PCI bridges."); } g_array_set_size(tables_blob, legacy_table_size); } else { /* Make sure we have a buffer in case we need to resize the tables= . */ if (tables_blob->len > ACPI_BUILD_TABLE_SIZE / 2) { /* As of QEMU 2.1, this fires with 160 VCPUs and 255 memory sl= ots. */ - warn_report("ACPI tables are larger than 64k."); - warn_report("migration may not work."); - warn_report("please remove CPUs, NUMA nodes, " - "memory slots or PCI bridges."); + warn_report("ACPI table size %u exceeds %d bytes," + " migration may not work", + tables_blob->len, ACPI_BUILD_TABLE_SIZE / 2); + error_printf("Try removing CPUs, NUMA nodes, memory slots" + " or PCI bridges."); } acpi_align_size(tables_blob, ACPI_BUILD_TABLE_SIZE); } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 2108104..c882f8c 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -384,7 +384,7 @@ ISADevice *pc_find_fdc0(void) warn_report("multiple floppy disk controllers with " "iobase=3D0x3f0 have been found"); error_printf("the one being picked for CMOS setup might not reflec= t " - "your intent\n"); + "your intent"); } =20 return state.floppy; @@ -2098,9 +2098,8 @@ static void pc_machine_set_max_ram_below_4g(Object *o= bj, Visitor *v, } =20 if (value < (1ULL << 20)) { - warn_report("small max_ram_below_4g(%"PRIu64 - ") less than 1M. BIOS may not work..", - value); + warn_report("Only %" PRIu64 " bytes of RAM below the 4GiB boundary= ," + "BIOS may not work with less than 1MiB", value); } =20 pcms->max_ram_below_4g =3D value; diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index c1cba58..6c4ec4b 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -101,9 +101,11 @@ static void pc_q35_init(MachineState *machine) lowmem =3D pcms->max_ram_below_4g; if (machine->ram_size - lowmem > lowmem && lowmem & ((1ULL << 30) - 1)) { - warn_report("Large machine and max_ram_below_4g(%"PRIu64 - ") not a multiple of 1G; possible bad performance.= ", - pcms->max_ram_below_4g); + warn_report("There is possibly poor performance as the ram siz= e " + " (0x%" PRIx64 ") is more then twice the size of" + " max-ram-below-4g (%"PRIu64") and" + " max-ram-below-4g is not a multiple of 1G.", + (uint64_t)machine->ram_size, pcms->max_ram_below_4= g); } } =20 --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825302803310.513624791801; Tue, 19 Sep 2017 05:48:22 -0700 (PDT) Received: from localhost ([::1]:42644 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHwr-0002Ip-S5 for importer@patchew.org; Tue, 19 Sep 2017 08:48:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60147) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfa-0004Mr-TI for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfS-0005aw-HY for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:26 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:33580) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfS-0005aW-Ai for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:22 -0400 Received: by mail-wm0-x242.google.com with SMTP id m127so3757436wmm.0 for ; Tue, 19 Sep 2017 05:30:22 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=oO02J+GYofjvdCgSoXmd39xaArKHoS8hPmbiOOd0lg0=; b=NuHSlkc12ecTcU7h+GYMu/5yWjhUK4IkWiB0aaPb4b4fuUHLolvWBwZP7TBGL0EHcb E+5H7jhk27f5eZdylE2VJq7AyJst9wGzdbGAFnCoEmmyw9GAfT5W0qN5hCue059Njyk5 5sbdSi/xtEIBfDHnpx+3WR2DRh9mkAVJzYFIK16ob8drNPnpfvWSh3Iim7EiVKxQQY6P 0DgYkkKqljQAEM1WGTCzdjNg0mP0X12OMs7jSbhdlktiYbOIR4K33RrNc1s5P7BHfRE1 8jJ4EJk4Sn59cg5hN4vaUG1r7gXut0z4AyVGBtbPJfKHDhI8/hhln/gXMj4IBORjp8gV t7Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=oO02J+GYofjvdCgSoXmd39xaArKHoS8hPmbiOOd0lg0=; b=KYpb0HM2tO8oMDVRPnm+WImMVidixC/J34BO1mLdrNE3kVVsohxjs1NUiQIfJKg3sO 0VArwGMB3s59PBoZXv29fZfZM7BeBtdBXEaKI+rMygDE2RD6ESuwzT++r60MTOi3lpaH GI34Ib51t0OAgzm1TcQ5Vh1x+SxOQ9TOtslSLYBNqXR2C9HizOMSInEdr5S54XTdj4vq 9tXo9rq2q5uXVIDsSYHyQqdMfQGqfdVoW35CndKn/a/l1tSsJ2KANxO2W5Vrx0H9RKPB rYyVKtDTS6mxEJTKOVjvYhIOs45Rcl6RQxjnx9jy/8SKGae3NOf6b3bpnkukjQn6wKQ0 MZzg== X-Gm-Message-State: AHPjjUiIThe2JtjLzXo6O1pZETuFlq79uhtHFy6JNNCUOpaGSy1u+v33 b50A6syX43CUE5QvdlmNtB6lZQfe X-Google-Smtp-Source: AOwi7QDZ/8NN4QZDBqTCFh2q7Aiiev3F+XGYIW8s7YObMo/MkskdG4RIZE7RI7x0+fnEOsAF7nJyCQ== X-Received: by 10.28.0.7 with SMTP id 7mr912123wma.109.1505824221051; Tue, 19 Sep 2017 05:30:21 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:23 +0200 Message-Id: <1505824179-21541-35-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 34/50] Convert remaining error_report() to warn_report() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Cornelia Huck , Alexander Graf , Max Reitz , Christian Borntraeger , Stefan Hajnoczi , Alistair Francis , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis In a previous patch (3dc6f8693694a649a9c83f1e2746565b47683923) we converted uses of error_report("warning:"... to use warn_report() instead. This was to help standardise on a single method of printing warnings to the user. There appears to have been some cases that slipped through in patch sets applied around the same time, this patch catches the few remaining cases. All of the warnings were changed using this command: find ./* -type f -exec sed -i \ 's|error_report(".*warning[,:] |warn_report("|Ig' {} + Indentation fixed up manually afterwards. Two messages were manually fixed up as well. Signed-off-by: Alistair Francis Cc: Kevin Wolf Cc: Max Reitz Cc: Christian Borntraeger Cc: Cornelia Huck Cc: Alexander Graf Cc: Richard Henderson Cc: Stefan Hajnoczi Acked-by: Cornelia Huck Reviewed-by: Markus Armbruster Message-Id: Signed-off-by: Paolo Bonzini --- block/qcow2.c | 9 +++++---- target/s390x/kvm.c | 4 ++-- trace/control.c | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index bae5893..d33fb3e 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -301,10 +301,11 @@ static int qcow2_read_extensions(BlockDriverState *bs= , uint64_t start_offset, } =20 if (!(s->autoclear_features & QCOW2_AUTOCLEAR_BITMAPS)) { - error_report("WARNING: a program lacking bitmap support " - "modified this file, so all bitmaps are now " - "considered inconsistent. Some clusters may b= e " - "leaked, run 'qemu-img check -r' on the image= " + warn_report("a program lacking bitmap support " + "modified this file, so all bitmaps are now " + "considered inconsistent"); + error_printf("Some clusters may be leaked, " + "run 'qemu-img check -r' on the image " "file to fix."); if (need_update_header !=3D NULL) { /* Updating is needed to drop invalid bitmap extension= . */ diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index d07763f..ad7ce9f 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -224,8 +224,8 @@ static void kvm_s390_enable_cmma(void) }; =20 if (mem_path) { - error_report("Warning: CMM will not be enabled because it is not " - "compatible to hugetlbfs."); + warn_report("CMM will not be enabled because it is not " + "compatible with hugetlbfs."); return; } rc =3D kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr); diff --git a/trace/control.c b/trace/control.c index 82d8989..2769934 100644 --- a/trace/control.c +++ b/trace/control.c @@ -72,8 +72,8 @@ void trace_event_register_group(TraceEvent **events) if (likely(next_vcpu_id < CPU_TRACE_DSTATE_MAX_EVENTS)) { events[i]->vcpu_id =3D next_vcpu_id++; } else { - error_report("WARNING: too many vcpu trace events; dropping '%= s'", - events[i]->name); + warn_report("too many vcpu trace events; dropping '%s'", + events[i]->name); } } event_groups =3D g_renew(TraceEventGroup, event_groups, nevent_groups = + 1); --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826456633850.1483741821326; Tue, 19 Sep 2017 06:07:36 -0700 (PDT) Received: from localhost ([::1]:42745 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIFT-0001kq-9z for importer@patchew.org; Tue, 19 Sep 2017 09:07:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60168) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfc-0004PV-Fr for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfU-0005by-Ib for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:28 -0400 Received: from mail-wm0-x231.google.com ([2a00:1450:400c:c09::231]:46688) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfU-0005bk-8M for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:24 -0400 Received: by mail-wm0-x231.google.com with SMTP id i189so4776540wmf.1 for ; Tue, 19 Sep 2017 05:30:24 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=A+nDuEbAUYSOy+CxeyIAO/0ZTm1m8Osytxr6ffiarVQ=; b=SKl62M33tIe9l1IcApBADhUZRRRaZPV+FGllaZHcCpWv93qoBeL5le7z/DCbffdlZz wMi5rmy1h4aqps4h5nm+2SlfQYwDipNtm0SD/ehhhwiMlNjSmcqPC6mAjBr6t2+UGtPS z48zQJIxH+Xxk1rNHgH83rmg+jJMhV4GcubcOxvO+IOjpJ8wEi3/sPvp60JHajodTp1/ phYDGkAbcUzNH3ab4tYywrECHNgYHl+Bfu41KuyBdVNBbryBD+d8jNXT4rpGPeibqG0t ZI9xGw6v/JTq14hjX2UEK1oWbPIAj8eWunkYv8yShYCHk3j0YD+Y0bVAcDy6xMSlHsqL Tuqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=A+nDuEbAUYSOy+CxeyIAO/0ZTm1m8Osytxr6ffiarVQ=; b=akT+Y1jAmfG5NvqaFVcgSj1/Og8PXmU3TOQKtc7hoonbOvoVOQQCTSssDdH4CyQQG5 EZkB70UZ5zMFvepnop8RxM26xEKHJOe5RRredIgqkUHWDg8PvAT/k8U8AtyikM8RRIV/ 9YGx80JFXMAs+jbxuQsPy62aHO8iBk7ucG92slUorW5wrQY0Nzdtak1UiAUosjHBVnj2 FkDQKjXZYpK7RUZg08CFBBiaz/EO0M9rsjxz5Mtf5bdFWBmmQhZKzGb/CCoI+z8V0hry rVxz4hPj1IcWIP3BGFoGQWoKvZpJzG95Wrkb+h28/cTvE59FeA/rV5DUuaEZ1Y7gPapz NMug== X-Gm-Message-State: AHPjjUi/2f7O80n6ETH4KdO5JWcjWQ1VkqFjIUy4AgHoy15ignwfSXfG 6VHFcQ/QKbQlyjlbZ/m+O2A7Ryed X-Google-Smtp-Source: AOwi7QBaDvtl1cSS8nYkIuGFtyOyOL0WB3p6CjKxAow3Loo29nzD+LpPL+cP0gCyT+mph4RvPQ5mxw== X-Received: by 10.28.111.71 with SMTP id k68mr996204wmc.64.1505824222849; Tue, 19 Sep 2017 05:30:22 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:24 +0200 Message-Id: <1505824179-21541-36-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::231 Subject: [Qemu-devel] [PULL 35/50] Convert single line fprintf(.../n) to warn_report() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , James Hogan , Eduardo Habkost , "Michael S. Tsirkin" , Jason Wang , Michael Roth , Max Reitz , Gerd Hoffmann , Stefan Hajnoczi , Yongbok Kim , Igor Mammedov , Alistair Francis , Aurelien Jarno , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Convert all the single line uses of fprintf(stderr, "warning:"..."\n"... to use warn_report() instead. This helps standardise on a single method of printing warnings to the user. All of the warnings were changed using this command: find ./* -type f -exec sed -i \ 's|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("\1"\2);|Ig'= \ {} + Some of the lines were manually edited to reduce the line length to below 80 charecters. The #include lines were manually updated to allow the code to compile. Signed-off-by: Alistair Francis Cc: Kevin Wolf Cc: Max Reitz Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: Gerd Hoffmann Cc: Jason Wang Cc: Michael Roth Cc: James Hogan Cc: Aurelien Jarno Cc: Yongbok Kim Cc: Stefan Hajnoczi Reviewed-by: Markus Armbruster Reviewed-by: James Hogan [mips] Message-Id: Signed-off-by: Paolo Bonzini --- block/vvfat.c | 4 +++- hw/acpi/core.c | 3 ++- hw/i386/pc.c | 2 +- hw/misc/applesmc.c | 2 +- hw/usb/hcd-ehci.c | 5 +++-- hw/virtio/virtio-balloon.c | 3 ++- net/hub.c | 3 ++- qga/vss-win32.c | 3 ++- target/mips/kvm.c | 4 ++-- trace/simple.c | 3 ++- ui/keymaps.c | 2 +- ui/spice-display.c | 2 +- 12 files changed, 22 insertions(+), 14 deletions(-) diff --git a/block/vvfat.c b/block/vvfat.c index c54fa94..efad575 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -32,6 +32,7 @@ #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" #include "qemu/cutils.h" +#include "qemu/error-report.h" =20 #ifndef S_IWGRP #define S_IWGRP 0 @@ -3028,7 +3029,8 @@ DLOG(checkpoint()); if (memcmp(direntries + k, array_get(&(s->directory), dir_index += k), sizeof(direntry_t))) { - fprintf(stderr, "Warning: tried to write to wr= ite-protected file\n"); + warn_report("tried to write to write-protected= " + "file"); return -1; } } diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 95fcac9..2a1b79c 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -28,6 +28,7 @@ #include "qapi/opts-visitor.h" #include "qapi-visit.h" #include "qapi-event.h" +#include "qemu/error-report.h" =20 struct acpi_table_header { uint16_t _length; /* our length, not actual part of the hdr */ @@ -221,7 +222,7 @@ static void acpi_table_install(const char unsigned *blo= b, size_t bloblen, } =20 if (!has_header && changed_fields =3D=3D 0) { - fprintf(stderr, "warning: ACPI table: no headers are specified\n"); + warn_report("ACPI table: no headers are specified"); } =20 /* recalculate checksum */ diff --git a/hw/i386/pc.c b/hw/i386/pc.c index c882f8c..ef5f30e 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1310,7 +1310,7 @@ void pc_acpi_init(const char *default_dsdt) =20 filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, default_dsdt); if (filename =3D=3D NULL) { - fprintf(stderr, "WARNING: failed to find %s\n", default_dsdt); + warn_report("failed to find %s", default_dsdt); } else { QemuOpts *opts =3D qemu_opts_create(qemu_find_opts("acpi"), NULL, = 0, &error_abort); diff --git a/hw/misc/applesmc.c b/hw/misc/applesmc.c index 7896812..7be8b5f 100644 --- a/hw/misc/applesmc.c +++ b/hw/misc/applesmc.c @@ -331,7 +331,7 @@ static void applesmc_isa_realize(DeviceState *dev, Erro= r **errp) s->iobase + APPLESMC_ERR_PORT); =20 if (!s->osk || (strlen(s->osk) !=3D 64)) { - fprintf(stderr, "WARNING: Using AppleSMC with invalid key\n"); + warn_report("Using AppleSMC with invalid key"); s->osk =3D default_osk; } =20 diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 604912c..46fd30b 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -32,6 +32,7 @@ #include "hw/usb/ehci-regs.h" #include "hw/usb/hcd-ehci.h" #include "trace.h" +#include "qemu/error-report.h" =20 #define FRAME_TIMER_FREQ 1000 #define FRAME_TIMER_NS (NANOSECONDS_PER_SECOND / FRAME_TIMER_FREQ) @@ -348,7 +349,7 @@ static void ehci_trace_sitd(EHCIState *s, hwaddr addr, static void ehci_trace_guest_bug(EHCIState *s, const char *message) { trace_usb_ehci_guest_bug(message); - fprintf(stderr, "ehci warning: %s\n", message); + warn_report("%s", message); } =20 static inline bool ehci_enabled(EHCIState *s) @@ -1728,7 +1729,7 @@ static int ehci_state_fetchsitd(EHCIState *ehci, int = async) /* siTD is not active, nothing to do */; } else { /* TODO: split transfers are not implemented */ - fprintf(stderr, "WARNING: Skipping active siTD\n"); + warn_report("Skipping active siTD"); } =20 ehci_set_fetch_addr(ehci, async, sitd.next); diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index a705e0e..37cde38 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -26,6 +26,7 @@ #include "qapi/visitor.h" #include "qapi-event.h" #include "trace.h" +#include "qemu/error-report.h" =20 #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" @@ -292,7 +293,7 @@ static void virtio_balloon_receive_stats(VirtIODevice *= vdev, VirtQueue *vq) s->stats_vq_offset =3D offset; =20 if (qemu_gettimeofday(&tv) < 0) { - fprintf(stderr, "warning: %s: failed to get time of day\n", __func= __); + warn_report("%s: failed to get time of day", __func__); goto out; } =20 diff --git a/net/hub.c b/net/hub.c index 32d8cf5..afe941a 100644 --- a/net/hub.c +++ b/net/hub.c @@ -18,6 +18,7 @@ #include "clients.h" #include "hub.h" #include "qemu/iov.h" +#include "qemu/error-report.h" =20 /* * A hub broadcasts incoming packets to all its ports except the source po= rt. @@ -330,7 +331,7 @@ void net_hub_check_clients(void) } } if (has_host_dev && !has_nic) { - fprintf(stderr, "Warning: vlan %d with no nics\n", hub->id); + warn_report("vlan %d with no nics", hub->id); } if (has_nic && !has_host_dev) { fprintf(stderr, diff --git a/qga/vss-win32.c b/qga/vss-win32.c index a80933c..dcb2756 100644 --- a/qga/vss-win32.c +++ b/qga/vss-win32.c @@ -12,6 +12,7 @@ =20 #include "qemu/osdep.h" #include +#include "qemu/error-report.h" #include "qga/guest-agent-core.h" #include "qga/vss-win32.h" #include "qga/vss-win32/requester.h" @@ -61,7 +62,7 @@ static bool vss_check_os_version(void) return false; } if (wow64) { - fprintf(stderr, "Warning: Running under WOW64\n"); + warn_report("Running under WOW64"); } #endif return !wow64; diff --git a/target/mips/kvm.c b/target/mips/kvm.c index 3317905..a23aa43 100644 --- a/target/mips/kvm.c +++ b/target/mips/kvm.c @@ -95,11 +95,11 @@ void kvm_mips_reset_vcpu(MIPSCPU *cpu) CPUMIPSState *env =3D &cpu->env; =20 if (!kvm_mips_fpu_cap && env->CP0_Config1 & (1 << CP0C1_FP)) { - fprintf(stderr, "Warning: KVM does not support FPU, disabling\n"); + warn_report("KVM does not support FPU, disabling"); env->CP0_Config1 &=3D ~(1 << CP0C1_FP); } if (!kvm_mips_msa_cap && env->CP0_Config3 & (1 << CP0C3_MSAP)) { - fprintf(stderr, "Warning: KVM does not support MSA, disabling\n"); + warn_report("KVM does not support MSA, disabling"); env->CP0_Config3 &=3D ~(1 << CP0C3_MSAP); } =20 diff --git a/trace/simple.c b/trace/simple.c index a221a3f..e82018d 100644 --- a/trace/simple.c +++ b/trace/simple.c @@ -15,6 +15,7 @@ #include "qemu/timer.h" #include "trace/control.h" #include "trace/simple.h" +#include "qemu/error-report.h" =20 /** Trace file header event ID, picked to avoid conflict with real event I= Ds */ #define HEADER_EVENT_ID (~(uint64_t)0) @@ -405,7 +406,7 @@ bool st_init(void) =20 thread =3D trace_thread_create(writeout_thread); if (!thread) { - fprintf(stderr, "warning: unable to initialize simple trace backen= d\n"); + warn_report("unable to initialize simple trace backend"); return false; } =20 diff --git a/ui/keymaps.c b/ui/keymaps.c index fa00b82..7fa21f8 100644 --- a/ui/keymaps.c +++ b/ui/keymaps.c @@ -141,7 +141,7 @@ static kbd_layout_t *parse_keyboard_layout(const name2k= eysym_t *table, int keysym; keysym =3D get_keysym(table, keyname); if (keysym =3D=3D 0) { - /* fprintf(stderr, "Warning: unknown keysym %s\n", lin= e);*/ + /* warn_report("unknown keysym %s", line);*/ } else { const char *rest =3D line + offset + 1; int keycode =3D strtol(rest, NULL, 0); diff --git a/ui/spice-display.c b/ui/spice-display.c index 042292c..0963c78 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -850,7 +850,7 @@ static void qemu_spice_gl_unblock_bh(void *opaque) =20 static void qemu_spice_gl_block_timer(void *opaque) { - fprintf(stderr, "WARNING: spice: no gl-draw-done within one second\n"); + warn_report("spice: no gl-draw-done within one second"); } =20 static void spice_gl_refresh(DisplayChangeListener *dcl) --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826620070165.17817235584948; Tue, 19 Sep 2017 06:10:20 -0700 (PDT) Received: from localhost ([::1]:42756 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duII7-00049i-6O for importer@patchew.org; Tue, 19 Sep 2017 09:10:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60199) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfc-0004RT-VF for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfY-0005dl-KY for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:31 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:34348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfY-0005cG-7r for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:28 -0400 Received: by mail-wr0-x244.google.com with SMTP id k20so2150148wre.1 for ; Tue, 19 Sep 2017 05:30:25 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=TZ90DcmqqkEz/fq33e5/+uqgzg3l9YfpBJsZN9bWtJs=; b=JDbdFFNN6kdd014O0r02CW7kWFrcKsZxW6pnnZ0s4sZMdAPX/5KZQ918kponVcmgxW 71wAw9xu7bNHQtJwQua6/PdT2Zg4teDlqATtZggsSOdQsO0cgyaDUOZnGOa9KI6xDXCK cXx7E9I/VMdW3b2dZWYei+LLh29/VeMmY/XmwBrGGXkGAwZZrBv7aeFSvMucKfnUlXCw NFxZWg2vkWb14NjqGf6+WmLciUCZjA28HGJIpqUKIvLMFittpMNDIawu3Brh+ZYaZsVd 9Dn1uzClNzPj50GzO025ZXcj3ZXNXUViqGhWoofh1Mn7a/jZ29eX9om1ARScwMhCvQQt bbZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=TZ90DcmqqkEz/fq33e5/+uqgzg3l9YfpBJsZN9bWtJs=; b=cmqoVfTczmE4he90JTpirGkaQ/6UJqvpQO1Vi13ve1BFGlMHs3JYjM9NF2g7Jyg7T0 O4HS3AZL+8auNbMtiuAj0VJoYHsh98GDp6s4yUSWmAE0qr3cyNqiHcP4YAsnSyzT/SfN efytAjn2KeiIXflu9ov9S3G6pQkrLUdH0AWKdxwcO5Tshpzy1RygrdbvmYxgakPybLKM p+KAH5BqdLOC7eig6Zr9JbcUWZ1BQ3XJrBGvKa93kNPBngMH6pM8TUC+1xxRzVrvXv8g SMm2fr2xPMnLCTz7oh8yTcMj0GEN3tZZMqAdDITVPZOQsbxTXjz1MCfmOVA3Av3BwdAm H/7A== X-Gm-Message-State: AHPjjUidN6o1xlVKa5WGtEwiwPkLNBwJ2078OXpcY/5P5Zr6MRaPwQ7B Gay4+zjK6Zyd4wdiWnhJRltZvFd9 X-Google-Smtp-Source: AOwi7QBiNvhOfYkIEoERIecWjf1862H9810xh/cqMm+LymEGSBHeR//7vEmIRU51Xlp/lA2fNEiVBA== X-Received: by 10.223.173.242 with SMTP id w105mr1355910wrc.111.1505824224635; Tue, 19 Sep 2017 05:30:24 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:25 +0200 Message-Id: <1505824179-21541-37-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PULL 36/50] Convert multi-line fprintf() to warn_report() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Jason Wang , Cornelia Huck , Alexander Graf , Max Reitz , Yongbok Kim , Gerd Hoffmann , David Gibson , Anthony Perard , Igor Mammedov , Alistair Francis , Christian Borntraeger , Aurelien Jarno , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Convert all the multi-line uses of fprintf(stderr, "warning:"..."\n"... to use warn_report() instead. This helps standardise on a single method of printing warnings to the user. All of the warnings were changed using these commands: find ./* -type f -exec sed -i \ 'N; {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("\1"\2);= |Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("\1"\2= );|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("\1"= \2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(.*".*warning[,:] \(.*\)\\n"\(.*\));|warn_rep= ort("\1"\2);|Ig}' \ {} + Indentation fixed up manually afterwards. Some of the lines were manually edited to reduce the line length to below 80 charecters. Some of the lines with newlines in the middle of the string were also manually edit to avoid checkpatch errrors. The #include lines were manually updated to allow the code to compile. Several of the warning messages can be improved after this patch, to keep this patch mechanical this has been moved into a later patch. Signed-off-by: Alistair Francis Cc: Paolo Bonzini Cc: Kevin Wolf Cc: Max Reitz Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: Peter Maydell Cc: Stefano Stabellini Cc: Anthony Perard Cc: Richard Henderson Cc: Eduardo Habkost Cc: Aurelien Jarno Cc: Yongbok Kim Cc: Cornelia Huck Cc: Christian Borntraeger Cc: Alexander Graf Cc: Jason Wang Cc: David Gibson Cc: Gerd Hoffmann Acked-by: Cornelia Huck Reviewed-by: Markus Armbruster Message-Id: <5def63849ca8f551630c6f2b45bcb1c482f765a6.1505158760.git.alista= ir.francis@xilinx.com> Signed-off-by: Paolo Bonzini --- accel/kvm/kvm-all.c | 7 +++---- block/vvfat.c | 4 ++-- hw/acpi/core.c | 7 +++---- hw/arm/vexpress.c | 4 ++-- hw/i386/xen/xen-mapcache.c | 5 +++-- hw/mips/mips_malta.c | 4 ++-- hw/mips/mips_r4k.c | 6 +++--- hw/s390x/s390-virtio.c | 16 ++++++++-------- net/hub.c | 9 ++++----- net/net.c | 14 +++++++------- target/i386/cpu.c | 12 ++++++------ target/i386/hax-mem.c | 6 +++--- target/ppc/translate_init.c | 18 +++++++++--------- ui/keymaps.c | 9 +++++---- util/main-loop.c | 6 +++--- 15 files changed, 63 insertions(+), 64 deletions(-) diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index a8083e8..b0181d7 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -1536,10 +1536,9 @@ static int kvm_init(MachineState *ms) =20 while (nc->name) { if (nc->num > soft_vcpus_limit) { - fprintf(stderr, - "Warning: Number of %s cpus requested (%d) exceeds " - "the recommended cpus supported by KVM (%d)\n", - nc->name, nc->num, soft_vcpus_limit); + warn_report("Number of %s cpus requested (%d) exceeds " + "the recommended cpus supported by KVM (%d)", + nc->name, nc->num, soft_vcpus_limit); =20 if (nc->num > hard_vcpus_limit) { fprintf(stderr, "Number of %s cpus requested (%d) exceeds " diff --git a/block/vvfat.c b/block/vvfat.c index efad575..6659a4a 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -1227,8 +1227,8 @@ static int vvfat_open(BlockDriverState *bs, QDict *op= tions, int flags, =20 switch (s->fat_type) { case 32: - fprintf(stderr, "Big fat greek warning: FAT32 has not been tes= ted. " - "You are welcome to do so!\n"); + warn_report("FAT32 has not been tested. " + "You are welcome to do so!"); break; case 16: case 12: diff --git a/hw/acpi/core.c b/hw/acpi/core.c index 2a1b79c..cd0a1d3 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -184,10 +184,9 @@ static void acpi_table_install(const char unsigned *bl= ob, size_t bloblen, } =20 if (has_header && le32_to_cpu(ext_hdr->length) !=3D acpi_payload_size)= { - fprintf(stderr, - "warning: ACPI table has wrong length, header says " - "%" PRIu32 ", actual size %zu bytes\n", - le32_to_cpu(ext_hdr->length), acpi_payload_size); + warn_report("ACPI table has wrong length, header says " + "%" PRIu32 ", actual size %zu bytes", + le32_to_cpu(ext_hdr->length), acpi_payload_size); } ext_hdr->length =3D cpu_to_le32(acpi_payload_size); =20 diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index e3acab6..f72ee66 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -493,8 +493,8 @@ static void vexpress_modify_dtb(const struct arm_boot_i= nfo *info, void *fdt) /* Not fatal, we just won't provide virtio. This will * happen with older device tree blobs. */ - fprintf(stderr, "QEMU: warning: couldn't find interrupt controller= in " - "dtb; will not include virtio-mmio devices in the dtb.\n"); + warn_report("couldn't find interrupt controller in " + "dtb; will not include virtio-mmio devices in the dtb.= "); } else { int i; const hwaddr *map =3D daughterboard->motherboard_map; diff --git a/hw/i386/xen/xen-mapcache.c b/hw/i386/xen/xen-mapcache.c index 369c3df..91a4fd6 100644 --- a/hw/i386/xen/xen-mapcache.c +++ b/hw/i386/xen/xen-mapcache.c @@ -9,6 +9,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" =20 #include =20 @@ -125,8 +126,8 @@ void xen_map_cache_init(phys_offset_to_gaddr_t f, void = *opaque) rlimit_as.rlim_cur =3D rlimit_as.rlim_max; =20 if (rlimit_as.rlim_max !=3D RLIM_INFINITY) { - fprintf(stderr, "Warning: QEMU's maximum size of virtual" - " memory is not infinity.\n"); + warn_report("QEMU's maximum size of virtual" + " memory is not infinity."); } if (rlimit_as.rlim_max < MCACHE_MAX_SIZE + NON_MCACHE_MEMORY_SIZE)= { mapcache->max_mcache_size =3D rlimit_as.rlim_max - diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index af678f5..233e2ee 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -216,8 +216,8 @@ static void generate_eeprom_spd(uint8_t *eeprom, ram_ad= dr_t ram_size) } =20 if (ram_size) { - fprintf(stderr, "Warning: SPD cannot represent final %dMB" - " of SDRAM\n", (int)ram_size); + warn_report("SPD cannot represent final %dMB" + " of SDRAM", (int)ram_size); } =20 /* fill in SPD memory information */ diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index 2f5ced7..6ffb88f 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -253,9 +253,9 @@ void mips_r4k_init(MachineState *machine) fprintf(stderr, "qemu: Error registering flash memory.\n"); } } else if (!qtest_enabled()) { - /* not fatal */ - fprintf(stderr, "qemu: Warning, could not load MIPS bios '%s'\n", - bios_name); + /* not fatal */ + warn_report("could not load MIPS bios '%s'", + bios_name); } g_free(filename); =20 diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c index da3f49e..25781f0 100644 --- a/hw/s390x/s390-virtio.c +++ b/hw/s390x/s390-virtio.c @@ -141,9 +141,9 @@ void gtod_save(QEMUFile *f, void *opaque) =20 r =3D s390_get_clock(&tod_high, &tod_low); if (r) { - fprintf(stderr, "WARNING: Unable to get guest clock for migration.= " - "Error code %d. Guest clock will not be migrated " - "which could cause the guest to hang.\n", r); + warn_report("Unable to get guest clock for migration. " + "Error code %d. Guest clock will not be migrated " + "which could cause the guest to hang.", r); qemu_put_byte(f, S390_TOD_CLOCK_VALUE_MISSING); return; } @@ -160,8 +160,8 @@ int gtod_load(QEMUFile *f, void *opaque, int version_id) int r; =20 if (qemu_get_byte(f) =3D=3D S390_TOD_CLOCK_VALUE_MISSING) { - fprintf(stderr, "WARNING: Guest clock was not migrated. This could= " - "cause the guest to hang.\n"); + warn_report("Guest clock was not migrated. This could " + "cause the guest to hang."); return 0; } =20 @@ -170,9 +170,9 @@ int gtod_load(QEMUFile *f, void *opaque, int version_id) =20 r =3D s390_set_clock(&tod_high, &tod_low); if (r) { - fprintf(stderr, "WARNING: Unable to set guest clock value. " - "s390_get_clock returned error %d. This could caus= e " - "the guest to hang.\n", r); + warn_report("Unable to set guest clock value. " + "s390_get_clock returned error %d. This could cause " + "the guest to hang.", r); } =20 return 0; diff --git a/net/hub.c b/net/hub.c index afe941a..745a216 100644 --- a/net/hub.c +++ b/net/hub.c @@ -310,8 +310,8 @@ void net_hub_check_clients(void) QLIST_FOREACH(port, &hub->ports, next) { peer =3D port->nc.peer; if (!peer) { - fprintf(stderr, "Warning: hub port %s has no peer\n", - port->nc.name); + warn_report("hub port %s has no peer", + port->nc.name); continue; } =20 @@ -334,9 +334,8 @@ void net_hub_check_clients(void) warn_report("vlan %d with no nics", hub->id); } if (has_nic && !has_host_dev) { - fprintf(stderr, - "Warning: vlan %d is not connected to host network\n", - hub->id); + warn_report("vlan %d is not connected to host network", + hub->id); } } } diff --git a/net/net.c b/net/net.c index bebb042..1301cdb 100644 --- a/net/net.c +++ b/net/net.c @@ -1493,9 +1493,9 @@ void net_check_clients(void) =20 QTAILQ_FOREACH(nc, &net_clients, next) { if (!nc->peer) { - fprintf(stderr, "Warning: %s %s has no peer\n", - nc->info->type =3D=3D NET_CLIENT_DRIVER_NIC ? - "nic" : "netdev", nc->name); + warn_report("%s %s has no peer", + nc->info->type =3D=3D NET_CLIENT_DRIVER_NIC ? + "nic" : "netdev", nc->name); } } =20 @@ -1506,10 +1506,10 @@ void net_check_clients(void) for (i =3D 0; i < MAX_NICS; i++) { NICInfo *nd =3D &nd_table[i]; if (nd->used && !nd->instantiated) { - fprintf(stderr, "Warning: requested NIC (%s, model %s) " - "was not created (not supported by this machine?)\n", - nd->name ? nd->name : "anonymous", - nd->model ? nd->model : "unspecified"); + warn_report("requested NIC (%s, model %s) " + "was not created (not supported by this machine?)", + nd->name ? nd->name : "anonymous", + nd->model ? nd->model : "unspecified"); } } } diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 69676e1..7644f6d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1766,12 +1766,12 @@ static void report_unavailable_features(FeatureWord= w, uint32_t mask) if ((1UL << i) & mask) { const char *reg =3D get_register_name_32(f->cpuid_reg); assert(reg); - fprintf(stderr, "warning: %s doesn't support requested feature= : " - "CPUID.%02XH:%s%s%s [bit %d]\n", - kvm_enabled() ? "host" : "TCG", - f->cpuid_eax, reg, - f->feat_names[i] ? "." : "", - f->feat_names[i] ? f->feat_names[i] : "", i); + warn_report("%s doesn't support requested feature: " + "CPUID.%02XH:%s%s%s [bit %d]", + kvm_enabled() ? "host" : "TCG", + f->cpuid_eax, reg, + f->feat_names[i] ? "." : "", + f->feat_names[i] ? f->feat_names[i] : "", i); } } } diff --git a/target/i386/hax-mem.c b/target/i386/hax-mem.c index af09034..756f2dd 100644 --- a/target/i386/hax-mem.c +++ b/target/i386/hax-mem.c @@ -178,9 +178,9 @@ static void hax_process_section(MemoryRegionSection *se= ction, uint8_t flags) if (!memory_region_is_ram(mr)) { if (memory_region_is_romd(mr)) { /* HAXM kernel module does not support ROMD yet */ - fprintf(stderr, "%s: Warning: Ignoring ROMD region 0x%016" PRI= x64 - "->0x%016" PRIx64 "\n", __func__, start_pa, - start_pa + size); + warn_report("Ignoring ROMD region 0x%016" PRIx64 + "->0x%016" PRIx64 "", __func__, start_pa, + start_pa + size); } return; } diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index c827d1e..49190ec 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -9316,14 +9316,14 @@ static void init_ppc_proc(PowerPCCPU *cpu) env->tlb_per_way =3D env->nb_tlb / env->nb_ways; } if (env->irq_inputs =3D=3D NULL) { - fprintf(stderr, "WARNING: no internal IRQ controller registered.\n" - " Attempt QEMU to crash very soon !\n"); + warn_report("no internal IRQ controller registered." + " Attempt QEMU to crash very soon !"); } #endif if (env->check_pow =3D=3D NULL) { - fprintf(stderr, "WARNING: no power management check handler " - "registered.\n" - " Attempt QEMU to crash very soon !\n"); + warn_report("no power management check handler " + "registered." + " Attempt QEMU to crash very soon !"); } } =20 @@ -9877,10 +9877,10 @@ static int ppc_fixup_cpu(PowerPCCPU *cpu) * tree. */ if ((env->insns_flags & ~PPC_TCG_INSNS) || (env->insns_flags2 & ~PPC_TCG_INSNS2)) { - fprintf(stderr, "Warning: Disabling some instructions which are no= t " - "emulated by TCG (0x%" PRIx64 ", 0x%" PRIx64 ")\n", - env->insns_flags & ~PPC_TCG_INSNS, - env->insns_flags2 & ~PPC_TCG_INSNS2); + warn_report("Disabling some instructions which are not " + "emulated by TCG (0x%" PRIx64 ", 0x%" PRIx64 ")", + env->insns_flags & ~PPC_TCG_INSNS, + env->insns_flags2 & ~PPC_TCG_INSNS2); } env->insns_flags &=3D PPC_TCG_INSNS; env->insns_flags2 &=3D PPC_TCG_INSNS2; diff --git a/ui/keymaps.c b/ui/keymaps.c index 7fa21f8..a6cefda 100644 --- a/ui/keymaps.c +++ b/ui/keymaps.c @@ -26,6 +26,7 @@ #include "keymaps.h" #include "sysemu/sysemu.h" #include "trace.h" +#include "qemu/error-report.h" =20 static int get_keysym(const name2keysym_t *table, const char *name) @@ -76,8 +77,8 @@ static void add_keysym(char *line, int keysym, int keycod= e, kbd_layout_t *k) { k->keysym2keycode[keysym] =3D keycode; } else { if (k->extra_count >=3D MAX_EXTRA_COUNT) { - fprintf(stderr, "Warning: Could not assign keysym %s (0x%x)" - " because of memory constraints.\n", line, keysym); + warn_report("Could not assign keysym %s (0x%x)" + " because of memory constraints.", line, keysym); } else { trace_keymap_add("extra", keysym, keycode, line); k->keysym2keycode_extra[k->extra_count]. @@ -197,8 +198,8 @@ int keysym2scancode(void *kbd_layout, int keysym) if (keysym < MAX_NORMAL_KEYCODE) { if (k->keysym2keycode[keysym] =3D=3D 0) { trace_keymap_unmapped(keysym); - fprintf(stderr, "Warning: no scancode found for keysym %d\n", - keysym); + warn_report("no scancode found for keysym %d", + keysym); } return k->keysym2keycode[keysym]; } else { diff --git a/util/main-loop.c b/util/main-loop.c index 2f48f41..7558eb5 100644 --- a/util/main-loop.c +++ b/util/main-loop.c @@ -32,6 +32,7 @@ #include "slirp/libslirp.h" #include "qemu/main-loop.h" #include "block/aio.h" +#include "qemu/error-report.h" =20 #ifndef _WIN32 =20 @@ -236,9 +237,8 @@ static int os_host_main_loop_wait(int64_t timeout) static bool notified; =20 if (!notified && !qtest_enabled() && !qtest_driver()) { - fprintf(stderr, - "main-loop: WARNING: I/O thread spun for %d iterations= \n", - MAX_MAIN_LOOP_SPIN); + warn_report("I/O thread spun for %d iterations", + MAX_MAIN_LOOP_SPIN); notified =3D true; } =20 --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826749187490.65763487361994; Tue, 19 Sep 2017 06:12:29 -0700 (PDT) Received: from localhost ([::1]:42772 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIKC-00067Y-Df for importer@patchew.org; Tue, 19 Sep 2017 09:12:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfc-0004R2-Uv for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfZ-0005eO-Rb for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:31 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:37673) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfZ-0005cv-GU for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:29 -0400 Received: by mail-wr0-x243.google.com with SMTP id u48so2146468wrf.4 for ; Tue, 19 Sep 2017 05:30:27 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=h8ZPbtcn5IfepP4X2bXOUdEm4rdtj+PrHyrCROaZt4c=; b=P0p+FKADJNIJRyWV9miUdh1iyUONO5AxBaYK7wza1Xd0fXTwsBpJ33til4og1DGY4h yuYNCV/wvPK458jeQGY/EA19lNQWkPUgE6MEg9Uou1zxIJ8O+S3Z0TD9QOcB97qWTD/2 lG/AAXycc0u7Wfln7SfOP96YnVLhnvbHHAGu+YTF11EXGM7qcXN4MoWELH6UZ79J22yC osDPWPgPUk3vTe+aVoHdKyIHtC/K9OvguGk5T/sptxf18MzQUga6Rf/tSh/kGHkHfxMB nL07ax6amzJLNFYYhQZn39hSiqQWhMuiWVnAVPz3tM9rU3gGx1v2WmMdBl1D9Hk3oA7X WH2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=h8ZPbtcn5IfepP4X2bXOUdEm4rdtj+PrHyrCROaZt4c=; b=QUKbMyNUA+2oafQ85lxhgt1BI+7oFuABJlONj3ceoIHNi0/Te6U7n9brOGU0zDR1tM rGD8nkKdsoYCrQariZOcSEC9lkpSHpYlfPGYz/Idbkmfjv5LMRzRhfTA3rMfLtbT0PKL NEsBh+F5bKW0IO62YsJqT1vjKS7j0PJsaoLAP1levjxxdbjjI3NvlEFz8Y424AVPGCfn iYUR7cLprZCh2ZM7UZjGrAW+lr02O4CVYY18mGLhKP1tUZtPgG0oM2zHTCYtgJazKrCp AedwhkfHDK9+w4El6uMTfh6IY/5aw6kUhQvq7SJPLdS1KhMjoDRhgH01baEeCa//MHNT 0yQA== X-Gm-Message-State: AHPjjUg2s5L/f+IVJRATzxxq2Gc9XXvvj7zUlfAN00OvQRmPHQ6AidTJ 4/+Oof0vwkiJioQU2AoZIZb/TtUG X-Google-Smtp-Source: AOwi7QDLsOsFOXTawE4PAGVuK/4noQj/hDrY7lISU6dvvpvcFfdVYr9ofCQXnxlnrawRSSSaSRl4Lg== X-Received: by 10.223.174.227 with SMTP id y90mr1276265wrc.205.1505824225876; Tue, 19 Sep 2017 05:30:25 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:26 +0200 Message-Id: <1505824179-21541-38-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PULL 37/50] General warn report fixups X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Tidy up some of the warn_report() messages after having converted them to use warn_report(). Signed-off-by: Alistair Francis Reviewed-by: Markus Armbruster Message-Id: <9cb1d23551898c9c9a5f84da6773e99871285120.1505158760.git.alista= ir.francis@xilinx.com> Signed-off-by: Paolo Bonzini --- block/vvfat.c | 3 +-- hw/arm/vexpress.c | 2 +- hw/i386/xen/xen-mapcache.c | 2 +- hw/mips/mips_malta.c | 4 ++-- hw/mips/mips_r4k.c | 3 +-- hw/s390x/s390-virtio.c | 14 ++++++++------ net/hub.c | 6 ++---- net/net.c | 5 +++-- target/i386/hax-mem.c | 6 +++--- target/ppc/translate_init.c | 3 +-- ui/keymaps.c | 3 +-- 11 files changed, 24 insertions(+), 27 deletions(-) diff --git a/block/vvfat.c b/block/vvfat.c index 6659a4a..cbabb36 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -1227,8 +1227,7 @@ static int vvfat_open(BlockDriverState *bs, QDict *op= tions, int flags, =20 switch (s->fat_type) { case 32: - warn_report("FAT32 has not been tested. " - "You are welcome to do so!"); + warn_report("FAT32 has not been tested. You are welcome to do so!"= ); break; case 16: case 12: diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index f72ee66..96c5eeb 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -494,7 +494,7 @@ static void vexpress_modify_dtb(const struct arm_boot_i= nfo *info, void *fdt) * happen with older device tree blobs. */ warn_report("couldn't find interrupt controller in " - "dtb; will not include virtio-mmio devices in the dtb.= "); + "dtb; will not include virtio-mmio devices in the dtb"= ); } else { int i; const hwaddr *map =3D daughterboard->motherboard_map; diff --git a/hw/i386/xen/xen-mapcache.c b/hw/i386/xen/xen-mapcache.c index 91a4fd6..baab93b 100644 --- a/hw/i386/xen/xen-mapcache.c +++ b/hw/i386/xen/xen-mapcache.c @@ -127,7 +127,7 @@ void xen_map_cache_init(phys_offset_to_gaddr_t f, void = *opaque) =20 if (rlimit_as.rlim_max !=3D RLIM_INFINITY) { warn_report("QEMU's maximum size of virtual" - " memory is not infinity."); + " memory is not infinity"); } if (rlimit_as.rlim_max < MCACHE_MAX_SIZE + NON_MCACHE_MEMORY_SIZE)= { mapcache->max_mcache_size =3D rlimit_as.rlim_max - diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 233e2ee..7d6e583 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -216,8 +216,8 @@ static void generate_eeprom_spd(uint8_t *eeprom, ram_ad= dr_t ram_size) } =20 if (ram_size) { - warn_report("SPD cannot represent final %dMB" - " of SDRAM", (int)ram_size); + warn_report("SPD cannot represent final " RAM_ADDR_FMT "MB" + " of SDRAM", ram_size); } =20 /* fill in SPD memory information */ diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index 6ffb88f..b48a4d7 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -254,8 +254,7 @@ void mips_r4k_init(MachineState *machine) } } else if (!qtest_enabled()) { /* not fatal */ - warn_report("could not load MIPS bios '%s'", - bios_name); + warn_report("could not load MIPS bios '%s'", bios_name); } g_free(filename); =20 diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c index 25781f0..0e91c46 100644 --- a/hw/s390x/s390-virtio.c +++ b/hw/s390x/s390-virtio.c @@ -141,9 +141,10 @@ void gtod_save(QEMUFile *f, void *opaque) =20 r =3D s390_get_clock(&tod_high, &tod_low); if (r) { - warn_report("Unable to get guest clock for migration. " - "Error code %d. Guest clock will not be migrated " - "which could cause the guest to hang.", r); + warn_report("Unable to get guest clock for migration: %s", + strerror(-r)); + error_printf("Guest clock will not be migrated " + "which could cause the guest to hang."); qemu_put_byte(f, S390_TOD_CLOCK_VALUE_MISSING); return; } @@ -170,9 +171,10 @@ int gtod_load(QEMUFile *f, void *opaque, int version_i= d) =20 r =3D s390_set_clock(&tod_high, &tod_low); if (r) { - warn_report("Unable to set guest clock value. " - "s390_get_clock returned error %d. This could cause " - "the guest to hang.", r); + warn_report("Unable to set guest clock for migration: %s", + strerror(-r)); + error_printf("Guest clock will not be restored " + "which could cause the guest to hang."); } =20 return 0; diff --git a/net/hub.c b/net/hub.c index 745a216..14b4eec 100644 --- a/net/hub.c +++ b/net/hub.c @@ -310,8 +310,7 @@ void net_hub_check_clients(void) QLIST_FOREACH(port, &hub->ports, next) { peer =3D port->nc.peer; if (!peer) { - warn_report("hub port %s has no peer", - port->nc.name); + warn_report("hub port %s has no peer", port->nc.name); continue; } =20 @@ -334,8 +333,7 @@ void net_hub_check_clients(void) warn_report("vlan %d with no nics", hub->id); } if (has_nic && !has_host_dev) { - warn_report("vlan %d is not connected to host network", - hub->id); + warn_report("vlan %d is not connected to host network", hub->i= d); } } } diff --git a/net/net.c b/net/net.c index 1301cdb..39ef546 100644 --- a/net/net.c +++ b/net/net.c @@ -1494,8 +1494,9 @@ void net_check_clients(void) QTAILQ_FOREACH(nc, &net_clients, next) { if (!nc->peer) { warn_report("%s %s has no peer", - nc->info->type =3D=3D NET_CLIENT_DRIVER_NIC ? - "nic" : "netdev", nc->name); + nc->info->type =3D=3D NET_CLIENT_DRIVER_NIC + ? "nic" : "netdev", + nc->name); } } =20 diff --git a/target/i386/hax-mem.c b/target/i386/hax-mem.c index 756f2dd..27a0d21 100644 --- a/target/i386/hax-mem.c +++ b/target/i386/hax-mem.c @@ -12,6 +12,7 @@ #include "cpu.h" #include "exec/address-spaces.h" #include "exec/exec-all.h" +#include "qemu/error-report.h" =20 #include "target/i386/hax-i386.h" #include "qemu/queue.h" @@ -178,9 +179,8 @@ static void hax_process_section(MemoryRegionSection *se= ction, uint8_t flags) if (!memory_region_is_ram(mr)) { if (memory_region_is_romd(mr)) { /* HAXM kernel module does not support ROMD yet */ - warn_report("Ignoring ROMD region 0x%016" PRIx64 - "->0x%016" PRIx64 "", __func__, start_pa, - start_pa + size); + warn_report("Ignoring ROMD region 0x%016" PRIx64 "->0x%016" PR= Ix64, + start_pa, start_pa + size); } return; } diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 49190ec..466bf97 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -9321,8 +9321,7 @@ static void init_ppc_proc(PowerPCCPU *cpu) } #endif if (env->check_pow =3D=3D NULL) { - warn_report("no power management check handler " - "registered." + warn_report("no power management check handler registered." " Attempt QEMU to crash very soon !"); } } diff --git a/ui/keymaps.c b/ui/keymaps.c index a6cefda..f9762d1 100644 --- a/ui/keymaps.c +++ b/ui/keymaps.c @@ -198,8 +198,7 @@ int keysym2scancode(void *kbd_layout, int keysym) if (keysym < MAX_NORMAL_KEYCODE) { if (k->keysym2keycode[keysym] =3D=3D 0) { trace_keymap_unmapped(keysym); - warn_report("no scancode found for keysym %d", - keysym); + warn_report("no scancode found for keysym %d", keysym); } return k->keysym2keycode[keysym]; } else { --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150582629416397.79413013205374; Tue, 19 Sep 2017 06:04:54 -0700 (PDT) Received: from localhost ([::1]:42723 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duICr-0007qH-52 for importer@patchew.org; Tue, 19 Sep 2017 09:04:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfc-0004R9-Ux for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfa-0005em-KN for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:31 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:34422) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfa-0005dJ-Db for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:30 -0400 Received: by mail-wm0-x241.google.com with SMTP id i131so3750555wma.1 for ; Tue, 19 Sep 2017 05:30:28 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=zvzLQR94+k/XhVOctgu5Fe0ikeVVIpEWkLQcFCfFKoI=; b=UG9SuMzLGLYDB6FyuQSA8wddtR8hDn7Q29A6gKolxa1CBfe5yXop06j1pFeeJjfZ6p iPmsVa3HfN/fN80cA6x9s4vW7XHZ1Jzh1EGrkkh1t1A2Dxni5bzjgbRTIH6N9GZ+cEdb v2IdKIg4UEsfYVEm0YU0f7F2jEp5sTu0S8bINwEFgr4cwAHlXCwpilLFmB5OHl/BYm2L phnURcQUBcJDXBpnp39hxQOpeDdW/GtAXMi9fNhIANysszDSnPUhNosZPMScs5wABUO7 sn24rhxIAsCqUteiYxhedgcE6+ipsGqCt1MYOGg66zWn0uDPJcEBoeNbL4Py1FN05Hcy p51Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=zvzLQR94+k/XhVOctgu5Fe0ikeVVIpEWkLQcFCfFKoI=; b=XcoR0v6r07fb25zbI/Ha1TghvGbKYY2nSxAmq/51Z3VqX6yP8eEXjDv3ZKkSEhJqOL ajwIKQa2gzqy1tSuhlUy9jyfQjBaIYBkzKqDXEu/55pQMdqcOYXNHz3PhQ8630ET6yFk xeIJDiYCLfpdetl7rrqFRDKqlqkb14YZ6lmQhtQ23+yHKuVebjap+xXLc50WNqqb9E2u EpqWjGxt0KNyHtgXO5QE2oP9X6kE3YHlDLXVul7g6Amv8FRbybz85LzVZWJjmCRSvyos 8OlFWqO4ExfaDlc7B/e26AGC1VxmUwOzeQCP0JAflLpajkomIABtIniqrMK5orYvNIYg BWYw== X-Gm-Message-State: AHPjjUg7+PKC83x9CgyuEmv0Pi75bWQACdgL8LYhZD0jc3OxpjTAIK+T uOxhv6p7P68UlVbIIDj6r+wuwvYj X-Google-Smtp-Source: AOwi7QAI/Zw0ii0Dooa10B4BC3A0wFkakxvXB1VQWHnnvB0vjBuKkfPf3uA8SLyhuBKAfz6t/lU32Q== X-Received: by 10.28.144.132 with SMTP id s126mr922400wmd.103.1505824226929; Tue, 19 Sep 2017 05:30:26 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:27 +0200 Message-Id: <1505824179-21541-39-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 38/50] target/mips: Convert VM clock update prints to warn_report X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: James Hogan , Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Convert the fprintf() messages in kvm_mips_update_state() to use warn_report() as they aren't errors, but are just warnings. Signed-off-by: Alistair Francis Cc: James Hogan Message-Id: Signed-off-by: Paolo Bonzini --- target/mips/kvm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/mips/kvm.c b/target/mips/kvm.c index a23aa43..3b7b1d9 100644 --- a/target/mips/kvm.c +++ b/target/mips/kvm.c @@ -526,7 +526,7 @@ static void kvm_mips_update_state(void *opaque, int run= ning, RunState state) if (!cs->vcpu_dirty) { ret =3D kvm_mips_save_count(cs); if (ret < 0) { - fprintf(stderr, "Failed saving count\n"); + warn_report("Failed saving count"); } } } else { @@ -535,14 +535,14 @@ static void kvm_mips_update_state(void *opaque, int r= unning, RunState state) ret =3D kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_COUNT_RESUME, &count_resume); if (ret < 0) { - fprintf(stderr, "Failed setting COUNT_RESUME\n"); + warn_report("Failed setting COUNT_RESUME"); return; } =20 if (!cs->vcpu_dirty) { ret =3D kvm_mips_restore_count(cs); if (ret < 0) { - fprintf(stderr, "Failed restoring count\n"); + warn_report("Failed restoring count"); } } } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826142907617.2869557026803; Tue, 19 Sep 2017 06:02:22 -0700 (PDT) Received: from localhost ([::1]:42713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIAP-0005fb-0g for importer@patchew.org; Tue, 19 Sep 2017 09:02:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfg-0004UW-4h for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfb-0005fG-QA for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:36 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:33629) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfb-0005dq-Gl for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:31 -0400 Received: by mail-wr0-x241.google.com with SMTP id b9so2161808wra.0 for ; Tue, 19 Sep 2017 05:30:29 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=zT9xequSDHzQRvN8spCWFRFbVASg/HVhmEv3m+EOZzk=; b=TGf352ZfdYFT1iGlRhc8IFEe9u+9U/M4zDRHk9HKwkCmUhW004KF6KyVJrDKICsZnZ JWZMLUm7MSzR3qL5jFDq+Ako4n0h9ixjG2w+NhXq15SPIImqadSUEQqdn2XF/DS/przX xgM7UNri7b+bgC2hDuCVRsToZQv101JpL0/QkzPiUW0wEHZq4Tv0J50fXB1hs5reS/Yd MNdA13j4Xq2jrhBGqSXoAquZH6KiJ00UK1jL5U0XuBSz4ic1pu+jaLXOQN6IUzbQxLr7 qfNsOFaatpy4WxaJLGUOCBxiRWT2qNkUIwPhrK5QYyA+ei5yLBwzcwhb6O7mH5kCKH5L APWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=zT9xequSDHzQRvN8spCWFRFbVASg/HVhmEv3m+EOZzk=; b=Xjw5U2QDD0H8T5XYCMW+vcK3PWh0s+6A9vlciqoEvn7pE8Wyg2DvaFHxK6zFTprBp0 XVbunSUF9dlv6S7WcBs3OoH6wugdn4MuLSHk4u/FOm1+I+cmD1UIA2D/5J/vUZd2br27 7Ydj9h7Cq67faVAT6WKyuR4VJtLqobaM3iw1jEj/F8HtxiWiwzOpAoBYhOaFgHb8P42W LhdrJuYazQjDqEDacTBk8ck7iCs6hqiznRVQDy70uZ1+ltMPJed5VUhe5jDGGo9bqF3Y /UnkTk3Kqwy9T8p+BCT4uJM2zlP7oNYNhuhodkno/S9bcEA1CCZ8zctV1YbMV+QJfXgU njDg== X-Gm-Message-State: AHPjjUi8tO8MjYe4P+sNk+lJYs4MupGSjDFfrU2VMfZt7TCe+5UyBfh4 HNQPOV3CpCW6oAt2GTDrsdwoeymY X-Google-Smtp-Source: AOwi7QAnY8xOwry5r9HBYXkOsujpLArwAm+bjR8LYy5iSUyR1YuGVWQ73xBTRg8ge2EXmcXk7Lxs5A== X-Received: by 10.223.153.106 with SMTP id x97mr1264428wrb.107.1505824228029; Tue, 19 Sep 2017 05:30:28 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:28 +0200 Message-Id: <1505824179-21541-40-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 39/50] Makefile: Remove libqemustub.a X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Using two libraries (libqemuutil.a and libqemustub.a) would sometimes result in circular dependencies. To avoid these issues let's just combine both into a single library that functions as both. Signed-off-by: Alistair Francis Message-Id: <54e6458745493d10901964624479a7d9a872f481.1503077821.git.alista= ir.francis@xilinx.com> Signed-off-by: Paolo Bonzini --- Makefile | 7 +++---- Makefile.target | 2 +- docs/devel/build-system.txt | 18 +++++++++--------- tests/Makefile.include | 6 +++--- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index b53fc69..eb831b9 100644 --- a/Makefile +++ b/Makefile @@ -335,7 +335,7 @@ subdir-dtc:dtc/libfdt dtc/tests dtc/%: mkdir -p $@ =20 -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(chardev-obj= -y) \ +$(SUBDIR_RULES): libqemuutil.a $(common-obj-y) $(chardev-obj-y) \ $(qom-obj-y) $(crypto-aes-obj-$(CONFIG_USER_ONLY)) =20 ROMSUBDIR_RULES=3D$(patsubst %,romsubdir-%, $(ROMS)) @@ -355,12 +355,11 @@ Makefile: $(version-obj-y) ###################################################################### # Build libraries =20 -libqemustub.a: $(stub-obj-y) -libqemuutil.a: $(util-obj-y) $(trace-obj-y) +libqemuutil.a: $(util-obj-y) $(trace-obj-y) $(stub-obj-y) =20 ###################################################################### =20 -COMMON_LDADDS =3D libqemuutil.a libqemustub.a +COMMON_LDADDS =3D libqemuutil.a =20 qemu-img.o: qemu-img-cmds.h =20 diff --git a/Makefile.target b/Makefile.target index 6361f95..32b0100 100644 --- a/Makefile.target +++ b/Makefile.target @@ -193,7 +193,7 @@ all-obj-$(CONFIG_SOFTMMU) +=3D $(io-obj-y) =20 $(QEMU_PROG_BUILD): config-devices.mak =20 -COMMON_LDADDS =3D ../libqemuutil.a ../libqemustub.a +COMMON_LDADDS =3D ../libqemuutil.a =20 # build either PROG or PROGW $(QEMU_PROG_BUILD): $(all-obj-y) $(COMMON_LDADDS) diff --git a/docs/devel/build-system.txt b/docs/devel/build-system.txt index 2af1e66..386ef36 100644 --- a/docs/devel/build-system.txt +++ b/docs/devel/build-system.txt @@ -232,15 +232,15 @@ The utility code that is used by all binaries is buil= t into a static archive called libqemuutil.a, which is then linked to all the binaries. In order to provide hooks that are only needed by some of the binaries, code in libqemuutil.a may depend on other functions that are -not fully implemented by all QEMU binaries. To deal with this there is a -second library called libqemustub.a which provides dummy stubs for all -these functions. These will get lazy linked into the binary if the real -implementation is not present. In this way, the libqemustub.a static -library can be thought of as a portable implementation of the weak -symbols concept. All binaries should link to both libqemuutil.a and -libqemustub.a. e.g. - - qemu-img$(EXESUF): qemu-img.o ..snip.. libqemuutil.a libqemustub.a +not fully implemented by all QEMU binaries. Dummy stubs for all these +functions are also provided by this library, and will only be linked +into the binary if the real implementation is not present. In a way, +the stubs can be thought of as a portable implementation of the weak +symbols concept. + +All binaries should link to libqemuutil.a, e.g.: + + qemu-img$(EXESUF): qemu-img.o ..snip.. libqemuutil.a =20 =20 Windows platform portability diff --git a/tests/Makefile.include b/tests/Makefile.include index 59e027f..2136036 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -561,7 +561,7 @@ QEMU_CFLAGS +=3D -I$(SRC_PATH)/tests =20 =20 # Deps that are common to various different sets of tests below -test-util-obj-y =3D libqemuutil.a libqemustub.a +test-util-obj-y =3D libqemuutil.a test-qom-obj-y =3D $(qom-obj-y) $(test-util-obj-y) test-qapi-obj-y =3D tests/test-qapi-visit.o tests/test-qapi-types.o \ tests/test-qapi-event.o tests/test-qmp-introspect.o \ @@ -617,8 +617,8 @@ tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ $(test-io-obj-y) tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-= obj-y) tests/test-base64$(EXESUF): tests/test-base64.o \ - libqemuutil.a libqemustub.a -tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o = hw/core/ptimer.o libqemustub.a + libqemuutil.a +tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o = hw/core/ptimer.o $(test-util-obj-y) =20 tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y) =20 --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825659830659.6870081774188; Tue, 19 Sep 2017 05:54:19 -0700 (PDT) Received: from localhost ([::1]:42670 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI2d-00079V-4N for importer@patchew.org; Tue, 19 Sep 2017 08:54:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60349) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfi-0004Wp-7L for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfc-0005ft-KS for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:38 -0400 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]:36454) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfc-0005eH-Ed for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:32 -0400 Received: by mail-wr0-x241.google.com with SMTP id g50so2141883wra.3 for ; Tue, 19 Sep 2017 05:30:30 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=vbd56YFLzB84fug/6dFC1XwgoHeRtPh9+szTXFZ4BKs=; b=OBHnrInExq8s8QrsqoIEefIQk3v1Rn5oNEz+56b1fKs61puvEEqnWSpd7aCyzlpcLv Bsdg7bXGPLGoqyC9t7TDV3c1smO1SavmxzyLp5iTGmVGz8omRSwUhb+qI/fR6+q1EylQ V85PPyE9I3fxeGRdyrxRyxXR7M37cvziqNV/2wXDVVAmJKtnWI9SknHNtM4xazi+0t6B lHKT9RZXM8RhiLNK0o7HwAvNW5jMjSPdusaHKrgFB1apdlzHqOiThKWFvUwoOKV9TdxE U1GuD9q3GNIUp/6DT+uo3DrqJlztKxAnbqMXlxxCiK4oCrUeRSGrLTWT0Drbta+rI6KI v2+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=vbd56YFLzB84fug/6dFC1XwgoHeRtPh9+szTXFZ4BKs=; b=JAboSuyAasXwa8H/xkbwnc9zTOg6UXCbJTjM7jeuuT1gWbfI9UWZSayG4jrmTZkNN9 lKslkxTqwbVO2y5cKB7EX7ksX82r9SKAqZh6l6CHHMUO9z+yvCgakdZfAbtyzMbDPr+3 BwuXe/omfVoZlWGWbzM4I3V0R1AmC4s0YsKPsPF3DsCvZgA4R13fk73TPJe2vFBGeJqd 3ap+QdwmhWIJR2IjCvyUCGhn3tnx1BSj6cCtr9Yly5pTZsECb7189Jiel54vFDLEU4u+ YIJ9gxKFbCTEHzXk5DLM3uJEGXubg1zWqukgHBoio7AtGrFSKlnUqyH+8iN0vQNdXrSy 81Rw== X-Gm-Message-State: AHPjjUgKwgY9Vo10AB0WyNrQMR/Rigmkzb2xys3GA5IGZOE53zrB3me8 KVdjeRQxAr61PL6Jdz3ePEOWv8xS X-Google-Smtp-Source: AOwi7QAPqeoA6+sX4vnUdOSVEMddKPRyhXezRDJfWRlePtRpOzIu3kc8PPxS7K0yDXHPGCGBb3iY0A== X-Received: by 10.223.161.212 with SMTP id v20mr1357881wrv.195.1505824228966; Tue, 19 Sep 2017 05:30:28 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:29 +0200 Message-Id: <1505824179-21541-41-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::241 Subject: [Qemu-devel] [PULL 40/50] Convert remaining single line fprintf() to warn_report() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Convert any remaining uses of fprintf(stderr, "warning:"... to use warn_report() instead. This helps standardise on a single method of printing warnings to the user. All of the warnings were changed using this command: find ./* -type f -exec sed -i 's|fprintf(.*".*warning[,:] |warn_report("|= Ig' {} + The #include lines and chagnes to the test Makefile were manually updated to allow the code to compile. Signed-off-by: Alistair Francis Message-Id: <2c94ac3bb116cc6b8ebbcd66a254920a69665515.1503077821.git.alista= ir.francis@xilinx.com> Signed-off-by: Paolo Bonzini --- tests/Makefile.include | 2 +- util/cutils.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index 2136036..0c64462 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -593,7 +593,7 @@ tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-o= bj-y) tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(tes= t-crypto-obj-y) tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migrati= on/page_cache.o $(test-util-obj-y) -tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o +tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-= obj-y) tests/test-int128$(EXESUF): tests/test-int128.o tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y) tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y) diff --git a/util/cutils.c b/util/cutils.c index 1534682..b33ede8 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -30,6 +30,7 @@ #include "qemu/iov.h" #include "net/net.h" #include "qemu/cutils.h" +#include "qemu/error-report.h" =20 void strpadcpy(char *buf, int buf_size, const char *str, char pad) { @@ -601,7 +602,7 @@ int parse_debug_env(const char *name, int max, int init= ial) return initial; } if (debug < 0 || debug > max || errno !=3D 0) { - fprintf(stderr, "warning: %s not in [0, %d]", name, max); + warn_report("%s not in [0, %d]", name, max); return initial; } return debug; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825978382894.8445399345294; Tue, 19 Sep 2017 05:59:38 -0700 (PDT) Received: from localhost ([::1]:42694 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI7l-0003Lo-Hc for importer@patchew.org; Tue, 19 Sep 2017 08:59:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60234) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfd-0004SR-T5 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfc-0005fz-LH for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:33 -0400 Received: from mail-wr0-x22f.google.com ([2a00:1450:400c:c0c::22f]:53331) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfc-0005et-Fa for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:32 -0400 Received: by mail-wr0-x22f.google.com with SMTP id l22so2975168wrc.10 for ; Tue, 19 Sep 2017 05:30:31 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=LoW893MmCp687+uINS6isKXTFd/UaZXNgShWM8Q9t5s=; b=Ejbqvzy5rXbUqBTF0kyTZfRC/8WbO0/QVcTWFZ9eG4jghNZA4sKkfXYHTjPkcu+CIQ d6HrtKWdQJMiDS8pN13dnRKbI9umLlAlgvEew5MdURnF8VL2gM16Y5rjD2U6rLxcSHIh +8l9wcZSsyOXfA75oAiJeoffqW4Z7jU5yJPoDUnUkJ6FxpnylyHuvMa3D/GikquKxnqj j9FAKad5ufqtDC9FYTw2BXfkoY24OEM7lcmtCRHviurVyRecHJ+H/lUjtmvxujrBDi0Z Rxj1AUhMzujL599SlH1VOOK0eBF6c/VBP4h35Pxj6z9yX04SmAz16Mu7IZNkZY7/c7D0 JJSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=LoW893MmCp687+uINS6isKXTFd/UaZXNgShWM8Q9t5s=; b=nMARzfssZHxQGTD90CzCwt3HYTLUi6tzvsklORbupzZ9NwY8jTsiFIiDCt+cxmaphO KfeFuHAJkOxayKkpAR+1loEywXb/FVHAjmudhz0zss5Q8SwoIKi1spXeL1RIFup5ZXxv Zyr/UBinUhdYlUeajy+vYKovkuxi7Dj+3gXgW3mMCv3GvWGEkIjSut9cQXVGNG8CIGsM n/nV/O58qm1pNqrB00MnSv6adTL/23H51/7Gd4jtCdA9uHlpwaVsSPn+wUQBBwaBbrob 4h5Yb65bhUPLqG6R9JxdFxvk408jJx0SqTUWwBuUI+sQDQJWaOuzayNomE9dvbAsT8eY ylRA== X-Gm-Message-State: AHPjjUib2Ovc8qOu2hv7YxRmHz54+68/0BROqwK3rOwmgL7mRRDhP/Sc k0zHZhK1LZpfW8bH77brNRzNMGRn X-Google-Smtp-Source: AOwi7QBQvTJF26ZpRRxmM0LIa+9bDfodMpNwVhPmNhe5NG0pNRe7toILHpRmVGRt1zntNA058XwJWA== X-Received: by 10.223.179.1 with SMTP id j1mr1414748wrd.126.1505824230083; Tue, 19 Sep 2017 05:30:30 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:30 +0200 Message-Id: <1505824179-21541-42-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22f Subject: [Qemu-devel] [PULL 41/50] i386/cpu/hyperv: support over 64 vcpus for windows guests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gonglei Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Gonglei Starting with Windows Server 2012 and Windows 8, if CPUID.40000005.EAX contains a value of -1, Windows assumes specific limit to the number of VPs. In this case, Windows Server 2012 guest VMs may use more than 64 VPs, up to the maximum supported number of processors applicable to the specific Windows version being used. https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/referenc= e/tlfs For compatibility, Let's introduce a new property for X86CPU, named "x-hv-max-vps" as Eduardo's suggestion, and set it to 0x40 before machine 2.10. (The "x-" prefix indicates that the property is not supposed to be a stable user interface.) Signed-off-by: Gonglei Message-Id: <1505143227-14324-1-git-send-email-arei.gonglei@huawei.com> Signed-off-by: Paolo Bonzini --- include/hw/i386/pc.h | 5 +++++ target/i386/cpu.c | 14 ++++++++++++++ target/i386/cpu.h | 2 ++ target/i386/kvm.c | 3 ++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 8226904..087d184 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -371,6 +371,11 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_= t *); =20 #define PC_COMPAT_2_10 \ HW_COMPAT_2_10 \ + {\ + .driver =3D TYPE_X86_CPU,\ + .property =3D "x-hv-max-vps",\ + .value =3D "0x40",\ + }, =20 #define PC_COMPAT_2_9 \ HW_COMPAT_2_9 \ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 7644f6d..40c3091 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4145,6 +4145,20 @@ static Property x86_cpu_properties[] =3D { false), DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true), DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true), + + /* + * From "Requirements for Implementing the Microsoft + * Hypervisor Interface": + * https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/= reference/tlfs + * + * "Starting with Windows Server 2012 and Windows 8, if + * CPUID.40000005.EAX contains a value of -1, Windows assumes that + * the hypervisor imposes no specific limit to the number of VPs. + * In this case, Windows Server 2012 guest VMs may use more than + * 64 VPs, up to the maximum supported number of processors applicable + * to the specific Windows version being used." + */ + DEFINE_PROP_INT32("x-hv-max-vps", X86CPU, hv_max_vps, -1), DEFINE_PROP_END_OF_LIST() }; =20 diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 525d35d..5c726f3 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1282,6 +1282,8 @@ struct X86CPU { int32_t socket_id; int32_t core_id; int32_t thread_id; + + int32_t hv_max_vps; }; =20 static inline X86CPU *x86_env_get_cpu(CPUX86State *env) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 739334a..ee4e91f 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -786,7 +786,8 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 c =3D &cpuid_data.entries[cpuid_i++]; c->function =3D HYPERV_CPUID_IMPLEMENT_LIMITS; - c->eax =3D 0x40; + + c->eax =3D cpu->hv_max_vps; c->ebx =3D 0x40; =20 kvm_base =3D KVM_CPUID_SIGNATURE_NEXT; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825821404387.2840659436564; Tue, 19 Sep 2017 05:57:01 -0700 (PDT) Received: from localhost ([::1]:42684 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI5E-0000zy-ED for importer@patchew.org; Tue, 19 Sep 2017 08:57:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfh-0004WV-Ul for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfd-0005hJ-JW for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:37 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:37678) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfd-0005fy-7D for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:33 -0400 Received: by mail-wr0-x244.google.com with SMTP id u48so2146641wrf.4 for ; Tue, 19 Sep 2017 05:30:33 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=KnlA3R3fhD+8gnCT7Hv3JAzBwijmk6lAljoh7cbNHYU=; b=DPGSZLALDWyDwU2F7XArsPMzsQ4QtKaFGLBJvVdG0sJ/CBnHZBeLl+CId/kHxgYSoa f9RhjReaHgqO5K4ZX3CKDN7WuGDZNopfN92UXG5crOB8YInB+VCX3yYosqdsY3/IzMT/ kD6ND0umRxGPb6Qnv0ML2IGYDb7YXF6Pgb+D9T9Jyhq5bfdRMHyR4jOjwDR9X/7bxo/V 9eXpwxX2LhF02Ar/fMKsnRuvN5yaHpe+eU316foK0UIAYl2AU0dtXcxLCVrflo1uQTgG jfEPc+9kVCcr+8C1w6zfHfFpGXxgN659KKLJ6RucGNBLC/r+Fect0Ct1Fk+4v+KO/iM6 knag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=KnlA3R3fhD+8gnCT7Hv3JAzBwijmk6lAljoh7cbNHYU=; b=Fc/gXmgOkOjKZos1OF/7ncgkLBZwe6So6yobO7mcaMCLGS/7fOf1edkHKyvmti8+1z Q0UN8DVRjInWERXCv/hrB4QhEmQGpctMZNKABfAZApDLMgcrgQ+pAuFR3QNZDKkAsmge sJ63+4ThUUgpTgmFbabnLDOlX57TjMdwU9vYBarvVQpdzs037j1hWXxsN77VmJqe33qV f+6eeynItbNU9SHdxhWiBDMyHXjI1hlX3p1RHEdSJVx7uM1yq5c+NCgiA5cYxzQrg3bM sBzj/6FimwLzVEURfhRvj5ggnVkqWOeYelfqF/QHTWvnK0e3wlCq61/64k4a13g8pNE7 afOA== X-Gm-Message-State: AHPjjUihktbfBZWIE6fQJ3F4a5CAEELS/dpNbWYDo+YTnwZ6ZLbqaCO+ SFZ56BRhND2lKH0rkyPn5VHjZAXW X-Google-Smtp-Source: AOwi7QBzJF6nv4rRCFKXN+CpvG7o/drAOLtR/VjmKvnU7IvUfyt3yKTEdco1zRKSakkSGW4zp0GAQA== X-Received: by 10.223.175.116 with SMTP id z107mr1323229wrc.210.1505824231439; Tue, 19 Sep 2017 05:30:31 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:31 +0200 Message-Id: <1505824179-21541-43-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PULL 42/50] hyperv: add header with protocol definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roman Kagan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Roman Kagan The definitions for Hyper-V emulation are currently taken from a header imported from the Linux kernel. However, as these describe a third-party protocol rather than a kernel API, it probably wasn't a good idea to publish it in the kernel uapi. This patch introduces a header that provides all the necessary definitions, superseding the one coming from the kernel. The new header supports (temporary) coexistence with the kernel one. The constants explicitly named in the Hyper-V specification (e.g. msr numbers) are defined in a non-conflicting way. Other constants and types have got new names. While at this, the protocol data structures are defined in a more conventional way, without bitfields, enums, and excessive unions. The code using this stuff is adjusted, too; it can now be built both with and without the kernel header in the tree. Signed-off-by: Roman Kagan Message-Id: <20170713201522.13765-2-rkagan@virtuozzo.com> Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 4 +- target/i386/cpu.h | 10 +- target/i386/hyperv-proto.h | 257 +++++++++++++++++++++++++++++++++++++++++= ++++ target/i386/hyperv.c | 6 +- target/i386/kvm.c | 57 +++++----- target/i386/machine.c | 15 ++- 6 files changed, 304 insertions(+), 45 deletions(-) create mode 100644 target/i386/hyperv-proto.h diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 40c3091..4b0fa06 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -3934,12 +3934,12 @@ static GuestPanicInformation *x86_cpu_get_crash_inf= o(CPUState *cs) CPUX86State *env =3D &cpu->env; GuestPanicInformation *panic_info =3D NULL; =20 - if (env->features[FEAT_HYPERV_EDX] & HV_X64_GUEST_CRASH_MSR_AVAILABLE)= { + if (env->features[FEAT_HYPERV_EDX] & HV_GUEST_CRASH_MSR_AVAILABLE) { panic_info =3D g_malloc0(sizeof(GuestPanicInformation)); =20 panic_info->type =3D GUEST_PANIC_INFORMATION_TYPE_HYPER_V; =20 - assert(HV_X64_MSR_CRASH_PARAMS >=3D 5); + assert(HV_CRASH_PARAMS >=3D 5); panic_info->u.hyper_v.arg1 =3D env->msr_hv_crash_params[0]; panic_info->u.hyper_v.arg2 =3D env->msr_hv_crash_params[1]; panic_info->u.hyper_v.arg3 =3D env->msr_hv_crash_params[2]; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 5c726f3..0f80de1 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -22,7 +22,7 @@ =20 #include "qemu-common.h" #include "cpu-qom.h" -#include "standard-headers/asm-x86/hyperv.h" +#include "hyperv-proto.h" =20 #ifdef TARGET_X86_64 #define TARGET_LONG_BITS 64 @@ -1095,15 +1095,15 @@ typedef struct CPUX86State { uint64_t msr_hv_guest_os_id; uint64_t msr_hv_vapic; uint64_t msr_hv_tsc; - uint64_t msr_hv_crash_params[HV_X64_MSR_CRASH_PARAMS]; + uint64_t msr_hv_crash_params[HV_CRASH_PARAMS]; uint64_t msr_hv_runtime; uint64_t msr_hv_synic_control; uint64_t msr_hv_synic_version; uint64_t msr_hv_synic_evt_page; uint64_t msr_hv_synic_msg_page; - uint64_t msr_hv_synic_sint[HV_SYNIC_SINT_COUNT]; - uint64_t msr_hv_stimer_config[HV_SYNIC_STIMER_COUNT]; - uint64_t msr_hv_stimer_count[HV_SYNIC_STIMER_COUNT]; + uint64_t msr_hv_synic_sint[HV_SINT_COUNT]; + uint64_t msr_hv_stimer_config[HV_STIMER_COUNT]; + uint64_t msr_hv_stimer_count[HV_STIMER_COUNT]; =20 /* exception/interrupt handling */ int error_code; diff --git a/target/i386/hyperv-proto.h b/target/i386/hyperv-proto.h new file mode 100644 index 0000000..1b3fa6e --- /dev/null +++ b/target/i386/hyperv-proto.h @@ -0,0 +1,257 @@ +/* + * Definitions for Hyper-V guest/hypervisor interaction + * + * Copyright (C) 2017 Parallels International GmbH + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef TARGET_I386_HYPERV_PROTO_H +#define TARGET_I386_HYPERV_PROTO_H + +#include "qemu/bitmap.h" + +#define HV_CPUID_VENDOR_AND_MAX_FUNCTIONS 0x40000000 +#define HV_CPUID_INTERFACE 0x40000001 +#define HV_CPUID_VERSION 0x40000002 +#define HV_CPUID_FEATURES 0x40000003 +#define HV_CPUID_ENLIGHTMENT_INFO 0x40000004 +#define HV_CPUID_IMPLEMENT_LIMITS 0x40000005 +#define HV_CPUID_MIN 0x40000005 +#define HV_CPUID_MAX 0x4000ffff +#define HV_HYPERVISOR_PRESENT_BIT 0x80000000 + +/* + * HV_CPUID_FEATURES.EAX bits + */ +#define HV_VP_RUNTIME_AVAILABLE (1u << 0) +#define HV_TIME_REF_COUNT_AVAILABLE (1u << 1) +#define HV_SYNIC_AVAILABLE (1u << 2) +#define HV_SYNTIMERS_AVAILABLE (1u << 3) +#define HV_APIC_ACCESS_AVAILABLE (1u << 4) +#define HV_HYPERCALL_AVAILABLE (1u << 5) +#define HV_VP_INDEX_AVAILABLE (1u << 6) +#define HV_RESET_AVAILABLE (1u << 7) +#define HV_REFERENCE_TSC_AVAILABLE (1u << 9) + +/* + * HV_CPUID_FEATURES.EDX bits + */ +#define HV_MWAIT_AVAILABLE (1u << 0) +#define HV_GUEST_DEBUGGING_AVAILABLE (1u << 1) +#define HV_PERF_MONITOR_AVAILABLE (1u << 2) +#define HV_CPU_DYNAMIC_PARTITIONING_AVAILABLE (1u << 3) +#define HV_HYPERCALL_PARAMS_XMM_AVAILABLE (1u << 4) +#define HV_GUEST_IDLE_STATE_AVAILABLE (1u << 5) +#define HV_GUEST_CRASH_MSR_AVAILABLE (1u << 10) + +/* + * HV_CPUID_ENLIGHTMENT_INFO.EAX bits + */ +#define HV_AS_SWITCH_RECOMMENDED (1u << 0) +#define HV_LOCAL_TLB_FLUSH_RECOMMENDED (1u << 1) +#define HV_REMOTE_TLB_FLUSH_RECOMMENDED (1u << 2) +#define HV_APIC_ACCESS_RECOMMENDED (1u << 3) +#define HV_SYSTEM_RESET_RECOMMENDED (1u << 4) +#define HV_RELAXED_TIMING_RECOMMENDED (1u << 5) + +/* + * Basic virtualized MSRs + */ +#define HV_X64_MSR_GUEST_OS_ID 0x40000000 +#define HV_X64_MSR_HYPERCALL 0x40000001 +#define HV_X64_MSR_VP_INDEX 0x40000002 +#define HV_X64_MSR_RESET 0x40000003 +#define HV_X64_MSR_VP_RUNTIME 0x40000010 +#define HV_X64_MSR_TIME_REF_COUNT 0x40000020 +#define HV_X64_MSR_REFERENCE_TSC 0x40000021 +#define HV_X64_MSR_TSC_FREQUENCY 0x40000022 +#define HV_X64_MSR_APIC_FREQUENCY 0x40000023 + +/* + * Virtual APIC MSRs + */ +#define HV_X64_MSR_EOI 0x40000070 +#define HV_X64_MSR_ICR 0x40000071 +#define HV_X64_MSR_TPR 0x40000072 +#define HV_X64_MSR_APIC_ASSIST_PAGE 0x40000073 + +/* + * Synthetic interrupt controller MSRs + */ +#define HV_X64_MSR_SCONTROL 0x40000080 +#define HV_X64_MSR_SVERSION 0x40000081 +#define HV_X64_MSR_SIEFP 0x40000082 +#define HV_X64_MSR_SIMP 0x40000083 +#define HV_X64_MSR_EOM 0x40000084 +#define HV_X64_MSR_SINT0 0x40000090 +#define HV_X64_MSR_SINT1 0x40000091 +#define HV_X64_MSR_SINT2 0x40000092 +#define HV_X64_MSR_SINT3 0x40000093 +#define HV_X64_MSR_SINT4 0x40000094 +#define HV_X64_MSR_SINT5 0x40000095 +#define HV_X64_MSR_SINT6 0x40000096 +#define HV_X64_MSR_SINT7 0x40000097 +#define HV_X64_MSR_SINT8 0x40000098 +#define HV_X64_MSR_SINT9 0x40000099 +#define HV_X64_MSR_SINT10 0x4000009A +#define HV_X64_MSR_SINT11 0x4000009B +#define HV_X64_MSR_SINT12 0x4000009C +#define HV_X64_MSR_SINT13 0x4000009D +#define HV_X64_MSR_SINT14 0x4000009E +#define HV_X64_MSR_SINT15 0x4000009F + +/* + * Synthetic timer MSRs + */ +#define HV_X64_MSR_STIMER0_CONFIG 0x400000B0 +#define HV_X64_MSR_STIMER0_COUNT 0x400000B1 +#define HV_X64_MSR_STIMER1_CONFIG 0x400000B2 +#define HV_X64_MSR_STIMER1_COUNT 0x400000B3 +#define HV_X64_MSR_STIMER2_CONFIG 0x400000B4 +#define HV_X64_MSR_STIMER2_COUNT 0x400000B5 +#define HV_X64_MSR_STIMER3_CONFIG 0x400000B6 +#define HV_X64_MSR_STIMER3_COUNT 0x400000B7 + +/* + * Guest crash notification MSRs + */ +#define HV_X64_MSR_CRASH_P0 0x40000100 +#define HV_X64_MSR_CRASH_P1 0x40000101 +#define HV_X64_MSR_CRASH_P2 0x40000102 +#define HV_X64_MSR_CRASH_P3 0x40000103 +#define HV_X64_MSR_CRASH_P4 0x40000104 +#define HV_CRASH_PARAMS (HV_X64_MSR_CRASH_P4 - HV_X64_MSR_CRASH_P0 + 1) +#define HV_X64_MSR_CRASH_CTL 0x40000105 +#define HV_CRASH_CTL_NOTIFY (1ull << 63) + +/* + * Hypercall status code + */ +#define HV_STATUS_SUCCESS 0 +#define HV_STATUS_INVALID_HYPERCALL_CODE 2 +#define HV_STATUS_INVALID_HYPERCALL_INPUT 3 +#define HV_STATUS_INVALID_ALIGNMENT 4 +#define HV_STATUS_INVALID_PARAMETER 5 +#define HV_STATUS_INSUFFICIENT_MEMORY 11 +#define HV_STATUS_INVALID_CONNECTION_ID 18 +#define HV_STATUS_INSUFFICIENT_BUFFERS 19 + +/* + * Hypercall numbers + */ +#define HV_POST_MESSAGE 0x005c +#define HV_SIGNAL_EVENT 0x005d +#define HV_HYPERCALL_FAST (1u << 16) + +/* + * Hypercall MSR bits + */ +#define HV_HYPERCALL_ENABLE (1u << 0) + +/* + * Synthetic interrupt controller definitions + */ +#define HV_SYNIC_VERSION 1 +#define HV_SINT_COUNT 16 +#define HV_SYNIC_ENABLE (1u << 0) +#define HV_SIMP_ENABLE (1u << 0) +#define HV_SIEFP_ENABLE (1u << 0) +#define HV_SINT_MASKED (1u << 16) +#define HV_SINT_AUTO_EOI (1u << 17) +#define HV_SINT_VECTOR_MASK 0xff + +#define HV_STIMER_COUNT 4 + +/* + * Message size + */ +#define HV_MESSAGE_PAYLOAD_SIZE 240 + +/* + * Message types + */ +#define HV_MESSAGE_NONE 0x00000000 +#define HV_MESSAGE_VMBUS 0x00000001 +#define HV_MESSAGE_UNMAPPED_GPA 0x80000000 +#define HV_MESSAGE_GPA_INTERCEPT 0x80000001 +#define HV_MESSAGE_TIMER_EXPIRED 0x80000010 +#define HV_MESSAGE_INVALID_VP_REGISTER_VALUE 0x80000020 +#define HV_MESSAGE_UNRECOVERABLE_EXCEPTION 0x80000021 +#define HV_MESSAGE_UNSUPPORTED_FEATURE 0x80000022 +#define HV_MESSAGE_EVENTLOG_BUFFERCOMPLETE 0x80000040 +#define HV_MESSAGE_X64_IOPORT_INTERCEPT 0x80010000 +#define HV_MESSAGE_X64_MSR_INTERCEPT 0x80010001 +#define HV_MESSAGE_X64_CPUID_INTERCEPT 0x80010002 +#define HV_MESSAGE_X64_EXCEPTION_INTERCEPT 0x80010003 +#define HV_MESSAGE_X64_APIC_EOI 0x80010004 +#define HV_MESSAGE_X64_LEGACY_FP_ERROR 0x80010005 + +/* + * Message flags + */ +#define HV_MESSAGE_FLAG_PENDING 0x1 + +/* + * Event flags number per SINT + */ +#define HV_EVENT_FLAGS_COUNT (256 * 8) + +/* + * Connection id valid bits + */ +#define HV_CONNECTION_ID_MASK 0x00ffffff + +/* + * Input structure for POST_MESSAGE hypercall + */ +struct hyperv_post_message_input { + uint32_t connection_id; + uint32_t _reserved; + uint32_t message_type; + uint32_t payload_size; + uint8_t payload[HV_MESSAGE_PAYLOAD_SIZE]; +}; + +/* + * Input structure for SIGNAL_EVENT hypercall + */ +struct hyperv_signal_event_input { + uint32_t connection_id; + uint16_t flag_number; + uint16_t _reserved_zero; +}; + +/* + * SynIC message structures + */ +struct hyperv_message_header { + uint32_t message_type; + uint8_t payload_size; + uint8_t message_flags; /* HV_MESSAGE_FLAG_XX */ + uint8_t _reserved[2]; + uint64_t sender; +}; + +struct hyperv_message { + struct hyperv_message_header header; + uint8_t payload[HV_MESSAGE_PAYLOAD_SIZE]; +}; + +struct hyperv_message_page { + struct hyperv_message slot[HV_SINT_COUNT]; +}; + +/* + * SynIC event flags structures + */ +struct hyperv_event_flags { + DECLARE_BITMAP(flags, HV_EVENT_FLAGS_COUNT); +}; + +struct hyperv_event_flags_page { + struct hyperv_event_flags slot[HV_SINT_COUNT]; +}; + +#endif diff --git a/target/i386/hyperv.c b/target/i386/hyperv.c index 8545574..a050c9d 100644 --- a/target/i386/hyperv.c +++ b/target/i386/hyperv.c @@ -14,7 +14,7 @@ #include "qemu/osdep.h" #include "qemu/main-loop.h" #include "hyperv.h" -#include "standard-headers/asm-x86/hyperv.h" +#include "hyperv-proto.h" =20 int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit) { @@ -50,8 +50,8 @@ int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exi= t *exit) =20 code =3D exit->u.hcall.input & 0xffff; switch (code) { - case HVCALL_POST_MESSAGE: - case HVCALL_SIGNAL_EVENT: + case HV_POST_MESSAGE: + case HV_SIGNAL_EVENT: default: exit->u.hcall.result =3D HV_STATUS_INVALID_HYPERCALL_CODE; return 0; diff --git a/target/i386/kvm.c b/target/i386/kvm.c index ee4e91f..0498ab7 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -27,6 +27,7 @@ #include "sysemu/kvm_int.h" #include "kvm_i386.h" #include "hyperv.h" +#include "hyperv-proto.h" =20 #include "exec/gdbstub.h" #include "qemu/host-utils.h" @@ -40,7 +41,6 @@ #include "hw/i386/x86-iommu.h" =20 #include "exec/ioport.h" -#include "standard-headers/asm-x86/hyperv.h" #include "hw/pci/pci.h" #include "hw/pci/msi.h" #include "hw/pci/msix.h" @@ -632,13 +632,14 @@ static int hyperv_handle_properties(CPUState *cs) } =20 if (cpu->hyperv_relaxed_timing) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_HYPERCALL_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_HYPERCALL_AVAILABLE; } if (cpu->hyperv_vapic) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_HYPERCALL_AVAILABLE; - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_APIC_ACCESS_AVAILAB= LE; + env->features[FEAT_HYPERV_EAX] |=3D HV_HYPERCALL_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_APIC_ACCESS_AVAILABLE; } if (cpu->hyperv_time) { +<<<<<<< HEAD env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_HYPERCALL_AVAILABLE; env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_TIME_REF_COUNT_AVAI= LABLE; env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_REFERENCE_TSC_AVAIL= ABLE; @@ -648,19 +649,24 @@ static int hyperv_handle_properties(CPUState *cs) env->features[FEAT_HYPERV_EDX] |=3D HV_FEATURE_FREQUENCY_MSRS_AVAILABLE; } +=3D=3D=3D=3D=3D=3D=3D + env->features[FEAT_HYPERV_EAX] |=3D HV_HYPERCALL_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_TIME_REF_COUNT_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_REFERENCE_TSC_AVAILABLE; +>>>>>>> hyperv: add header with protocol definitions } if (cpu->hyperv_crash && has_msr_hv_crash) { - env->features[FEAT_HYPERV_EDX] |=3D HV_X64_GUEST_CRASH_MSR_AVAILAB= LE; + env->features[FEAT_HYPERV_EDX] |=3D HV_GUEST_CRASH_MSR_AVAILABLE; } - env->features[FEAT_HYPERV_EDX] |=3D HV_X64_CPU_DYNAMIC_PARTITIONING_AV= AILABLE; + env->features[FEAT_HYPERV_EDX] |=3D HV_CPU_DYNAMIC_PARTITIONING_AVAILA= BLE; if (cpu->hyperv_reset && has_msr_hv_reset) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_RESET_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_RESET_AVAILABLE; } if (cpu->hyperv_vpindex && has_msr_hv_vpindex) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_VP_INDEX_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_VP_INDEX_AVAILABLE; } if (cpu->hyperv_runtime && has_msr_hv_runtime) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_VP_RUNTIME_AVAILABL= E; + env->features[FEAT_HYPERV_EAX] |=3D HV_VP_RUNTIME_AVAILABLE; } if (cpu->hyperv_synic) { int sint; @@ -671,10 +677,10 @@ static int hyperv_handle_properties(CPUState *cs) return -ENOSYS; } =20 - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_SYNIC_AVAILABLE; - env->msr_hv_synic_version =3D HV_SYNIC_VERSION_1; + env->features[FEAT_HYPERV_EAX] |=3D HV_SYNIC_AVAILABLE; + env->msr_hv_synic_version =3D HV_SYNIC_VERSION; for (sint =3D 0; sint < ARRAY_SIZE(env->msr_hv_synic_sint); sint++= ) { - env->msr_hv_synic_sint[sint] =3D HV_SYNIC_SINT_MASKED; + env->msr_hv_synic_sint[sint] =3D HV_SINT_MASKED; } } if (cpu->hyperv_stimer) { @@ -682,7 +688,7 @@ static int hyperv_handle_properties(CPUState *cs) fprintf(stderr, "Hyper-V timers aren't supported by kernel\n"); return -ENOSYS; } - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_SYNTIMER_AVAILABLE; + env->features[FEAT_HYPERV_EAX] |=3D HV_SYNTIMERS_AVAILABLE; } return 0; } @@ -733,7 +739,7 @@ int kvm_arch_init_vcpu(CPUState *cs) /* Paravirtualization CPUIDs */ if (hyperv_enabled(cpu)) { c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS; + c->function =3D HV_CPUID_VENDOR_AND_MAX_FUNCTIONS; if (!cpu->hyperv_vendor_id) { memcpy(signature, "Microsoft Hv", 12); } else { @@ -746,13 +752,13 @@ int kvm_arch_init_vcpu(CPUState *cs) memset(signature, 0, 12); memcpy(signature, cpu->hyperv_vendor_id, len); } - c->eax =3D HYPERV_CPUID_MIN; + c->eax =3D HV_CPUID_MIN; c->ebx =3D signature[0]; c->ecx =3D signature[1]; c->edx =3D signature[2]; =20 c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_INTERFACE; + c->function =3D HV_CPUID_INTERFACE; memcpy(signature, "Hv#1\0\0\0\0\0\0\0\0", 12); c->eax =3D signature[0]; c->ebx =3D 0; @@ -760,12 +766,12 @@ int kvm_arch_init_vcpu(CPUState *cs) c->edx =3D 0; =20 c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_VERSION; + c->function =3D HV_CPUID_VERSION; c->eax =3D 0x00001bbc; c->ebx =3D 0x00060001; =20 c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_FEATURES; + c->function =3D HV_CPUID_FEATURES; r =3D hyperv_handle_properties(cs); if (r) { return r; @@ -775,17 +781,17 @@ int kvm_arch_init_vcpu(CPUState *cs) c->edx =3D env->features[FEAT_HYPERV_EDX]; =20 c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_ENLIGHTMENT_INFO; + c->function =3D HV_CPUID_ENLIGHTMENT_INFO; if (cpu->hyperv_relaxed_timing) { - c->eax |=3D HV_X64_RELAXED_TIMING_RECOMMENDED; + c->eax |=3D HV_RELAXED_TIMING_RECOMMENDED; } if (cpu->hyperv_vapic) { - c->eax |=3D HV_X64_APIC_ACCESS_RECOMMENDED; + c->eax |=3D HV_APIC_ACCESS_RECOMMENDED; } c->ebx =3D cpu->hyperv_spinlock_attempts; =20 c =3D &cpuid_data.entries[cpuid_i++]; - c->function =3D HYPERV_CPUID_IMPLEMENT_LIMITS; + c->function =3D HV_CPUID_IMPLEMENT_LIMITS; =20 c->eax =3D cpu->hv_max_vps; c->ebx =3D 0x40; @@ -1695,12 +1701,11 @@ static int kvm_put_msrs(X86CPU *cpu, int level) if (has_msr_hv_crash) { int j; =20 - for (j =3D 0; j < HV_X64_MSR_CRASH_PARAMS; j++) + for (j =3D 0; j < HV_CRASH_PARAMS; j++) kvm_msr_entry_add(cpu, HV_X64_MSR_CRASH_P0 + j, env->msr_hv_crash_params[j]); =20 - kvm_msr_entry_add(cpu, HV_X64_MSR_CRASH_CTL, - HV_X64_MSR_CRASH_CTL_NOTIFY); + kvm_msr_entry_add(cpu, HV_X64_MSR_CRASH_CTL, HV_CRASH_CTL_NOTI= FY); } if (has_msr_hv_runtime) { kvm_msr_entry_add(cpu, HV_X64_MSR_VP_RUNTIME, env->msr_hv_runt= ime); @@ -2064,7 +2069,7 @@ static int kvm_get_msrs(X86CPU *cpu) if (has_msr_hv_crash) { int j; =20 - for (j =3D 0; j < HV_X64_MSR_CRASH_PARAMS; j++) { + for (j =3D 0; j < HV_CRASH_PARAMS; j++) { kvm_msr_entry_add(cpu, HV_X64_MSR_CRASH_P0 + j, 0); } } diff --git a/target/i386/machine.c b/target/i386/machine.c index eab3372..29cc58e 100644 --- a/target/i386/machine.c +++ b/target/i386/machine.c @@ -587,7 +587,7 @@ static bool hyperv_crash_enable_needed(void *opaque) CPUX86State *env =3D &cpu->env; int i; =20 - for (i =3D 0; i < HV_X64_MSR_CRASH_PARAMS; i++) { + for (i =3D 0; i < HV_CRASH_PARAMS; i++) { if (env->msr_hv_crash_params[i]) { return true; } @@ -601,8 +601,7 @@ static const VMStateDescription vmstate_msr_hyperv_cras= h =3D { .minimum_version_id =3D 1, .needed =3D hyperv_crash_enable_needed, .fields =3D (VMStateField[]) { - VMSTATE_UINT64_ARRAY(env.msr_hv_crash_params, - X86CPU, HV_X64_MSR_CRASH_PARAMS), + VMSTATE_UINT64_ARRAY(env.msr_hv_crash_params, X86CPU, HV_CRASH_PAR= AMS), VMSTATE_END_OF_LIST() } }; @@ -660,8 +659,7 @@ static const VMStateDescription vmstate_msr_hyperv_syni= c =3D { VMSTATE_UINT64(env.msr_hv_synic_control, X86CPU), VMSTATE_UINT64(env.msr_hv_synic_evt_page, X86CPU), VMSTATE_UINT64(env.msr_hv_synic_msg_page, X86CPU), - VMSTATE_UINT64_ARRAY(env.msr_hv_synic_sint, X86CPU, - HV_SYNIC_SINT_COUNT), + VMSTATE_UINT64_ARRAY(env.msr_hv_synic_sint, X86CPU, HV_SINT_COUNT), VMSTATE_END_OF_LIST() } }; @@ -686,10 +684,9 @@ static const VMStateDescription vmstate_msr_hyperv_sti= mer =3D { .minimum_version_id =3D 1, .needed =3D hyperv_stimer_enable_needed, .fields =3D (VMStateField[]) { - VMSTATE_UINT64_ARRAY(env.msr_hv_stimer_config, - X86CPU, HV_SYNIC_STIMER_COUNT), - VMSTATE_UINT64_ARRAY(env.msr_hv_stimer_count, - X86CPU, HV_SYNIC_STIMER_COUNT), + VMSTATE_UINT64_ARRAY(env.msr_hv_stimer_config, X86CPU, + HV_STIMER_COUNT), + VMSTATE_UINT64_ARRAY(env.msr_hv_stimer_count, X86CPU, HV_STIMER_CO= UNT), VMSTATE_END_OF_LIST() } }; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826905612773.4924963494418; Tue, 19 Sep 2017 06:15:05 -0700 (PDT) Received: from localhost ([::1]:42783 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIMi-0008Gp-II for importer@patchew.org; Tue, 19 Sep 2017 09:15:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfk-0004Yi-4B for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfd-0005hb-Rc for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:40 -0400 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]:35314) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfd-0005gO-Kr for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:33 -0400 Received: by mail-wr0-x244.google.com with SMTP id n64so2147786wrb.2 for ; Tue, 19 Sep 2017 05:30:33 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=CLTzrNxLT5YnrmEpoumhUtduGeJf6CIKe0iHcy/cHxE=; b=h4EeC97eMiRW9Un4SBDqxzpiYuOQ4ftELDbSPIN9HSY8SDcuKxt6lSJF0mBoNQM21Q 17gGI5EWvZ6KT7aqHBrfkLg1DlcOSKkYix4QiILwoc04Z+mRxnoJXW+OoZc3B5II/VvP JRrSsLwmHJ3kRwu6huNuRmlBKduqQSkRDHxynOeLzozYHanBt3wboAzc3Cc6r98a9dYA vfqdN1tm8E+GUN0cHVH9qczzT3/oWRNuI18jwNqgJAuch02lkEtPDXQVKgqY/LVxv22Q PQwq6V9IcM+Is83hic/7cTrl8rEpbF0jKcVtbwDya62RSY/YGhloQ/yWfyiyd45wN+BQ 1kSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=CLTzrNxLT5YnrmEpoumhUtduGeJf6CIKe0iHcy/cHxE=; b=I2cx4BdaHdGaPgxnImhiGQR8MK+JUXCxjpAz+26MI432uOSsKjYeNeUgHoovKKfgsn LElFxmPTkZ4sEYBvd5SJytP4MgvSM0SAiM3EhEmwml7u6XT+ybBjUKyWkSfaHkxKjmQZ 1fz8LKs7fY75xKNvMiwRXmH9R0pRFFsNOo9PxWLklQGPV8m2RcHU7VUReQE3G6RIUXY/ sc70FGyY4adRssFOUYusX3E1lJoInVsEpZVPNG0f4prplbVqrxh6XAM27fft0NDIGqQd SSLFcww7qUr51kc5B+9Meh+UoEuoqKod/hVOPylEQMmhAOloZCmkJ5FrdRmJ3cgZiqgY lLcw== X-Gm-Message-State: AHPjjUj+xuARJAlAa30qu9nNJ+tGlwkYFH4cWMstf6BB7ddKqhkLvRqG K1fBoJNaC7vaAVmG+V508yaFeqJd X-Google-Smtp-Source: AOwi7QCHJ3c+IpbLfHyOnYHHehxQhoChJx3S3f/nfJD/ejY4hsDwLplJnaKA0EgFGZ7cneCMymMKww== X-Received: by 10.223.174.214 with SMTP id y80mr1226526wrc.192.1505824232347; Tue, 19 Sep 2017 05:30:32 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:32 +0200 Message-Id: <1505824179-21541-44-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::244 Subject: [Qemu-devel] [PULL 43/50] update-linux-headers: prepare for hyperv.h removal X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roman Kagan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Roman Kagan All definitions related to Hyper-V emulation are now taken from the QEMU own header, so the one imported from the kernel is no longer needed. Unfortunately it's included by kvm_para.h. So, until this is fixed in the kernel, teach the header harvesting script to substitute kernel's hyperv.h with a dummy. Signed-off-by: Roman Kagan Message-Id: <20170713201522.13765-3-rkagan@virtuozzo.com> Signed-off-by: Paolo Bonzini --- scripts/update-linux-headers.sh | 4 +++- target/i386/hyperv-proto.h | 3 +++ target/i386/kvm.c | 17 +++++------------ 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers= .sh index 2f906c4..ad80fe3 100755 --- a/scripts/update-linux-headers.sh +++ b/scripts/update-linux-headers.sh @@ -104,7 +104,9 @@ for arch in $ARCHLIST; do cp "$tmpdir/include/asm/unistd-common.h" "$output/linux-headers/as= m-arm/" fi if [ $arch =3D x86 ]; then - cp_portable "$tmpdir/include/asm/hyperv.h" "$output/include/standa= rd-headers/asm-x86/" + cat <<-EOF >"$output/include/standard-headers/asm-x86/hyperv.h" + /* this is a temporary placeholder until kvm_para.h stops includin= g it */ + EOF cp "$tmpdir/include/asm/unistd_32.h" "$output/linux-headers/asm-x8= 6/" cp "$tmpdir/include/asm/unistd_x32.h" "$output/linux-headers/asm-x= 86/" cp "$tmpdir/include/asm/unistd_64.h" "$output/linux-headers/asm-x8= 6/" diff --git a/target/i386/hyperv-proto.h b/target/i386/hyperv-proto.h index 1b3fa6e..cb4d7f2 100644 --- a/target/i386/hyperv-proto.h +++ b/target/i386/hyperv-proto.h @@ -34,6 +34,8 @@ #define HV_VP_INDEX_AVAILABLE (1u << 6) #define HV_RESET_AVAILABLE (1u << 7) #define HV_REFERENCE_TSC_AVAILABLE (1u << 9) +#define HV_ACCESS_FREQUENCY_MSRS (1u << 11) + =20 /* * HV_CPUID_FEATURES.EDX bits @@ -44,6 +46,7 @@ #define HV_CPU_DYNAMIC_PARTITIONING_AVAILABLE (1u << 3) #define HV_HYPERCALL_PARAMS_XMM_AVAILABLE (1u << 4) #define HV_GUEST_IDLE_STATE_AVAILABLE (1u << 5) +#define HV_FREQUENCY_MSRS_AVAILABLE (1u << 8) #define HV_GUEST_CRASH_MSR_AVAILABLE (1u << 10) =20 /* diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 0498ab7..b1e32e9 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -639,21 +639,14 @@ static int hyperv_handle_properties(CPUState *cs) env->features[FEAT_HYPERV_EAX] |=3D HV_APIC_ACCESS_AVAILABLE; } if (cpu->hyperv_time) { -<<<<<<< HEAD - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_HYPERCALL_AVAILABLE; - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_TIME_REF_COUNT_AVAI= LABLE; - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_MSR_REFERENCE_TSC_AVAIL= ABLE; - - if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) { - env->features[FEAT_HYPERV_EAX] |=3D HV_X64_ACCESS_FREQUENCY_MS= RS; - env->features[FEAT_HYPERV_EDX] |=3D - HV_FEATURE_FREQUENCY_MSRS_AVAILABLE; - } -=3D=3D=3D=3D=3D=3D=3D env->features[FEAT_HYPERV_EAX] |=3D HV_HYPERCALL_AVAILABLE; env->features[FEAT_HYPERV_EAX] |=3D HV_TIME_REF_COUNT_AVAILABLE; env->features[FEAT_HYPERV_EAX] |=3D HV_REFERENCE_TSC_AVAILABLE; ->>>>>>> hyperv: add header with protocol definitions + + if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) { + env->features[FEAT_HYPERV_EAX] |=3D HV_ACCESS_FREQUENCY_MSRS; + env->features[FEAT_HYPERV_EDX] |=3D HV_FREQUENCY_MSRS_AVAILABL= E; + } } if (cpu->hyperv_crash && has_msr_hv_crash) { env->features[FEAT_HYPERV_EDX] |=3D HV_GUEST_CRASH_MSR_AVAILABLE; --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826365402241.344750258898; Tue, 19 Sep 2017 06:06:05 -0700 (PDT) Received: from localhost ([::1]:42732 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIE0-0000Vt-ET for importer@patchew.org; Tue, 19 Sep 2017 09:06:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfh-0004WW-VO for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHff-0005iS-84 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:37 -0400 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:45677) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfe-0005hv-Ur for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:35 -0400 Received: by mail-wm0-x229.google.com with SMTP id g206so4794747wme.0 for ; Tue, 19 Sep 2017 05:30:34 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=94b959JXgt8we0fTjWOdZikP0Aeq+1xH5NVJtdnE7Oc=; b=OlMyqXge/3DWk0Q6J6W0F5hZopQql2hCT97vk85IM3ZWmY4KGbMdZJ0K+hmNNNgX3W gaS3jzDS654t3Nb2vqgvAjwmjSl8lJc6+hxnhEdmTWorxw5om7rDRqsbsN86qzZCZEYN 8WUeX/KyrRH27t3kBHoxY2XmTCj1FNMvIF6pzBVnTVH7b/iuXE5QhnA5z91FA14dpEaC hpZ3oLRnSm5bfU43rlin0eBm5Mgda2KlOXRbOj5/CW9VpQiCqWwoX0RGX1Yj8R1BYwc9 r2c7cyH1hNMJOxJYP+ehMu1VqHW7Z7dFsD3ajh2BQXYBr0s2WHkgxrr0vFeu3XZvvpvS Rpbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=94b959JXgt8we0fTjWOdZikP0Aeq+1xH5NVJtdnE7Oc=; b=tCSTLRUH1kLbi+woedh5a8uR5RpFUMR82zWPQyHYBf9i+6Mfb89jDM0cjWp0XvUcBR J4FQSwmSDjoRq1JjmjuwWd3u1HgfW7vqxCR8C81IckFXfzms0NBu7Mbjt9nPbQfl+sRP 8RCQrlBgrr7Rwyp6/ey/Tc2vsgSxb2NKTOy4R8k4Gzn1jFTS6TbtXzQGcWA/rZgPFILH tiOvKMllfN7vuYk1zVhNHA8jzqBC6zDlVT7YEA53aLsoV8T9fut7P2G0JWk8Le6YMJvO CaEtbFCWlEdGFDCPE/V/LQp8VDq2deULEYAmaVKSnSKVnv21vgn5WG2BO7H4qwqwMIe5 +aiA== X-Gm-Message-State: AHPjjUg/XBErSZ+K8VWkHuZTveuIWcCb7c0knhJRU+sxQcLh2ZNQ3Mwv JbhqVm0+27ylrpf9snjQbiO2YZ0h X-Google-Smtp-Source: AOwi7QDJNM4Bxuq8v6axFh/bNa8+R/zrgPgEvuw7ulThxTdNjwV7b2vKowdWaFfC3S3xW/KJWa++mQ== X-Received: by 10.28.109.151 with SMTP id b23mr939580wmi.32.1505824233362; Tue, 19 Sep 2017 05:30:33 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:33 +0200 Message-Id: <1505824179-21541-45-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::229 Subject: [Qemu-devel] [PULL 44/50] scripts: let checkpatch.pl process an entire GIT branch X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: "Daniel P. Berrange" Currently before submitting a series, devs should run checkpatch.pl across each patch to be submitted. This can be automated using a command such as: git rebase -i master -x 'git show | ./scripts/checkpatch.pl -' This is rather long winded to type, so this patch introduces a way to tell checkpatch.pl to validate a series of GIT revisions. There are now three modes it can operate in 1) check a patch 2) check a sou= rce file, or 3) check a git branch. If no flags are given, the mode is determined by checking the args passed to the command. If the args contain a literal ".." it is treated as a GIT revi= sion list. If the args end in ".patch" or equal "-" it is treated as a patch fil= e. Otherwise it is treated as a source file. This automatic guessing can be overridden using --[no-]patch --[no-]file or --[no-]branch For example to check a GIT revision list: $ ./scripts/checkpatch.pl master.. total: 0 errors, 0 warnings, 297 lines checked b886d352a2bf58f0996471fb3991a138373a2957 has no obvious style problems = and is ready for submission. total: 0 errors, 0 warnings, 182 lines checked 2a731f9a9ce145e0e0df6d42dd2a3ce4dfc543fa has no obvious style problems = and is ready for submission. total: 0 errors, 0 warnings, 102 lines checked 11844169bcc0c8ed4449eb3744a69877ed329dd7 has no obvious style problems = and is ready for submission. If a genuine patch filename contains the characters '..' it is possible to force interpretation of the arg as a patch $ ./scripts/checkpatch.pl --patch master.. will force it to load a patch file called "master..", or equivalently $ ./scripts/checkpatch.pl --no-branch master.. will simply turn off guessing of GIT revision lists. Signed-off-by: Daniel P. Berrange Message-Id: <20170913091000.9005-1-berrange@redhat.com> Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrange Tested-by: Alex Williamson --- scripts/checkpatch.pl | 138 ++++++++++++++++++++++++++++++++++++++++------= ---- 1 file changed, 111 insertions(+), 27 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index fa47807..28d71b3 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -18,11 +18,12 @@ use Getopt::Long qw(:config no_auto_abbrev); my $quiet =3D 0; my $tree =3D 1; my $chk_signoff =3D 1; -my $chk_patch =3D 1; +my $chk_patch =3D undef; +my $chk_branch =3D undef; my $tst_only; my $emacs =3D 0; my $terse =3D 0; -my $file =3D 0; +my $file =3D undef; my $no_warnings =3D 0; my $summary =3D 1; my $mailback =3D 0; @@ -35,14 +36,19 @@ sub help { my ($exitcode) =3D @_; =20 print << "EOM"; -Usage: $P [OPTION]... [FILE]... +Usage: + + $P [OPTION]... [FILE]... + $P [OPTION]... [GIT-REV-LIST] + Version: $V =20 Options: -q, --quiet quiet --no-tree run without a kernel tree --no-signoff do not check for 'Signed-off-by' line - --patch treat FILE as patchfile (default) + --patch treat FILE as patchfile + --branch treat args as GIT revision list --emacs emacs compile window format --terse one line per report -f, --file treat FILE as regular source file @@ -69,6 +75,7 @@ GetOptions( 'tree!' =3D> \$tree, 'signoff!' =3D> \$chk_signoff, 'patch!' =3D> \$chk_patch, + 'branch!' =3D> \$chk_branch, 'emacs!' =3D> \$emacs, 'terse!' =3D> \$terse, 'f|file!' =3D> \$file, @@ -93,6 +100,49 @@ if ($#ARGV < 0) { exit(1); } =20 +if (!defined $chk_branch && !defined $chk_patch && !defined $file) { + $chk_branch =3D $ARGV[0] =3D~ /\.\./ ? 1 : 0; + $chk_patch =3D $chk_branch ? 0 : + $ARGV[0] =3D~ /\.patch$/ || $ARGV[0] eq "-" ? 1 : 0; + $file =3D $chk_branch || $chk_patch ? 0 : 1; +} elsif (!defined $chk_branch && !defined $chk_patch) { + if ($file) { + $chk_branch =3D $chk_patch =3D 0; + } else { + $chk_branch =3D $ARGV[0] =3D~ /\.\./ ? 1 : 0; + $chk_patch =3D $chk_branch ? 0 : 1; + } +} elsif (!defined $chk_branch && !defined $file) { + if ($chk_patch) { + $chk_branch =3D $file =3D 0; + } else { + $chk_branch =3D $ARGV[0] =3D~ /\.\./ ? 1 : 0; + $file =3D $chk_branch ? 0 : 1; + } +} elsif (!defined $chk_patch && !defined $file) { + if ($chk_branch) { + $chk_patch =3D $file =3D 0; + } else { + $chk_patch =3D $ARGV[0] =3D~ /\.patch$/ || $ARGV[0] eq "-" ? 1 : 0; + $file =3D $chk_patch ? 0 : 1; + } +} elsif (!defined $chk_branch) { + $chk_branch =3D $chk_patch || $file ? 0 : 1; +} elsif (!defined $chk_patch) { + $chk_patch =3D $chk_branch || $file ? 0 : 1; +} elsif (!defined $file) { + $file =3D $chk_patch || $chk_branch ? 0 : 1; +} + +if (($chk_patch && $chk_branch) || + ($chk_patch && $file) || + ($chk_branch && $file)) { + die "Only one of --file, --branch, --patch is permitted\n"; +} +if (!$chk_patch && !$chk_branch && !$file) { + die "One of --file, --branch, --patch is required\n"; +} + my $dbg_values =3D 0; my $dbg_possible =3D 0; my $dbg_type =3D 0; @@ -251,32 +301,66 @@ $chk_signoff =3D 0 if ($file); my @rawlines =3D (); my @lines =3D (); my $vname; -for my $filename (@ARGV) { - my $FILE; - if ($file) { - open($FILE, '-|', "diff -u /dev/null $filename") || - die "$P: $filename: diff failed - $!\n"; - } elsif ($filename eq '-') { - open($FILE, '<&STDIN'); - } else { - open($FILE, '<', "$filename") || - die "$P: $filename: open failed - $!\n"; - } - if ($filename eq '-') { - $vname =3D 'Your patch'; - } else { - $vname =3D $filename; - } - while (<$FILE>) { +if ($chk_branch) { + my @patches; + my $HASH; + open($HASH, "-|", "git", "log", "--format=3D%H", $ARGV[0]) || + die "$P: git log --format=3D%H $ARGV[0] failed - $!\n"; + + while (<$HASH>) { chomp; - push(@rawlines, $_); + push @patches, $_; + } + + close $HASH; + + die "$P: no revisions returned for revlist '$chk_branch'\n" + unless @patches; + + for my $hash (@patches) { + my $FILE; + open($FILE, '-|', "git", "show", $hash) || + die "$P: git show $hash - $!\n"; + $vname =3D $hash; + while (<$FILE>) { + chomp; + push(@rawlines, $_); + } + close($FILE); + if (!process($hash)) { + $exit =3D 1; + } + @rawlines =3D (); + @lines =3D (); } - close($FILE); - if (!process($filename)) { - $exit =3D 1; +} else { + for my $filename (@ARGV) { + my $FILE; + if ($file) { + open($FILE, '-|', "diff -u /dev/null $filename") || + die "$P: $filename: diff failed - $!\n"; + } elsif ($filename eq '-') { + open($FILE, '<&STDIN'); + } else { + open($FILE, '<', "$filename") || + die "$P: $filename: open failed - $!\n"; + } + if ($filename eq '-') { + $vname =3D 'Your patch'; + } else { + $vname =3D $filename; + } + while (<$FILE>) { + chomp; + push(@rawlines, $_); + } + close($FILE); + if (!process($filename)) { + $exit =3D 1; + } + @rawlines =3D (); + @lines =3D (); } - @rawlines =3D (); - @lines =3D (); } =20 exit($exit); --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825482538564.7743074057204; Tue, 19 Sep 2017 05:51:22 -0700 (PDT) Received: from localhost ([::1]:42659 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHzk-0004dk-RD for importer@patchew.org; Tue, 19 Sep 2017 08:51:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfm-0004b3-6h for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfg-0005jD-4X for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:42 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:34355) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHff-0005iY-Tp for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:36 -0400 Received: by mail-wr0-x243.google.com with SMTP id k20so2150455wre.1 for ; Tue, 19 Sep 2017 05:30:35 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=7JMitegTYYBWMKs2/v2a7yE/Psen3CHFsJjEGH+Y2ms=; b=HQrF2QVXJulOBL4qiSvqpIIJD08N5g2Y1Kw/XT8c3T3oQ08FxnVphtt7Eew+RF+avS CaIbqWA95J4NYlgFMGxcpokxUcoZaP6MxH/1SUaZdqOvkI2iRl+HXhNtguBShckfnPCP w78cdy057733H/1uxb17cwl2XNpyG72NaKBQiUbFpfi6gEhUuhQJa850CcE1kSq1Hp5P YnRQPexBldon9H6b6XrWtuOA69+GY+QnPM+aCAtfGNXJFcYiPYo4KxwOlm4df6bqW2am hKmPxLWAjBVndIWHcS8de1uawXCCj7OwzeTXl0AAxZ9dbYWN9ifkZBrs2Hcxy8/Xfwhh zHtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=7JMitegTYYBWMKs2/v2a7yE/Psen3CHFsJjEGH+Y2ms=; b=Ae2/Ugb0J+s3qjO8qe5NDDlRZ4SZktPF5M9/RoYWf5Zn8QUw4Z+xjOLCXNvGQ/QU/o hp93Xexk86bX+7V0ZZGyuAI8RU8iUe/CgtRIIi+ITei8PKd4bY5RN+1IAAVUSUuQKf6m W9sKDVd1wU/7KRov4vFdPhWanoUsTvSDHSOEOF+vLHt1K1RKPvFjzjVW9pTu7maS5VKU pFN2tWMsho2wKF1g3d/aj8iO/0iH1+YSBPzpX8Kocx2fa3Y12wI1y9DHalQ1zq+rrA88 1LbV6L7hMVD5zkovELOPJQFvotNyH7cYtiAkI8DsS1rcaa8aKaV+W88SgFJ+A3YlKkLu VccQ== X-Gm-Message-State: AHPjjUjx4qM8ozFaGcwmKmaJHYx1iDBX0/Jz0tfLZ0+suYhyvQmjB8Ni +qRZ7pyY2j6TndUF6x2EjL6qH6bg X-Google-Smtp-Source: AOwi7QDcE8AyogSKCyVr9cvdi7OjHgrbjgnBbzie2H7n4JcIl7FH9hF6iVrnP1mVcDkTbdWUKPPScg== X-Received: by 10.223.131.99 with SMTP id 90mr1311933wrd.198.1505824234621; Tue, 19 Sep 2017 05:30:34 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:34 +0200 Message-Id: <1505824179-21541-46-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PULL 45/50] target/i386: fix "info mem" for LA57 mode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Paolo Bonzini --- target/i386/monitor.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/i386/monitor.c b/target/i386/monitor.c index fe7d57b..75e155f 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -447,7 +447,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) start =3D -1; for (l0 =3D 0; l0 < 512; l0++) { cpu_physical_memory_read(pml5_addr + l0 * 8, &pml5e, 8); - pml4e =3D le64_to_cpu(pml5e); + pml5e =3D le64_to_cpu(pml5e); end =3D l0 << 48; if (!(pml5e & PG_PRESENT_MASK)) { prot =3D 0; @@ -480,7 +480,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) if (pdpe & PG_PSE_MASK) { prot =3D pdpe & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); - prot &=3D pml4e; + prot &=3D pml5e & pml4e; mem_print(mon, &start, &last_prot, end, prot); continue; } @@ -499,7 +499,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) if (pde & PG_PSE_MASK) { prot =3D pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); - prot &=3D pml4e & pdpe; + prot &=3D pml5e & pml4e & pdpe; mem_print(mon, &start, &last_prot, end, prot); continue; } @@ -513,7 +513,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *e= nv) if (pte & PG_PRESENT_MASK) { prot =3D pte & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); - prot &=3D pml4e & pdpe & pde; + prot &=3D pml5e & pml4e & pdpe & pde; } else { prot =3D 0; } --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826674113402.43122719666746; Tue, 19 Sep 2017 06:11:14 -0700 (PDT) Received: from localhost ([::1]:42768 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIIz-00050n-14 for importer@patchew.org; Tue, 19 Sep 2017 09:11:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60488) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfo-0004cm-1B for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfh-0005k8-5U for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:44 -0400 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]:35315) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfg-0005ja-Vx for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:37 -0400 Received: by mail-wr0-x243.google.com with SMTP id n64so2147872wrb.2 for ; Tue, 19 Sep 2017 05:30:36 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VolEbakxiasdZITNS41GSXBvQIMyuiH1Xh5c1MJVrmo=; b=CYX6QhFHsBQVD44A12pKLQPrCwJLN7rfqgsGJLwaW1TYYbU9s3+yKjOvwkQ49hu0rN yUsSnR2tjvFQK+xdJq0KZuIQGt842nJvu/D4PXuGIWoAnldlDszlzo8FogyA68EY6DSj MLr+8qm2rpwob/VZrETqFuiLN8YiAvdGp3YzRa+OSUbBGIWEGh7LnxQP8TYK24Qa+4Mf 2n9N2uEcSrLzzf78jloXyKuKiPlTgueiHnccWEWipj67sCyiQhgsjgU5H2zqRt75fYEh m99WfVv7ojTUs9ftwRf+W+WrfjCmBW20Glb/ssCOWII/DP8FARpsJ/KOISojwtl7ZcdN BIxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=VolEbakxiasdZITNS41GSXBvQIMyuiH1Xh5c1MJVrmo=; b=fl3dJG1wHF/zzAuf5DexyRBgXVEHBZPyFYKmBntc838SE7+ETZkeWJooMMJbHIEQQQ vuIv7Vg0kb5soWllz6cqQVkgMvStMFyH0MyIB+VFhmUIlwW3D031n/Uaae57yzfXstQD VQUvsEqQ+anHcOfbZgK+HTQ1NrZ9Ym7s8BAo0T5sNDJ77Gyk3XRa6m0m3imrFMyaPAAR 62RQp50RBCJ149IfjnqIfRkKGfTgtNsN2oyZtOUeigwJvIOGXvvdejEM0FTl7fp/iwvJ T7IXaOeqanZlAhaU7KqjpomR24ktP3IQ7ITbqwavleQXjd0I2zSu4H7ONRtj0b5zPJGp 5nCQ== X-Gm-Message-State: AHPjjUjknpwE0eFT5nsvqYDQks6i5N+M7nMFvEEJnHdRT90dIBUNWPdQ IGqJgSQcKdKdH3nJob/CzUQnHeg6 X-Google-Smtp-Source: AOwi7QAJ2suYsQBK1xXsNQ5uMWaZ4cUD10WfQgNqCnTwm1vDigxacQiLW4tGKewFAFY8RdmdPap1sQ== X-Received: by 10.223.186.67 with SMTP id t3mr1336752wrg.22.1505824235691; Tue, 19 Sep 2017 05:30:35 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:35 +0200 Message-Id: <1505824179-21541-47-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::243 Subject: [Qemu-devel] [PULL 46/50] accel/hax: move hax-stub.c to accel/stubs/ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Philippe Mathieu-Daud=C3=A9 Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=83=C2=A9 Message-Id: <20170913221149.30382-1-f4bug@amsat.org> Reviewed-by: Stefan Weil Signed-off-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- Makefile.target | 1 - accel/stubs/Makefile.objs | 1 + hax-stub.c =3D> accel/stubs/hax-stub.c | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename hax-stub.c =3D> accel/stubs/hax-stub.c (100%) diff --git a/Makefile.target b/Makefile.target index 32b0100..a4b292d 100644 --- a/Makefile.target +++ b/Makefile.target @@ -101,7 +101,6 @@ obj-y +=3D fpu/softfloat.o obj-y +=3D target/$(TARGET_BASE_ARCH)/ obj-y +=3D disas.o obj-$(call notempty,$(TARGET_XML_FILES)) +=3D gdbstub-xml.o -obj-$(call lnot,$(CONFIG_HAX)) +=3D hax-stub.o =20 obj-$(CONFIG_LIBDECNUMBER) +=3D libdecnumber/decContext.o obj-$(CONFIG_LIBDECNUMBER) +=3D libdecnumber/decNumber.o diff --git a/accel/stubs/Makefile.objs b/accel/stubs/Makefile.objs index fdfbf73..c071aba 100644 --- a/accel/stubs/Makefile.objs +++ b/accel/stubs/Makefile.objs @@ -1,2 +1,3 @@ +obj-$(call lnot,$(CONFIG_HAX)) +=3D hax-stub.o obj-$(call lnot,$(CONFIG_KVM)) +=3D kvm-stub.o obj-$(call lnot,$(CONFIG_TCG)) +=3D tcg-stub.o diff --git a/hax-stub.c b/accel/stubs/hax-stub.c similarity index 100% rename from hax-stub.c rename to accel/stubs/hax-stub.c --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505825651456747.4877700973619; Tue, 19 Sep 2017 05:54:11 -0700 (PDT) Received: from localhost ([::1]:42668 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duI2U-00072K-LG for importer@patchew.org; Tue, 19 Sep 2017 08:54:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfn-0004cW-Rc for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfi-0005l6-Bl for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:43 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:33583) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfi-0005kJ-51 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:38 -0400 Received: by mail-wm0-x244.google.com with SMTP id m127so3758048wmm.0 for ; Tue, 19 Sep 2017 05:30:38 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=qnULewecC6nTlXpMXF4d0kpgkaES+EsImxnKbvyWcNo=; b=H5rQXSmt4A1xwKVAfOZa7VPM60saHw9w2vTjCx8REvxczeoCT4d4q1WIp73BLk/Mwb Lhd7WEhMPO8h5xVPr6laGJHeCgCUqq7w/Tx/0V0AK62gVaeDAiFGG4AQL1rekGQNvuvM /4Wc0CC3KKtUjc1+A1/8Qacpa9TyBj8gkf/5WpQRIgZMLbc6vCoDoObdZoHQBm8ms38L nRiq7If5+mKUZ1TGBbEe3l6SxqtslcPReDfVY/rY8cUzSJPFW1+l/5RPbpq5ZUlueQMT MxH9Pegts7mpD0q7p/cGfY27FGK3yId+raThTpAouyD9ZzPeN/0LVm53lew/M5WMeXEH iHtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=qnULewecC6nTlXpMXF4d0kpgkaES+EsImxnKbvyWcNo=; b=I5+iURllEIdDHkkgO5NulZtxJVVRC34Z+1ther4GwzeX3UFhxvZleEuWWhZU9In2dv dZc0UnfP1Dps0joh4VPoGgArPYtEYR7UN7/NNGixHHJUf9MnIInuCd2Nk/C7S1u531O9 w8Fg7BWxbhVSxdXBeCq9XOHqjGZCO3XtwG7+F7bniTEPkco3DC10pKzD1Um12BMcztRr /IQD4LyYA39GdvZOk0gF1r2HM+tPz/egQI6IaTMXdvemJnEoD/hnQOBDE4XUrEC4M2sp EHhpjpQc9YO9LxvZxZLODydvJDL/Enz28MSZTxLwnJ+Wf8XsgSUoN/GEvyoG/Na+1nXQ 3v4w== X-Gm-Message-State: AHPjjUgL7CaMmWXUyKBVhMeIDIAm69gECg/EFiNX4x02KKRPmOHhbyxa qHjoYTjiPPaCL1N6BDFt74qH+KOV X-Google-Smtp-Source: AOwi7QDQJP7j0jbyItoX9GJ/o8s65FecKFQ3vIMGKrCOfT43P2VAjFwfuCpCgpu2DDYEITlzpI4Hsg== X-Received: by 10.28.159.6 with SMTP id i6mr983928wme.119.1505824236860; Tue, 19 Sep 2017 05:30:36 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:36 +0200 Message-Id: <1505824179-21541-48-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PULL 47/50] checkpatch: add hwaddr to @typeList X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Greg Kurz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz The script doesn't know about all possible types and learn them as it parses the code. If it reaches a line with a type cast but the type isn't known yet, it is misinterpreted as an identifier. For example the following line: foo =3D (hwaddr) -1; results in the following false-positive to be reported: ERROR: spaces required around that '-' (ctx:VxV) Let's add this standard QEMU type to the list of pre-known types. Signed-off-by: Greg Kurz Message-Id: <150538015789.8149.10902725348939486674.stgit@bahia.lan> Signed-off-by: Paolo Bonzini --- scripts/checkpatch.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 28d71b3..3c0a28e 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -263,6 +263,7 @@ our @typeList =3D ( qr{${Ident}_handler}, qr{${Ident}_handler_fn}, qr{target_(?:u)?long}, + qr{hwaddr}, ); =20 # This can be modified by sub possible. Since it can be empty, be careful --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826528244865.3356529518087; Tue, 19 Sep 2017 06:08:48 -0700 (PDT) Received: from localhost ([::1]:42747 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIGb-0002rZ-88 for importer@patchew.org; Tue, 19 Sep 2017 09:08:45 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60434) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfl-0004aG-IJ for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfj-0005lu-Gi for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:41 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:37409) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfj-0005lE-8c for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:39 -0400 Received: by mail-wm0-x241.google.com with SMTP id f4so3733423wmh.4 for ; Tue, 19 Sep 2017 05:30:39 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hBz7vA1BKLZWNdEZoYvckOMiig42p7G/XgpyCCiFCPQ=; b=mJ/2CwNnWLhSHgyclB2v6+1XcuPzOYFv5InDRCOazsxK3Jq3+wHAxmBOBz2cmzr8Oh 9a9iHs5xePCOEOfYUEs3uORkeQKtWdaUT4UIT2ArzgLlG1z1a9VRLy+BNgty9jEBIQTI gSncmMDtReyGnheL6TAjfWbe61sPNx0/YTQRP6/n9YpZEvj976W+qRrum99qbXld2rjn LnpsaWTaODIxyiI8g3mJDdjFtv/V+c3ZxFZd4/lO2qYXkKfP7i0q6i2nKUq4IWLIhIqp bzBrqfFnjFoCvdEjBOVT8DJ2Zl9g6YiRtQIXc3VAdqQavY8+kB4/AtjUz3Jfallbpv4S EJFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=hBz7vA1BKLZWNdEZoYvckOMiig42p7G/XgpyCCiFCPQ=; b=QE4XpDZhKedR7yu6Npd0DDBeky62Pxs2LjBxyzCgC0trzQkzsLwyug78DLEEmribT0 oLkTGj0rot9kGU3yybvZFcfjy/aixM09tiBhzvOSo+oYwxIbsrfin1aF6A+iabNq7W+L I1vZhhUkXYTIefAjYBY6Pl66uh2SOritq4o+Fj3+8rpGE76D4m05E7KM52zw7IyquKGI I3MeEwhPSCL6BNGUTF8+H4lJOkDq6lrmRKiA6x25+sg2f08Ip2/MV1HBzoFBCFoyh47A Zv0BHakrf4OMj+rc068uy9AefOqS/TUS/IHGbzjtKA74u2c3M2O6AzyRP+/CHRb8kchf RRVQ== X-Gm-Message-State: AHPjjUhVaXMClMiGuLkYxAkI84Z+tVJqy5V2aDhRmTse2ondOTG+9GYI 4k1cr5ZJDjyqdn2+rMdSHn3pw3aK X-Google-Smtp-Source: AOwi7QB4HJUaz6TfakEQ5Wj7RuXKgelH4nLkLwq3ci75L+3IIkgnRx/v/RPnyTw4EHLmN6Hsmqa2YA== X-Received: by 10.28.236.194 with SMTP id h63mr1027163wmi.159.1505824237866; Tue, 19 Sep 2017 05:30:37 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:37 +0200 Message-Id: <1505824179-21541-49-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::241 Subject: [Qemu-devel] [PULL 48/50] osdep.h: Prohibit disabling assert() in supported builds X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Eric Blake We already have several files that knowingly require assert() to work, sometimes because refactoring the code for proper error handling has not been tackled yet; there are probably other files that have a similar situation but with no comments documenting the same. In fact, we have places in migration that handle untrusted input with assertions, where disabling the assertions risks a worse security hole than the current behavior of losing the guest to SIGABRT when migration fails because of the assertion. Promote our current per-file safety-valve to instead be project-wide, and expand it to also cover glib's g_assert(). Note that we do NOT want to encourage 'assert(side-effects);' (that is a bad practice that prevents copy-and-paste of code to other projects that CAN disable assertions; plus it costs unnecessary reviewer mental cycles to remember whether a project special-cases the crippling of asserts); and we would LIKE to fix migration to not rely on asserts (but that takes a big code audit). But in the meantime, we DO want to send a message that anyone that disables assertions has to tweak code in order to compile, making it obvious that they are taking on additional risk that we are not going to support. At the same time, leave comments mentioning NDEBUG in files that we know still need to be scrubbed, so there is at least something to grep for. It would be possible to come up with some other mechanism for doing runtime checking by default, but which does not abort the program on failure, while leaving side effects in place (unlike how crippling assert() avoids even the side effects), perhaps under the name q_verify(); but it was not deemed worth the effort (developers should not have to learn a replacement when the standard C macro works just fine, and it would be a lot of churn for little gain). The patch specifically uses #error rather than #warn so that a user is forced to tweak the header to acknowledge the issue, even when not using a -Werror compilation. Signed-off-by: Eric Blake Reviewed-by: Philippe Mathieu-Daud=C3=83=C2=A9 Reviewed-by: Thomas Huth Message-Id: <20170911211320.25385-1-eblake@redhat.com> Signed-off-by: Paolo Bonzini --- hw/scsi/mptsas.c | 6 ++---- hw/virtio/virtio.c | 6 ++---- include/qemu/osdep.h | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 8bae8f5..d05fa9f 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -1236,11 +1236,9 @@ static void *mptsas_load_request(QEMUFile *f, SCSIRe= quest *sreq) n =3D qemu_get_be32(f); /* TODO: add a way for SCSIBusInfo's load_request to fail, * and fail migration instead of asserting here. - * When we do, we might be able to re-enable NDEBUG below. + * This is just one thing (there are probably more) that must be + * fixed before we can allow NDEBUG compilation. */ -#ifdef NDEBUG -#error building with NDEBUG is not supported -#endif assert(n >=3D 0); =20 pci_dma_sglist_init(&req->qsg, pci, n); diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 464947f..3129d25 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1025,11 +1025,9 @@ void *qemu_get_virtqueue_element(VirtIODevice *vdev,= QEMUFile *f, size_t sz) =20 /* TODO: teach all callers that this can fail, and return failure inst= ead * of asserting here. - * When we do, we might be able to re-enable NDEBUG below. + * This is just one thing (there are probably more) that must be + * fixed before we can allow NDEBUG compilation. */ -#ifdef NDEBUG -#error building with NDEBUG is not supported -#endif assert(ARRAY_SIZE(data.in_addr) >=3D data.in_num); assert(ARRAY_SIZE(data.out_addr) >=3D data.out_num); =20 diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index 6855b94..9966638 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -107,6 +107,22 @@ extern int daemon(int, int); #include "glib-compat.h" #include "qemu/typedefs.h" =20 +/* + * We have a lot of unaudited code that may fail in strange ways, or + * even be a security risk during migration, if you disable assertions + * at compile-time. You may comment out these safety checks if you + * absolutely want to disable assertion overhead, but it is not + * supported upstream so the risk is all yours. Meanwhile, please + * submit patches to remove any side-effects inside an assertion, or + * fixing error handling that should use Error instead of assert. + */ +#ifdef NDEBUG +#error building with NDEBUG is not supported +#endif +#ifdef G_DISABLE_ASSERT +#error building with G_DISABLE_ASSERT is not supported +#endif + #ifndef O_LARGEFILE #define O_LARGEFILE 0 #endif --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505827064176957.2171545460617; Tue, 19 Sep 2017 06:17:44 -0700 (PDT) Received: from localhost ([::1]:42806 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duIPH-0002GA-C8 for importer@patchew.org; Tue, 19 Sep 2017 09:17:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60569) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfr-0004fc-Qz for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfk-0005mv-HT for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:47 -0400 Received: from mail-wm0-x243.google.com ([2a00:1450:400c:c09::243]:33584) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfk-0005mD-BN for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:40 -0400 Received: by mail-wm0-x243.google.com with SMTP id m127so3758122wmm.0 for ; Tue, 19 Sep 2017 05:30:40 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=J618FbINiVzuzahwHIub2uNRKEUuGuqqeon/mfKRfSQ=; b=ujNEwnqBfUMcK0b4y3kUeNhErin9h4Zenxg6Z3Z3GoKM8YomuT0ZWAJyKVPsiut1Ih SmPyyC2E+Idu+oF+iK4sEVl1O3doia/MjR1J0O8peI1cIPShCwWXGwOaVSSnEEdpqI7G K4kgftDWNsE/m+RFzPI/ifeVuMX2ks3PKxadR7Vz/nxqyV/Xqky0a6YVElX9yuyVeBza 4+5Dv79r0CDiQAyo3sZ71TniSYHOdU2KiyQ7Ora6pVz4HqWmGl4Pdp2CYKN+OHlDCbZB 2X2ptsGQtserlbzfxygJv7TGnuUjsI8XFANdbeF92VM0rKtyHSzc3CRnL/FrNWZ4BMaX CTGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=J618FbINiVzuzahwHIub2uNRKEUuGuqqeon/mfKRfSQ=; b=t0/rnA5wj6ZMwPzgaGj27iud+SVWQUSnfHDaM78RSQCpJrqSFhcqL7YUF70lYmrZok ICs6RNDpun40BDlYrsvyK3Nlf3cg7+t5DGAFZ3KMS0Hu3PvaOoQ+JQxpJMp6/PBY2UmX szaEWajSH+b2lv0AhdFREfs664tkdIgOQ2ZUQwq6YIAhs+RbfAxsZeSgX9SMs2IKoRSa oqBIhZV3VBziffeaHam7xSgB4QDWMbpwH9V0AFVcP+p1gulMjmo37HRii1FBllpti4YW AeO3mGSyttj5RtoUc060kCpaQere81YZ1SYft10YBx4wQukaZ1QhdrAZ65espdNMkkU/ mVzg== X-Gm-Message-State: AHPjjUid9L7Xn0FGnJ5/hv6QV5pQFRMQS6yqVHH1VyD5ZLGV9ysGCyR4 +w8EUes6Vt016lyVIdyjlPLwDyRe X-Google-Smtp-Source: AOwi7QB7/binwnt5IpsNXRRNRC/Q4Dj3QLth5fwYjXf5fdpmp9zdEU2/SejFWD9dzy8eu5A17SL7Ig== X-Received: by 10.28.144.132 with SMTP id s126mr922919wmd.103.1505824239003; Tue, 19 Sep 2017 05:30:39 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:38 +0200 Message-Id: <1505824179-21541-50-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::243 Subject: [Qemu-devel] [PULL 49/50] default-configs: Replace $(and ...) with $(call land, ...) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Thomas Huth Using $(and ...) is dangerous here: It only works as long as the first argument is set to 'y' or completely unset. It does not work if the first argument is set to 'n' for example. Let's use the "land" make function instead which has been written explicitely for this purpose. Signed-off-by: Thomas Huth Message-Id: <1505759538-15365-1-git-send-email-thuth@redhat.com> Signed-off-by: Paolo Bonzini --- default-configs/pci.mak | 2 +- default-configs/ppc-softmmu.mak | 2 +- default-configs/ppc64-softmmu.mak | 4 ++-- default-configs/s390x-softmmu.mak | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/default-configs/pci.mak b/default-configs/pci.mak index a758630..187e438 100644 --- a/default-configs/pci.mak +++ b/default-configs/pci.mak @@ -43,4 +43,4 @@ CONFIG_VGA=3Dy CONFIG_VGA_PCI=3Dy CONFIG_IVSHMEM_DEVICE=3D$(CONFIG_IVSHMEM) CONFIG_ROCKER=3Dy -CONFIG_VHOST_USER_SCSI=3D$(and $(CONFIG_VHOST_USER),$(CONFIG_LINUX)) +CONFIG_VHOST_USER_SCSI=3D$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX)) diff --git a/default-configs/ppc-softmmu.mak b/default-configs/ppc-softmmu.= mak index a3972c5..d7a3755 100644 --- a/default-configs/ppc-softmmu.mak +++ b/default-configs/ppc-softmmu.mak @@ -43,7 +43,7 @@ CONFIG_XILINX_ETHLITE=3Dy CONFIG_PREP=3Dy CONFIG_MAC=3Dy CONFIG_E500=3Dy -CONFIG_OPENPIC_KVM=3D$(and $(CONFIG_E500),$(CONFIG_KVM)) +CONFIG_OPENPIC_KVM=3D$(call land,$(CONFIG_E500),$(CONFIG_KVM)) CONFIG_PLATFORM_BUS=3Dy CONFIG_ETSEC=3Dy CONFIG_LIBDECNUMBER=3Dy diff --git a/default-configs/ppc64-softmmu.mak b/default-configs/ppc64-soft= mmu.mak index af32589..9086475 100644 --- a/default-configs/ppc64-softmmu.mak +++ b/default-configs/ppc64-softmmu.mak @@ -48,7 +48,7 @@ CONFIG_POWERNV=3Dy CONFIG_PREP=3Dy CONFIG_MAC=3Dy CONFIG_E500=3Dy -CONFIG_OPENPIC_KVM=3D$(and $(CONFIG_E500),$(CONFIG_KVM)) +CONFIG_OPENPIC_KVM=3D$(call land,$(CONFIG_E500),$(CONFIG_KVM)) CONFIG_PLATFORM_BUS=3Dy CONFIG_ETSEC=3Dy CONFIG_LIBDECNUMBER=3Dy @@ -56,7 +56,7 @@ CONFIG_SM501=3Dy # For pSeries CONFIG_XICS=3D$(CONFIG_PSERIES) CONFIG_XICS_SPAPR=3D$(CONFIG_PSERIES) -CONFIG_XICS_KVM=3D$(and $(CONFIG_PSERIES),$(CONFIG_KVM)) +CONFIG_XICS_KVM=3D$(call land,$(CONFIG_PSERIES),$(CONFIG_KVM)) # For PReP CONFIG_SERIAL_ISA=3Dy CONFIG_MC146818RTC=3Dy diff --git a/default-configs/s390x-softmmu.mak b/default-configs/s390x-soft= mmu.mak index 6ab2bc6..444bf16 100644 --- a/default-configs/s390x-softmmu.mak +++ b/default-configs/s390x-softmmu.mak @@ -1,6 +1,6 @@ CONFIG_PCI=3Dy CONFIG_VIRTIO_PCI=3D$(CONFIG_PCI) -CONFIG_VHOST_USER_SCSI=3D$(and $(CONFIG_VHOST_USER),$(CONFIG_LINUX)) +CONFIG_VHOST_USER_SCSI=3D$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX)) CONFIG_VIRTIO=3Dy CONFIG_SCLPCONSOLE=3Dy CONFIG_TERMINAL3270=3Dy --=20 1.8.3.1 From nobody Wed May 1 22:16:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505826814828550.7679239448823; Tue, 19 Sep 2017 06:13:34 -0700 (PDT) Received: from localhost ([::1]:42775 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duILF-0006xb-Pw for importer@patchew.org; Tue, 19 Sep 2017 09:13:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duHfp-0004dQ-HF for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duHfl-0005nb-MH for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:45 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:33585) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1duHfl-0005n8-DR for qemu-devel@nongnu.org; Tue, 19 Sep 2017 08:30:41 -0400 Received: by mail-wm0-x242.google.com with SMTP id m127so3758157wmm.0 for ; Tue, 19 Sep 2017 05:30:41 -0700 (PDT) Received: from 640k.lan (dynamic-adsl-78-12-246-117.clienti.tiscali.it. [78.12.246.117]) by smtp.gmail.com with ESMTPSA id k18sm1292878wmd.22.2017.09.19.05.30.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Sep 2017 05:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=GQaz4PahcR1Gkx2X9s7T1owXPVVcE4H1XfBFvCh6aMk=; b=KeI7T0LDRk8ZFYXQ3hDpUNnTQ+5jNol8MrxGyQTMmPv9AD8THV9dDl+8TWlngSUFMf YJzWC/bFxb3KoLeayDAdoclsykcbuTKO6pQGqusiBYF6PSPvyuMDLwYuq+NIEuqkFmx1 KW6GCvmTdlZmNGuhOdZy9sj5zORQCpI0Xuc4cTiswM+IiH7BzupXXPdjOp3ZmpMWxCSQ pBeFJb3G65ilhBd9QODn4RCTCQt+CjFsCXStojlFTR3ne1OFJDBOworcVBhlHSZK52q1 qL3jRi2+Ho/6/MV7mjUBXcj2DV3nTGbknMWPD1h0xT1n426ExiOaUUsfXRrQPZoUWv66 qDmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=GQaz4PahcR1Gkx2X9s7T1owXPVVcE4H1XfBFvCh6aMk=; b=EaeD8DfIPgotNcFIJKspFI5wz0JOJ9BO60tAmaqsLBsHxheov3ajmTGQq7DYWNTnpG BsniPBdWpION00rqzBjV5+2TqmBlgEgmwx7l68xQgtmYdWTRoflqviC6JI1QzvmNJkjX AWqGf3dXOMQgnOx/l9cIabfidjKhJSv9H1I3++bHy4JsRnJniInCmhDqjCQkqKGDmdMR 4CkkymJdUqkIQR/JJP2YTHWEAXAA3Tk86ywQOuvpO2uUwweKeS2id3LNyK6CCGun4n/C xmOgNJ+7u6gZNT2CCw7YKjB3bzPv7VWUgZB/jH3NFobH3RPn7ZY90WbXra0wqXptmFUS ygyw== X-Gm-Message-State: AHPjjUh2N3DjEJk/9WGmt+Qe3nWABRVA8xq0TbBrUX1Xeu5xilqSCeww FYQwB+SYEe/blMWi/7gFRgqDhCEy X-Google-Smtp-Source: AOwi7QB/4jRMaSr4iD4aCR7cXJG4ywCNxPYdkmohlWECCiTm0hoalPXYTfDVqwFiQ4S9p6d/7sfBeQ== X-Received: by 10.28.154.138 with SMTP id c132mr925522wme.2.1505824240149; Tue, 19 Sep 2017 05:30:40 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 14:29:39 +0200 Message-Id: <1505824179-21541-51-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> References: <1505824179-21541-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::242 Subject: [Qemu-devel] [PULL 50/50] docker: fix creation of archives X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The pixman submodule does not exist anymore, and its removal broke docker-based tests. Fix it. Cc: Fam Zheng Signed-off-by: Paolo Bonzini --- tests/docker/Makefile.include | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index aaab1a4..aa566aa 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -34,7 +34,6 @@ $(DOCKER_SRC_COPY): @mkdir $@ $(call make-archive-maybe, $(SRC_PATH), $@/qemu.tgz) $(call make-archive-maybe, $(SRC_PATH)/dtc, $@/dtc.tgz) - $(call make-archive-maybe, $(SRC_PATH)/pixman, $@/pixman.tgz) $(call quiet-command, cp $(SRC_PATH)/tests/docker/run $@/run, \ "COPY","RUNNER") =20 --=20 1.8.3.1