From patchwork Thu Sep 3 20:58:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274607 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38194C43461 for ; Thu, 3 Sep 2020 21:28:20 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EC36E206CA for ; Thu, 3 Sep 2020 21:28:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hBD+bl9Z" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC36E206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:59716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwmJ-00074S-3W for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:28:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58340) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL4-0003Zx-6Z; Thu, 03 Sep 2020 17:00:10 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:34040) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL2-0007Q5-8u; Thu, 03 Sep 2020 17:00:09 -0400 Received: by mail-ot1-x343.google.com with SMTP id h17so3207585otr.1; Thu, 03 Sep 2020 14:00: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=jbZUzUuJIhTs9gFdFE43wolgbeVB484D+UVnVZjxmoY=; b=hBD+bl9ZoakJP/g1P3Lzv1o6HuvcT6OA0hbTBJwBg3+wGcfZ6Qq/dr8rxT6ZhLOdbx rX616KSvkR7Vag0Oji7ynTCHSaqWKXLaMO/I2l94ZLPpTlVOp7Shz3Tmn+2dnjks+9BA 8O8SWUBr5nxuwBUKlgIaP2kJS808JeOSIafTugP6S75/8qv6IuzkVIEduk6H8ccFaAhZ 8fOTwTOol7Vg3NH1QzU+5hX9S4R+yEPWs4+vva8glghAqKNy2NukdwR4aPte4BGk5RqP Ej4TdIfFAte4558f8FvCXcclaISqdWY2iWzoE3ac8Cxczpr8mrwoxrnefhnDfaegiXv0 A6hw== 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=jbZUzUuJIhTs9gFdFE43wolgbeVB484D+UVnVZjxmoY=; b=OAKc6WVS2AludjdNGqXKm8v3hhpjWiX2Udv+q4qnH/1dn+kpZt/lDJZ7JhXLW6u7DS Izo0dk0oENjcQBoJQY0khdHtSlzcX6O8pp2XBkYTK3oyPuJSpYDrSZInX59me6flYSJV 5iqGKmpQpogqVYeR1XXKvfL/9NcnGidXlcGEiYONb9mW/Dx4gZ8F6Tetg/Jip04fBmAx 0VNXbc5TzFmtzuifHb7Hbx40OJHlJkKfky69bzK0gfhHHwi3TX0hPJoItkoZH9hgvbUN BeUA9JABlVCkDe+tNKpdJb6gx7PMNsM0PAHIiEMO1d60WQUiEPgTJ5QOzEhbhbpIlYEl D6nA== X-Gm-Message-State: AOAM531EVrP3egDd0xBAGfFKLSIQKUc2H0PjgtYE6av1UMJBuGqRRWNC xMhfBnI3X8vCLhl6M7brmPA2+KWJ7ZI= X-Google-Smtp-Source: ABdhPJxOEa4HeMaORqyd/A/vpdsSgLJ/3XWzo3WDhX8/x+4TwWvZI+j9avwQEjG5BSLj9dNxInpENg== X-Received: by 2002:a9d:6b8b:: with SMTP id b11mr2777318otq.357.1599166806349; Thu, 03 Sep 2020 14:00:06 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t84sm294132oif.32.2020.09.03.14.00.05 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:05 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 01/77] hostmem: don't use mbind() if host-nodes is empty Date: Thu, 3 Sep 2020 15:58:19 -0500 Message-Id: <20200903205935.27832-2-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Igor Mammedov , qemu-stable@nongnu.org, Eduardo Habkost Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Igor Mammedov Since 5.0 QEMU uses hostmem backend for allocating main guest RAM. The backend however calls mbind() which is typically NOP in case of default policy/absent host-nodes bitmap. However when runing in container with black-listed mbind() syscall, QEMU fails to start with error "cannot bind memory to host NUMA nodes: Operation not permitted" even when user hasn't provided host-nodes to pin to explictly (which is the case with -m option) To fix issue, call mbind() only in case when user has provided host-nodes explicitly (i.e. host_nodes bitmap is not empty). That should allow to run QEMU in containers with black-listed mbind() without memory pinning. If QEMU provided memory-pinning is required user still has to white-list mbind() in container configuration. Reported-by: Manuel Hohmann Signed-off-by: Igor Mammedov Message-Id: <20200430154606.6421-1-imammedo@redhat.com> Tested-by: Philippe Mathieu-Daudé Cc: qemu-stable@nongnu.org Signed-off-by: Eduardo Habkost (cherry picked from commit 70b6d525dfb51d5e523d568d1139fc051bc223c5) Signed-off-by: Michael Roth --- backends/hostmem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backends/hostmem.c b/backends/hostmem.c index 327f9eebc3..0efd7b7bd6 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -383,8 +383,10 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp) assert(sizeof(backend->host_nodes) >= BITS_TO_LONGS(MAX_NODES + 1) * sizeof(unsigned long)); assert(maxnode <= MAX_NODES); - if (mbind(ptr, sz, backend->policy, - maxnode ? backend->host_nodes : NULL, maxnode + 1, flags)) { + + if (maxnode && + mbind(ptr, sz, backend->policy, backend->host_nodes, maxnode + 1, + flags)) { if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) { error_setg_errno(errp, errno, "cannot bind memory to host NUMA nodes"); From patchwork Thu Sep 3 20:58:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 249044 Delivered-To: patch@linaro.org Received: by 2002:a92:5b9c:0:0:0:0:0 with SMTP id c28csp833299ilg; Thu, 3 Sep 2020 14:29:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzW/GDKMsdoAXMRuoXcSIkTPcfHU3GO3RHaIMvNMKNHcwJyOAlqD/v9yblg/xVVFnfhHqn6 X-Received: by 2002:a25:1d5:: with SMTP id 204mr5762330ybb.212.1599168593183; Thu, 03 Sep 2020 14:29:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599168593; cv=none; d=google.com; s=arc-20160816; b=rsuWBPQGMHaueRSqX9zwOwDTPmyN5kFbs172+X58RAnfsV5AH2cLnwv6zr0134wuj7 XXU1r1UuDbD5cXnvn2pTHQHd6FT0eaRDZWRsiLAgkqrNlrAFUXMJ/8wiR3e5ZshbpXO3 ZnjGZzFdlYy8Dg262kr9KOpc63aZhDVmtHF8FA9++qRUvraDqClPa706ATjyv/zocbBu n5/+SErGHqgZxiH94eQOqe+bxfbDeMN7Iem+pxsmjGSpGarnpFRvYuZJOA3RGt+TtxQQ JHv3KLWZnv+trHWCegmYF8CGd+/AjP6GLg3uqhIQEW+FpWGoIW+ULyQ/cbXmGpHKeji3 4BSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:references:in-reply-to :message-id:date:subject:to:from:dkim-signature; bh=qTh31Rf/r01rqa9kv/3Kv1y/l40RMHvXG4921rSK/Vs=; b=TstZBLWNHDl2lPndzuzXe5iA5Ws7EbYTOrpLEpc1uAbJz44qPEZpUUyeN5wBY568WZ CwYDwIbrFYhqkAPFYoOi65NUdQkiXX2b1NpWtXPkyNF/1JoexfVzwZkeqpyfjKIU3SZ/ Qy3eSc0k2CDP9WgiP3wQe39XPdPgIkM0lk/nkBZwCuhNLPZOz/cShS05BPOgwveKCmSu J1Qw3fEgq6IilXTBChJG8UleKMRSPe1P9TF149kFeeIeLIeEXuZExJxlQLrPr84rNIyo FGRrvjZ0B+9rYFg9mZyFtG3Qqrnaj/l7yNMQ77qGnF7qiduJrvKBCBrGvno9OH2wiCKk qjrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=F5lLuU86; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id w66si5169315yba.190.2020.09.03.14.29.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:29:53 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=F5lLuU86; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from localhost ([::1]:40192 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwno-0002Dq-LU for patch@linaro.org; Thu, 03 Sep 2020 17:29:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58566) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLG-0003yT-RB; Thu, 03 Sep 2020 17:00:24 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:40762) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLE-0007cz-SJ; Thu, 03 Sep 2020 17:00:22 -0400 Received: by mail-ot1-x341.google.com with SMTP id e23so4013768otk.7; Thu, 03 Sep 2020 14:00: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=qTh31Rf/r01rqa9kv/3Kv1y/l40RMHvXG4921rSK/Vs=; b=F5lLuU86NBNOJXSwTxkeLFpMXiJkG0hav4FZB3TnChTvRFMaQMraUSDoOu0x3F65Xj Lg++2yXEAnJ6KZI3mJq04c5eBdhVep9/iGGS3Ce5q9JfEd9UKtdM2Tx+twK8+p9lDQ3T 3pLdTUSduK26/IapUFMjYJRkQIzJ+d8TLHe+15byIkg7Fhx4Ff0MSHZ9YBuf4T1v5z3q jirXrV7PjOrNi3CT3fMTXF0JadcSqIos4s0WskEW9Gh85GilP1qRXp+hf0pUBQ68jAvm TZCekJIVWL/dkZe2y6l5goNG272KgGTQU+OdsppdTNL5axDHnFKJVksPhL7wEGs9jfTG FdMA== 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=qTh31Rf/r01rqa9kv/3Kv1y/l40RMHvXG4921rSK/Vs=; b=lpwTHOd7S07XHyuZSXvO1evhcLA3aGsxCR2h/3l9FoRU8ibYCNrKx2oaWYcOdDlWEi octFBek+0AmcOG5v9HzWhUD0273bpvXWKW210O9HrNtzaSd4YI9vPNEzD/+yx1GCoW4S XjQiUg60ZTTZ/ht7zju36FrVQnj9MTEBFKQYS+/Oqw/c30aBPVt6Iph+zm+43qJCtAm7 U5tS4wakajz3rXKbYk+LDDYtI7Udpl0W7KxmiEkeXctiOvLPUve2shkNMdNR1DKSq/l2 0fBKXjuDexCFMFUPUyTUHIVpOlRye9am15FizbmGPEZ/9Hcr6AFdQpUZO/UfVSVyzV3N ORGQ== X-Gm-Message-State: AOAM532yTMXA2xEnBwfrdoc5L8EKZ5gf6a3gYeEgnzrenFK1UDBst99f ca9ka3BfjN8ec9yoPOEPK0O93KsJh3s= X-Received: by 2002:a9d:6e1:: with SMTP id 88mr3073463otx.178.1599166819269; Thu, 03 Sep 2020 14:00:19 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id n186sm831721oob.11.2020.09.03.14.00.18 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:18 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 02/77] target/arm: Clear tail in gvec_fmul_idx_*, gvec_fmla_idx_* Date: Thu, 3 Sep 2020 15:58:20 -0500 Message-Id: <20200903205935.27832-3-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=flukshun@gmail.com; helo=mail-ot1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Richard Henderson , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Must clear the tail for AdvSIMD when SVE is enabled. Fixes: ca40a6e6e39 Cc: qemu-stable@nongnu.org Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson Message-id: 20200513163245.17915-15-richard.henderson@linaro.org Signed-off-by: Peter Maydell (cherry picked from commit 525d9b6d42844e187211d25b69be8b378785bc24) Signed-off-by: Michael Roth --- target/arm/vec_helper.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.17.1 diff --git a/target/arm/vec_helper.c b/target/arm/vec_helper.c index 8017bd88c4..5ce111b286 100644 --- a/target/arm/vec_helper.c +++ b/target/arm/vec_helper.c @@ -737,6 +737,7 @@ void HELPER(NAME)(void *vd, void *vn, void *vm, void *stat, uint32_t desc) \ d[i + j] = TYPE##_mul(n[i + j], mm, stat); \ } \ } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ } DO_MUL_IDX(gvec_fmul_idx_h, float16, H2) @@ -761,6 +762,7 @@ void HELPER(NAME)(void *vd, void *vn, void *vm, void *va, \ mm, a[i + j], 0, stat); \ } \ } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ } DO_FMLA_IDX(gvec_fmla_idx_h, float16, H2) From patchwork Thu Sep 3 20:58:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274588 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DF03CC433E2 for ; Thu, 3 Sep 2020 21:43:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A014F206E7 for ; Thu, 3 Sep 2020 21:43:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kT45kTez" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A014F206E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:49864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx1R-0004X5-Ov for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:43:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59126) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLk-0004a2-K0; Thu, 03 Sep 2020 17:00:52 -0400 Received: from mail-oo1-xc43.google.com ([2607:f8b0:4864:20::c43]:41887) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLi-0007md-GZ; Thu, 03 Sep 2020 17:00:52 -0400 Received: by mail-oo1-xc43.google.com with SMTP id t3so1129153ook.8; Thu, 03 Sep 2020 14:00: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=bxWeFhlr2Nkz7Asmr51rIj2c32EFg7f8nnap9EUbZGc=; b=kT45kTezXOFjY1kIdOLpucs61FR/RPAJfX7isq+8hAJk4plBdlqs2kl5Bv7UNdC7EV StaJpRbM1QTTajuONhlFGKyVccrF1P8xqPMKXbT7ORd3M7xkrnIe0O0yC2lce6dFYM1U gZTZWDMrCMUhOAOd6cvc3lL6OMNyBtORtIaftYUshbjEL0V/yKIOKzBR62siGA0sRtow 2n55NGxJAVYD30evZ+kH8xSP/q4ix1ofe8N6io1wi/z+X6zJYmB0DqwSbOh4FbHsegCA UT4801Puv0YYXIITx4eiIq9Mp88776gDBw1L3gJx9wJH4mETofYsN76PdOcVA8CGwqA9 tEXg== 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=bxWeFhlr2Nkz7Asmr51rIj2c32EFg7f8nnap9EUbZGc=; b=MRoBNumSG6Xi7y7rwGyKq6DF2apcaviyCkaQWC043ZX3JTlN7P9nyzsjs/FdCOS3Al l/lu7dyTtyOpvREfz/qJJMVdPCvEI7omMq9KXi2K2ovw/Q7M6Nlp+DvXK/LHNWJNvrF3 PFa6sv0X+o7eCKDZtPSpi/ssmCQDhz1JtiCDqOdCnaR6LS6CyM8hMHbSmEMt2RxFdw4Z HIbfvDjExKSYOiAQyYtQ+2M7SfHI26q2Sb63yU4z7MZS3oq8Yg94d2zN+6BYT5aC+hw8 OiL/3K3i1KduXXHWjsxreqrOBn8hIKGDntgqUIXMUio1w+2VPIRnUpXA6o3ubXaJUu/g Q8CQ== X-Gm-Message-State: AOAM533/phTPD8oeG2u1Pi9Ad7kcrHf0DnrCBpS7OipY4rpWDDrUzlEB 1fICnF3N5lW1iCLYU+3sDI5qTNnEVjI= X-Google-Smtp-Source: ABdhPJyU/u8kUV0VF/KzCStoEHPeLSNKtOUe7Wrhekedl7Ea23lzleq/F+U2QatcX/qaLi6P+FEMiQ== X-Received: by 2002:a4a:d549:: with SMTP id q9mr3346616oos.74.1599166848839; Thu, 03 Sep 2020 14:00:48 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 22sm722522oin.26.2020.09.03.14.00.48 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:48 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 04/77] 9p: Lock directory streams with a CoMutex Date: Thu, 3 Sep 2020 15:58:22 -0500 Message-Id: <20200903205935.27832-5-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c43; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc43.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Greg Kurz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Greg Kurz Locking was introduced in QEMU 2.7 to address the deprecation of readdir_r(3) in glibc 2.24. It turns out that the frontend code is the worst place to handle a critical section with a pthread mutex: the code runs in a coroutine on behalf of the QEMU mainloop and then yields control, waiting for the fsdev backend to process the request in a worker thread. If the client resends another readdir request for the same fid before the previous one finally unlocked the mutex, we're deadlocked. This never bit us because the linux client serializes readdir requests for the same fid, but it is quite easy to demonstrate with a custom client. A good solution could be to narrow the critical section in the worker thread code and to return a copy of the dirent to the frontend, but this causes quite some changes in both 9p.c and codir.c. So, instead of that, in order for people to easily backport the fix to older QEMU versions, let's simply use a CoMutex since all the users for this sit in coroutines. Fixes: 7cde47d4a89d ("9p: add locking to V9fsDir") Reviewed-by: Christian Schoenebeck Message-Id: <158981894794.109297.3530035833368944254.stgit@bahia.lan> Signed-off-by: Greg Kurz (cherry picked from commit ed463454efd0ac3042ff772bfe1b1d846dc281a5) Signed-off-by: Michael Roth --- hw/9pfs/9p.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h index b8f72a3bd9..c381fe091a 100644 --- a/hw/9pfs/9p.h +++ b/hw/9pfs/9p.h @@ -197,22 +197,22 @@ typedef struct V9fsXattr typedef struct V9fsDir { DIR *stream; - QemuMutex readdir_mutex; + CoMutex readdir_mutex; } V9fsDir; static inline void v9fs_readdir_lock(V9fsDir *dir) { - qemu_mutex_lock(&dir->readdir_mutex); + qemu_co_mutex_lock(&dir->readdir_mutex); } static inline void v9fs_readdir_unlock(V9fsDir *dir) { - qemu_mutex_unlock(&dir->readdir_mutex); + qemu_co_mutex_unlock(&dir->readdir_mutex); } static inline void v9fs_readdir_init(V9fsDir *dir) { - qemu_mutex_init(&dir->readdir_mutex); + qemu_co_mutex_init(&dir->readdir_mutex); } /* From patchwork Thu Sep 3 20:58:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274594 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 929A4C43461 for ; Thu, 3 Sep 2020 21:37:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5362D20665 for ; Thu, 3 Sep 2020 21:37:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZhuZkyV7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5362D20665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46662 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwvU-00007T-Bf for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:37:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59432) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLy-0004zF-Nr; Thu, 03 Sep 2020 17:01:06 -0400 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:43302) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLw-0007qv-LG; Thu, 03 Sep 2020 17:01:05 -0400 Received: by mail-oi1-x243.google.com with SMTP id i17so4498667oig.10; Thu, 03 Sep 2020 14:01: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 :mime-version:content-transfer-encoding; bh=RAtZibjRPRUwDnQzP5UjXu8eSd4RDr/MjWSFq1fE5u4=; b=ZhuZkyV74JC45mz5cwb0f3GH13dtUNdxELR+kqHiYgq5A/6yeSRps6GRPyCBkvkma+ r380bNZKG1zInRmRtcpJ9pvDyJD4Rfrrl2lXO7n2/HMLmMHpjWQkQL1YL0dSsVR7zsj7 1uxBJ2NPRZpjl/7fDGur57ukWIn0HXjmIzVk0OMZay9mxyXW3N1cPYem9mzGYelMxqXw Ccv1c0mU+aVcSlR2arIRl/FFYqupsS0uivsI0w0Mg+KEOeJZAHrC4pq/YsupI5JBGVWZ dNfekOwt8crLqPOoG9keNJ/R1gxee/JuFJdFF9dNYO+iOXEvKpxVbBRg30epetpAgQ13 OKqg== 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=RAtZibjRPRUwDnQzP5UjXu8eSd4RDr/MjWSFq1fE5u4=; b=cIxVcsvxNREeWOSwJNp1znUlmA0N+hx1i2yC3ceXxvPYonnugCDzd9v30cBN1SDkcl O9BOX7IfQ9Musgdj3bzpeRhbaLuqKnmwGcP9BKV4Bd08rV7dgd2/EXN8hsnnSOIz2CjU InRX56NttT/w30jNOtCfrFr4p7bLdYtsjs0lTxUVqmEncGibVEYaH5K3WRniBSDRVQgv jZKlaWJtQn+G/1776b1hKF33utfb44gtq/Q+v7/VsuaW94uKcYI+sIcAHbnKlHO8K9kb 54HrzCxVd5f8AbBqgIqgYXXmqQsUL85Yof1pAmZqKTy9b6pgJ2vI63wrEYtZU35BLhpd T3ow== X-Gm-Message-State: AOAM532vY6qDbOgV5ZobycEN8iXwQHqLwNjVoMlqApZFCef+BHFSX35i 0Rf/LQ6AdPcbt3ffH5b8O0KtTkUAcfsNHA== X-Google-Smtp-Source: ABdhPJwyMrA+NINQEC9TZehHF1vSHz8eEPFNC1egNQv+Tcf2Q/vkdfb9Av7VcGnlkppxB7vqN+vFpg== X-Received: by 2002:aca:4901:: with SMTP id w1mr3171952oia.160.1599166862698; Thu, 03 Sep 2020 14:01:02 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id x4sm724977oic.11.2020.09.03.14.01.01 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:01 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 05/77] net: Do not include a newline in the id of -nic devices Date: Thu, 3 Sep 2020 15:58:23 -0500 Message-Id: <20200903205935.27832-6-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::243; envelope-from=flukshun@gmail.com; helo=mail-oi1-x243.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , qemu-stable@nongnu.org, Laurent Vivier Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Thomas Huth The '\n' sneaked in by accident here, an "id" string should really not contain a newline character at the end. Fixes: 78cd6f7bf6b ('net: Add a new convenience option "--nic" ...') Signed-off-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200518074352.23125-1-thuth@redhat.com> Signed-off-by: Laurent Vivier (cherry picked from commit 0561dfac082becdd9e89110249a27b309b62aa9f) Signed-off-by: Michael Roth --- net/net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/net.c b/net/net.c index 38778e831d..cbeeeadff8 100644 --- a/net/net.c +++ b/net/net.c @@ -1506,7 +1506,7 @@ static int net_param_nic(void *dummy, QemuOpts *opts, Error **errp) /* Create an ID if the user did not specify one */ nd_id = g_strdup(qemu_opts_id(opts)); if (!nd_id) { - nd_id = g_strdup_printf("__org.qemu.nic%i\n", idx); + nd_id = g_strdup_printf("__org.qemu.nic%i", idx); qemu_opts_set_id(opts, nd_id); } From patchwork Thu Sep 3 20:58:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274580 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC946C433E2 for ; Thu, 3 Sep 2020 21:56:30 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8CE89205CB for ; Thu, 3 Sep 2020 21:56:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tqrq/EX9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CE89205CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40782 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxDZ-0007iS-Mu for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:56:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59696) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMD-000570-AP; Thu, 03 Sep 2020 17:01:21 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:44012) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMB-0007uN-9t; Thu, 03 Sep 2020 17:01:20 -0400 Received: by mail-ot1-x333.google.com with SMTP id v16so3996086otp.10; Thu, 03 Sep 2020 14:01: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; bh=Z36mXy2WFBF5NBY+RBTjJ9WAglVt96yt/HKBybxipmc=; b=tqrq/EX93AgUny/nwg6QFR/ysHJWMEXT7xEsDAzeE03v7b1LpoJytVDxuH4MlUkpO+ UAv23RRpw+fKWhTomHu2TjqDjBA7TUNz1ZWpY+8/FCXb+m0uqCHdXOmGG61YpjqqJbtI mSyKBVRnu+lDl2oK57nFyAj1NFMsIEvVm+PO5evDWw02KYAdYkX3mn037fXqq7gnDzLg 2xSdnXBVIpfN2fzx1fW2RAT630vQHT8IJpHLjU16HwheYbSgEiKBjt9hgawb6AUe6QOy uT+MZDfZ6dSeaS8uUqDMrmjcS7bN8Ij5uq8ajvnGfvS+BGs6s8PnwHzHuf5YNK7KANZE Wa/Q== 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=Z36mXy2WFBF5NBY+RBTjJ9WAglVt96yt/HKBybxipmc=; b=kzperAtt0DfNfn1FaVYHwgzQ4hgS4PZ9lbaT01/w7uqbOHpb05sRjRa1b9grN/aTIr +q7e7CKjEHMUilQRBPAq3G03gDinUDxiMq3P5Dlih8TwE61bXjkomFlQQyJ64t1BdgWB 497oUNgrTljESWflsXayAmYoVvUv7awAjHL977gUgKA9TJXn4edanYneyC4+1pCJOw1T lDa0vynxvnCEBp5nkwLGYgaEd8rldXHtsMAJP/CQav5tXENnkPoYJGQzycGS/DjsUCrS VT6gjZXWXk8uteq1pR3orUcZ3TXT19h0cm9XZMOQmN0FWJCBuPpqWkEspAGXKjUB46j1 T9nw== X-Gm-Message-State: AOAM530I5GHHYpjA9lc3y/7ETxOzAoUJIzsMJt7TFQLR/uNTeN6xkDh5 W0Imy34+rH8+a75e7cfhf1dvpktAUsbKkg== X-Google-Smtp-Source: ABdhPJxpMoKcMGqhfnLo9UAm0rAGuaMQTMP2Je1Sw63Bo3LcdoMNRofxG28N5ToEjte4Rbqz2eyNgA== X-Received: by 2002:a9d:21c4:: with SMTP id s62mr3086347otb.350.1599166877385; Thu, 03 Sep 2020 14:01:17 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id j20sm767305ots.5.2020.09.03.14.01.16 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:16 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 06/77] nbd/server: Avoid long error message assertions CVE-2020-10761 Date: Thu, 3 Sep 2020 15:58:24 -0500 Message-Id: <20200903205935.27832-7-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=flukshun@gmail.com; helo=mail-ot1-x333.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Eric Blake Ever since commit 36683283 (v2.8), the server code asserts that error strings sent to the client are well-formed per the protocol by not exceeding the maximum string length of 4096. At the time the server first started sending error messages, the assertion could not be triggered, because messages were completely under our control. However, over the years, we have added latent scenarios where a client could trigger the server to attempt an error message that would include the client's information if it passed other checks first: - requesting NBD_OPT_INFO/GO on an export name that is not present (commit 0cfae925 in v2.12 echoes the name) - requesting NBD_OPT_LIST/SET_META_CONTEXT on an export name that is not present (commit e7b1948d in v2.12 echoes the name) At the time, those were still safe because we flagged names larger than 256 bytes with a different message; but that changed in commit 93676c88 (v4.2) when we raised the name limit to 4096 to match the NBD string limit. (That commit also failed to change the magic number 4096 in nbd_negotiate_send_rep_err to the just-introduced named constant.) So with that commit, long client names appended to server text can now trigger the assertion, and thus be used as a denial of service attack against a server. As a mitigating factor, if the server requires TLS, the client cannot trigger the problematic paths unless it first supplies TLS credentials, and such trusted clients are less likely to try to intentionally crash the server. We may later want to further sanitize the user-supplied strings we place into our error messages, such as scrubbing out control characters, but that is less important to the CVE fix, so it can be a later patch to the new nbd_sanitize_name. Consideration was given to changing the assertion in nbd_negotiate_send_rep_verr to instead merely log a server error and truncate the message, to avoid leaving a latent path that could trigger a future CVE DoS on any new error message. However, this merely complicates the code for something that is already (correctly) flagging coding errors, and now that we are aware of the long message pitfall, we are less likely to introduce such errors in the future, which would make such error handling dead code. Reported-by: Xueqiang Wei CC: qemu-stable@nongnu.org Fixes: https://bugzilla.redhat.com/1843684 CVE-2020-10761 Fixes: 93676c88d7 Signed-off-by: Eric Blake Message-Id: <20200610163741.3745251-2-eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy (cherry picked from commit 5c4fe018c025740fef4a0a4421e8162db0c3eefd) Signed-off-by: Michael Roth --- nbd/server.c | 23 ++++++++++++++++++++--- tests/qemu-iotests/143 | 4 ++++ tests/qemu-iotests/143.out | 2 ++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index 02b1ed0801..20754e9ebc 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -217,7 +217,7 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, msg = g_strdup_vprintf(fmt, va); len = strlen(msg); - assert(len < 4096); + assert(len < NBD_MAX_STRING_SIZE); trace_nbd_negotiate_send_rep_err(msg); ret = nbd_negotiate_send_rep_len(client, type, len, errp); if (ret < 0) { @@ -231,6 +231,19 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, return 0; } +/* + * Return a malloc'd copy of @name suitable for use in an error reply. + */ +static char * +nbd_sanitize_name(const char *name) +{ + if (strnlen(name, 80) < 80) { + return g_strdup(name); + } + /* XXX Should we also try to sanitize any control characters? */ + return g_strdup_printf("%.80s...", name); +} + /* Send an error reply. * Return -errno on error, 0 on success. */ static int GCC_FMT_ATTR(4, 5) @@ -595,9 +608,11 @@ static int nbd_negotiate_handle_info(NBDClient *client, Error **errp) exp = nbd_export_find(name); if (!exp) { + g_autofree char *sane_name = nbd_sanitize_name(name); + return nbd_negotiate_send_rep_err(client, NBD_REP_ERR_UNKNOWN, errp, "export '%s' not present", - name); + sane_name); } /* Don't bother sending NBD_INFO_NAME unless client requested it */ @@ -995,8 +1010,10 @@ static int nbd_negotiate_meta_queries(NBDClient *client, meta->exp = nbd_export_find(export_name); if (meta->exp == NULL) { + g_autofree char *sane_name = nbd_sanitize_name(export_name); + return nbd_opt_drop(client, NBD_REP_ERR_UNKNOWN, errp, - "export '%s' not present", export_name); + "export '%s' not present", sane_name); } ret = nbd_opt_read(client, &nb_queries, sizeof(nb_queries), errp); diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 index f649b36195..d2349903b1 100755 --- a/tests/qemu-iotests/143 +++ b/tests/qemu-iotests/143 @@ -58,6 +58,10 @@ _send_qemu_cmd $QEMU_HANDLE \ $QEMU_IO_PROG -f raw -c quit \ "nbd+unix:///no_such_export?socket=$SOCK_DIR/nbd" 2>&1 \ | _filter_qemu_io | _filter_nbd +# Likewise, with longest possible name permitted in NBD protocol +$QEMU_IO_PROG -f raw -c quit \ + "nbd+unix:///$(printf %4096d 1 | tr ' ' a)?socket=$SOCK_DIR/nbd" 2>&1 \ + | _filter_qemu_io | _filter_nbd | sed 's/aaaa*aa/aa--aa/' _send_qemu_cmd $QEMU_HANDLE \ "{ 'execute': 'quit' }" \ diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out index 1f4001c601..fc9c0a761f 100644 --- a/tests/qemu-iotests/143.out +++ b/tests/qemu-iotests/143.out @@ -5,6 +5,8 @@ QA output created by 143 {"return": {}} qemu-io: can't open device nbd+unix:///no_such_export?socket=SOCK_DIR/nbd: Requested export not available server reported: export 'no_such_export' not present +qemu-io: can't open device nbd+unix:///aa--aa1?socket=SOCK_DIR/nbd: Requested export not available +server reported: export 'aa--aa...' not present { 'execute': 'quit' } {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} From patchwork Thu Sep 3 20:58:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306241 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB457C43461 for ; Thu, 3 Sep 2020 22:00:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 927A320678 for ; Thu, 3 Sep 2020 22:00:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KzMhNwT4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 927A320678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57436 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxHY-0006UG-OQ for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 18:00:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59820) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMN-0005WH-Ji; Thu, 03 Sep 2020 17:01:31 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]:45462) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwML-0007wP-Lo; Thu, 03 Sep 2020 17:01:31 -0400 Received: by mail-ot1-x32c.google.com with SMTP id g96so3978002otb.12; Thu, 03 Sep 2020 14:01: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 :mime-version:content-transfer-encoding; bh=coJkuEmlNkx1jl3SxtGVceRHzmpSFAl/1O2kd9aGIEI=; b=KzMhNwT4SzFuMYvIrN0Mg77+M/x/o+/6ac1fx+nUDjDNbLdz19Bbh9RDVYMRi6M8zc DShKL5vIDPkK8SjqwLpfAGmO9G1OXekk+CPqrw4q7KTXKvnRgSR0CbtXgzPvRnRudRUQ ty49O53Js0dPbwVjPKDDYYHY0mRVmdR/hAGMEKcDrJLaFuv+b9TmGOkmkGzB5noAcwDn 8qWZgs3F2Iq+bkodsUzu/h92GWpH4P0aiwa2A4/uuBS27AUGIhJtN3zs+4m6BV6n9qT8 hcH1yY9pP2CxGs/35HhwYje17MvjpUNO8QtF7eaeCD+R+Ufu9Tr7+F7FQ4D7HYVcO54g 4TwA== 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=coJkuEmlNkx1jl3SxtGVceRHzmpSFAl/1O2kd9aGIEI=; b=F4wg9R6iRzmmK8DrOQ0o85vvlOUmDj5wBKOF0piXjZ+g/8044bxGBeeifslO3cyLQT awDyFiBzphTY2Fk0PPYE1GMw5SdZHJDy+Mo8+5PUTKCZmnxNskDohNk9Fpf5nlgBi7Do Z49jW08nA8RAA0Ddg9XUpG3ixkQ1fBZP0k9/vmCjRhdUD5RTe3zN/xCr4p2K8j0K3soU Lfc/nd17Wh5+QJlpNvV1pIkGQLMyV5yM2JKJX426K/0gpCWTnU76R0LxilaYaCQM4f8c AaXhAsTFQ9v5kD6T9IQZp5V9z7CPAdmcIAY5LI58xoIwyIWwhYtdkn+5584R5tLmJYoi zzBw== X-Gm-Message-State: AOAM533Sjc/4fRPnNJwnY/Bv19bX07H+TezTXFQbQaMnP0zH12LhDFxo 2FjEtKzGkdxvinvlXyKY5ERJzI+k9r0OFw== X-Google-Smtp-Source: ABdhPJyO3MVr7dG/XxyIU4R+09TdGOCVn4IHZXGyOaFm3qDMMlCVmVACEkKslrleDL84AQ7Q0+O1WQ== X-Received: by 2002:a9d:eed:: with SMTP id 100mr3006912otj.20.1599166887891; Thu, 03 Sep 2020 14:01:27 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id f12sm822384ooi.42.2020.09.03.14.01.26 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:27 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 07/77] virtio-balloon: fix free page hinting without an iothread Date: Thu, 3 Sep 2020 15:58:25 -0500 Message-Id: <20200903205935.27832-8-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32c; envelope-from=flukshun@gmail.com; helo=mail-ot1-x32c.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Michael S . Tsirkin" , David Hildenbrand , qemu-stable@nongnu.org, Alexander Duyck , Wei Wang , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: David Hildenbrand In case we don't have an iothread, we mark the feature as abscent but still add the queue. 'free_page_bh' remains set to NULL. qemu-system-i386 \ -M microvm \ -nographic \ -device virtio-balloon-device,free-page-hint=true \ -nographic \ -display none \ -monitor none \ -serial none \ -qtest stdio Doing a "write 0xc0000e30 0x24 0x030000000300000003000000030000000300000003000000030000000300000003000000" We will trigger a SEGFAULT. Let's move the check and bail out. While at it, move the static initializations to instance_init(). free_page_report_status and block_iothread are implicitly set to the right values (0/false) already, so drop the initialization. Reviewed-by: Alexander Duyck Reviewed-by: Philippe Mathieu-Daudé Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT") Reported-by: Alexander Bulekov Cc: qemu-stable@nongnu.org Cc: Wei Wang Cc: Michael S. Tsirkin Cc: Philippe Mathieu-Daudé Cc: Alexander Duyck Signed-off-by: David Hildenbrand Message-Id: <20200520100439.19872-2-david@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 12fc8903a8ee09fb5f642de82699a0b211e1b5a7) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index a4729f7fc9..ef499e1b3b 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -789,6 +789,13 @@ static void virtio_balloon_device_realize(DeviceState *dev, Error **errp) return; } + if (virtio_has_feature(s->host_features, VIRTIO_BALLOON_F_FREE_PAGE_HINT) && + !s->iothread) { + error_setg(errp, "'free-page-hint' requires 'iothread' to be set"); + virtio_cleanup(vdev); + return; + } + s->ivq = virtio_add_queue(vdev, 128, virtio_balloon_handle_output); s->dvq = virtio_add_queue(vdev, 128, virtio_balloon_handle_output); s->svq = virtio_add_queue(vdev, 128, virtio_balloon_receive_stats); @@ -797,24 +804,11 @@ static void virtio_balloon_device_realize(DeviceState *dev, Error **errp) VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { s->free_page_vq = virtio_add_queue(vdev, VIRTQUEUE_MAX_SIZE, virtio_balloon_handle_free_page_vq); - s->free_page_report_status = FREE_PAGE_REPORT_S_STOP; - s->free_page_report_cmd_id = - VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN; - s->free_page_report_notify.notify = - virtio_balloon_free_page_report_notify; precopy_add_notifier(&s->free_page_report_notify); - if (s->iothread) { - object_ref(OBJECT(s->iothread)); - s->free_page_bh = aio_bh_new(iothread_get_aio_context(s->iothread), - virtio_ballloon_get_free_page_hints, s); - qemu_mutex_init(&s->free_page_lock); - qemu_cond_init(&s->free_page_cond); - s->block_iothread = false; - } else { - /* Simply disable this feature if the iothread wasn't created. */ - s->host_features &= ~(1 << VIRTIO_BALLOON_F_FREE_PAGE_HINT); - virtio_error(vdev, "iothread is missing"); - } + + object_ref(OBJECT(s->iothread)); + s->free_page_bh = aio_bh_new(iothread_get_aio_context(s->iothread), + virtio_ballloon_get_free_page_hints, s); } reset_stats(s); } @@ -892,6 +886,11 @@ static void virtio_balloon_instance_init(Object *obj) { VirtIOBalloon *s = VIRTIO_BALLOON(obj); + qemu_mutex_init(&s->free_page_lock); + qemu_cond_init(&s->free_page_cond); + s->free_page_report_cmd_id = VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN; + s->free_page_report_notify.notify = virtio_balloon_free_page_report_notify; + object_property_add(obj, "guest-stats", "guest statistics", balloon_stats_get_all, NULL, NULL, s, NULL); From patchwork Thu Sep 3 20:58:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306258 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BF72C433E2 for ; Thu, 3 Sep 2020 21:37:54 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D473420665 for ; Thu, 3 Sep 2020 21:37:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="p3pXJs7F" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D473420665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:47150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwvY-0000KE-Va for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:37:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59838) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMO-0005Z8-R0; Thu, 03 Sep 2020 17:01:32 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:35611) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMN-0007xh-0E; Thu, 03 Sep 2020 17:01:32 -0400 Received: by mail-ot1-x332.google.com with SMTP id i4so4040025ota.2; Thu, 03 Sep 2020 14:01: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 :mime-version:content-transfer-encoding; bh=QR57nNbf5eNvk41+1C7VvpA6VmcUymk4wbFzEUFu1zg=; b=p3pXJs7FrDAE1Oz2N+61RF9BmW0fa8GnxsGi/m4hR9VNNURiQbAvfFBxRAeX5SyM+U YiU0v4Nu5WKxPuAQPAzArVL92qj6Z1v+m5CE8kiXc/d+hqXRCWd0TPYR4Luugo2+byQO v6ybHO8VE505RyffdTr9268YfA+8HRHAoR8JuJdrvzWemMqAOb8ifGO6BAyfKlo+B94E 4I3UlJswYjq/4C9uDFQOatgcoEezCF1Jv3ipltNt9qdQ2mKGb+BKdykC/VfjJ6k+qKsD 9qJs26uOMj35aTi8NVoqhSKa6e5RRm9/GlK9O7DzwUFnMiR6uvTAt2ZqfoTIJNQufMFw YGkQ== 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=QR57nNbf5eNvk41+1C7VvpA6VmcUymk4wbFzEUFu1zg=; b=DA3unmZvO5X/s+bFE6Y+vn7A9HVGZWV4cuSxLk1vwGMVkfJwTy7h486raDU5iHBI6/ TC/uQifi4QVPOjAwoQZio7Zw1szFSlvLA1XLB1NR0DJ2mbKSKdzlSvJYbz6Ctr+3aHdZ WQx1oQvf9qVTwXWqS3iX9Dia8yGhkxFpJfU6CIgVcx1H6KAziCa/ggbD+rVfgLx1H9bS 8CfuuFGTb7/5a3Iq9hzCNQxHqe5eJrUClJfnVGG4aJhP57ydQo/oU9jA/cZmW2vuuJ2U rBiiylYvrxRCa0Rkg3yEFj/KvYIrpG6aFF09txM47eWPIQgwbsR2d98xkXDu2KfOkkWK cggg== X-Gm-Message-State: AOAM531AG1r0ica1EEV+Llu2T2cPMKZM+uHp+D0RljxUQ2NutGX/Wh2d 4lDhRljz01pXcLO2tmhEG9RJBhZP6nX5gg== X-Google-Smtp-Source: ABdhPJw74MLZYytGzCizOaNATDZund5++b/KtEEAfk/3BmsrG88QG63TxHMFFKs47dKreIeZ+cFEQw== X-Received: by 2002:a9d:4d0:: with SMTP id 74mr3171113otm.119.1599166889287; Thu, 03 Sep 2020 14:01:29 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t4sm766376otc.24.2020.09.03.14.01.28 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:28 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 08/77] virtio-balloon: fix free page hinting check on unrealize Date: Thu, 3 Sep 2020 15:58:26 -0500 Message-Id: <20200903205935.27832-9-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=flukshun@gmail.com; helo=mail-ot1-x332.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Michael S . Tsirkin" , David Hildenbrand , qemu-stable@nongnu.org, Alexander Duyck , Wei Wang , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: David Hildenbrand Checking against guest features is wrong. We allocated data structures based on host features. We can rely on "free_page_bh" as an indicator whether to un-do stuff instead. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alexander Duyck Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT") Cc: qemu-stable@nongnu.org Cc: Wei Wang Cc: Michael S. Tsirkin Cc: Philippe Mathieu-Daudé Cc: Alexander Duyck Signed-off-by: David Hildenbrand Message-Id: <20200520100439.19872-3-david@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 49b01711b8eb3796c6904c7f85d2431572cfe54f) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index ef499e1b3b..3e3b5ff0f8 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -818,7 +818,7 @@ static void virtio_balloon_device_unrealize(DeviceState *dev, Error **errp) VirtIODevice *vdev = VIRTIO_DEVICE(dev); VirtIOBalloon *s = VIRTIO_BALLOON(dev); - if (virtio_balloon_free_page_support(s)) { + if (s->free_page_bh) { qemu_bh_delete(s->free_page_bh); virtio_balloon_free_page_stop(s); precopy_remove_notifier(&s->free_page_report_notify); From patchwork Thu Sep 3 20:58:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274620 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD7B7C433E2 for ; Thu, 3 Sep 2020 21:14:35 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7F8FA206E7 for ; Thu, 3 Sep 2020 21:14:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iddFmDJ7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F8FA206E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57024 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwZ0-0007cB-Km for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:14:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58088) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwKq-00036s-LR; Thu, 03 Sep 2020 16:59:56 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:46518) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKo-0007KO-In; Thu, 03 Sep 2020 16:59:56 -0400 Received: by mail-ot1-x342.google.com with SMTP id c10so3972639otm.13; Thu, 03 Sep 2020 13:59: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 :mime-version:content-transfer-encoding; bh=BVrfXN+PksS1+3mj7WHwrA4ngS6G5v4nICiHt9L9Kw0=; b=iddFmDJ7CDJcp+Rogo00I29oCuWilvK0P6QrQDBwBudPYwTF+439RQhUg96w2iT+4r 8Iygb6wE6XCluWQUGt37xA4XJoPTmAueXoDqxXMd6W5OeuZW7LXiW6056hgFvG/ctqmR CkqjJ7ju+zWqAO17iCRv6qHww9hR07GQgajGuC6OkxsjVl0Pxc2xu0j8TS365NaqIXxB EjxxovPIvGltgPwPtDfryDEssHES9ujnzleu6hl9srrX7oXgY1miypyA1p7MQ7iqufRz yy1EbBzWp8MplWGTwCbWGcAvjtAUvCDah3HG1m9cKiZhR8KEbKUCBBQ2T7R9lknKK/2O w7Aw== 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=BVrfXN+PksS1+3mj7WHwrA4ngS6G5v4nICiHt9L9Kw0=; b=Eg4/O77+7wE+CW4NgchLzGTHD6Rs5qh7OWXrm47PmiAUqGzI8tYiHGfDtMKLqN5o57 qcs3x5kGsx5Buqp1i1ptT8L3k0qKKaESco6mkJU+VOk+gW4Djd7brp8sCXWrkoLYQsB1 SRWRode10/Phl9103gl5pUxZWoKfqvVci/6XSNzLnTzUMmRKsTJMqczWQkKQQCS7rGpf 0XZVbqfoTbGsNYuVET/MP8ugCGZD2+FalC9xcPV/Fx5qOKAWzL3qtT5luPgx3MKjTUY7 +gDAehEpA/t2eWfiVJyoYIjO9T0ovVZobNBl4wfSbLBTKvjeZ1vyDC+Obr5UnXn0hCFv CrGw== X-Gm-Message-State: AOAM532kB6kh3IjTzJc6GyN8NZHfWiT6jMKIxq6B9bx39oyp+by8R8tJ CGqQykQZF8/eEh06Ga9v6QVJFOLw6dg= X-Google-Smtp-Source: ABdhPJzzCAQrLgn1gBYGKy6Y/ZxgeEvC+GrMTtHJMrnpBCaDRcoQLJTdDeZ+djXZF9CYrSGEf/BoxQ== X-Received: by 2002:a9d:23c7:: with SMTP id t65mr2988703otb.275.1599166790542; Thu, 03 Sep 2020 13:59:50 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l63sm711386oia.56.2020.09.03.13.59.49 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 13:59:49 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 09/77] virtio-balloon: unref the iothread when unrealizing Date: Thu, 3 Sep 2020 15:58:27 -0500 Message-Id: <20200903205935.27832-10-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::342; envelope-from=flukshun@gmail.com; helo=mail-ot1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Michael S . Tsirkin" , David Hildenbrand , qemu-stable@nongnu.org, Alexander Duyck , Wei Wang , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: David Hildenbrand We took a reference when realizing, so let's drop that reference when unrealizing. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alexander Duyck Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT") Cc: qemu-stable@nongnu.org Cc: Wei Wang Cc: Alexander Duyck Cc: Michael S. Tsirkin Cc: Philippe Mathieu-Daudé Signed-off-by: David Hildenbrand Message-Id: <20200520100439.19872-4-david@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 105aef9c9479786d27c1c45c9b0b1fa03dc46be3) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 3e3b5ff0f8..e20f90dad4 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -820,6 +820,7 @@ static void virtio_balloon_device_unrealize(DeviceState *dev, Error **errp) if (s->free_page_bh) { qemu_bh_delete(s->free_page_bh); + object_unref(OBJECT(s->iothread)); virtio_balloon_free_page_stop(s); precopy_remove_notifier(&s->free_page_report_notify); } From patchwork Thu Sep 3 20:58:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274629 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DB55C43461 for ; Thu, 3 Sep 2020 21:02:01 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C21DA20684 for ; Thu, 3 Sep 2020 21:02:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ju8X7eDJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C21DA20684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:42054 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwMp-0005v8-Vh for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:02:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58118) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwKr-00038x-Sz; Thu, 03 Sep 2020 16:59:57 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:38595) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKp-0007L4-R3; Thu, 03 Sep 2020 16:59:57 -0400 Received: by mail-oi1-x244.google.com with SMTP id y6so4511523oie.5; Thu, 03 Sep 2020 13:59:55 -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=l6xlQJHOv7dE9T6NcBrhJXAaTtTntr3y7qC5ZPuIlyE=; b=Ju8X7eDJBDWIZ/ftmBP6PQKMZUrjC4yQDoSKIYEveB8PMZZBFgshceJXS7WdpQ3+og qTd6sKLqU22g630PezRVi+N/DZ60DXHULrTJvaf8iRpJNQH3IuVl1PJuaaWZ1wagydY9 RQ9PKwJPK5aHOS2xWXEEgwsccdjoU2w8li6//d2pesARyk6NYfl13Yex0zvevTJ1YwL7 8d34qTLt3FNnmcGmX1JMP0PhGqr1xSUKNuZ3tI+RtX+HXYoOS36Di+5eJ4lzgzkwrC6H BZ7MSkbPSltzkZyJhyheVwFF9hDAEYD46uLtIt0z7KBLGzKp1xp5rX3E08fLL/8sK5FL dh7w== 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=l6xlQJHOv7dE9T6NcBrhJXAaTtTntr3y7qC5ZPuIlyE=; b=GctU440dxVDxwcPQUHlGCutCxaWlMap2UAeXJFTSDcNrsPbFoQQmURzX6eM3RZqqVt wrUYEapu/5qjwxnm9qH/0PryltYaDdxu9gg8cJhbYis7P3hqxLBNyBHeWbfdddyb6FnD aP5PfygT8nlE8jPPNRuRgqeuOs///6IEvkfyyoTisAwp85VATZVQUeWHHecpeap3LHhr OFkxFj4bTsZ8cL1UojxOp8IpVksACvu54np3ovDkThbvc/kT0vKuiSRzlMh/zvSXoxAR BjDhVD8oFKUxDk3IJhI6sOzG/9mZUQvDu7CsRCwVdtFpKiB7ei0A9UGTUIde22YXLYDS daAg== X-Gm-Message-State: AOAM531Typ1Yz57YnUl5cFShW5yBjiJUetuccgFZG80C2xu8/F++5shB 8p7+xCitSy73MNJFN46teG8YrD6+I0c= X-Google-Smtp-Source: ABdhPJyNvG8jRaAfFGH7RKA9jD7Gsv0p3mUYK68UHEjMR/K23SQsIynjcyrsLbM3aXTNw8Bd0hQLOw== X-Received: by 2002:aca:2b0c:: with SMTP id i12mr3392493oik.77.1599166794177; Thu, 03 Sep 2020 13:59:54 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id b79sm713535oii.33.2020.09.03.13.59.53 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 13:59:53 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 11/77] 9pfs: local: ignore O_NOATIME if we don't have permissions Date: Thu, 3 Sep 2020 15:58:29 -0500 Message-Id: <20200903205935.27832-12-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Greg Kurz , qemu-stable@nongnu.org, Omar Sandoval Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Omar Sandoval QEMU's local 9pfs server passes through O_NOATIME from the client. If the QEMU process doesn't have permissions to use O_NOATIME (namely, it does not own the file nor have the CAP_FOWNER capability), the open will fail. This causes issues when from the client's point of view, it believes it has permissions to use O_NOATIME (e.g., a process running as root in the virtual machine). Additionally, overlayfs on Linux opens files on the lower layer using O_NOATIME, so in this case a 9pfs mount can't be used as a lower layer for overlayfs (cf. https://github.com/osandov/drgn/blob/dabfe1971951701da13863dbe6d8a1d172ad9650/vmtest/onoatimehack.c and https://github.com/NixOS/nixpkgs/issues/54509). Luckily, O_NOATIME is effectively a hint, and is often ignored by, e.g., network filesystems. open(2) notes that O_NOATIME "may not be effective on all filesystems. One example is NFS, where the server maintains the access time." This means that we can honor it when possible but fall back to ignoring it. Acked-by: Christian Schoenebeck Signed-off-by: Omar Sandoval Message-Id: Signed-off-by: Greg Kurz (cherry picked from commit a5804fcf7b22fc7d1f9ec794dd284c7d504bd16b) Signed-off-by: Michael Roth --- hw/9pfs/9p-util.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h index 79ed6b233e..546f46dc7d 100644 --- a/hw/9pfs/9p-util.h +++ b/hw/9pfs/9p-util.h @@ -37,9 +37,22 @@ static inline int openat_file(int dirfd, const char *name, int flags, { int fd, serrno, ret; +again: fd = openat(dirfd, name, flags | O_NOFOLLOW | O_NOCTTY | O_NONBLOCK, mode); if (fd == -1) { + if (errno == EPERM && (flags & O_NOATIME)) { + /* + * The client passed O_NOATIME but we lack permissions to honor it. + * Rather than failing the open, fall back without O_NOATIME. This + * doesn't break the semantics on the client side, as the Linux + * open(2) man page notes that O_NOATIME "may not be effective on + * all filesystems". In particular, NFS and other network + * filesystems ignore it entirely. + */ + flags &= ~O_NOATIME; + goto again; + } return -1; } From patchwork Thu Sep 3 20:58:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274618 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 605D7C43461 for ; Thu, 3 Sep 2020 21:16:43 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 136BA206CA for ; Thu, 3 Sep 2020 21:16:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hcn7eNHB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 136BA206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:37152 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwb4-0002dO-7p for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:16:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwKu-0003Dy-2X; Thu, 03 Sep 2020 17:00:00 -0400 Received: from mail-oo1-xc44.google.com ([2607:f8b0:4864:20::c44]:42322) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKs-0007Lp-Hw; Thu, 03 Sep 2020 16:59:59 -0400 Received: by mail-oo1-xc44.google.com with SMTP id a6so1118160oog.9; Thu, 03 Sep 2020 13:59:57 -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=zVupKeo5/zqUAABc2CM+FsEj1GwOQJfGqOqabRjhG30=; b=Hcn7eNHBIiehSOo6bfbV493jwPmim39jLTz7GrONUFC/MiYDkQ9V4Qb+6rFMCX1nZ9 8OSh7AbxpaF28pQLftSLBGTZ9nB3OsuVcIHaHhsKwP8MIkggfoOc4omz2YCfQCZ67NQp ljslfVp7Yf+0ibjCCFf114zKF4ZnCrPlIIXNevSFQiZCAzyglZI5r2SxTsTrKYctCS49 JkTeSo2WBvMacSAStkHlyLoXmHs40h1yQRtCpffytsM20rfh2bSAJ5b+7UN+7GvY51ZS AXhq2QbRWkFV2Ly0k/dMNauR60M8H/IwBdjY0ZwpmIZFCNQTBkJa275OdL411PaKFJnx 0+Yw== 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=zVupKeo5/zqUAABc2CM+FsEj1GwOQJfGqOqabRjhG30=; b=JQpEO1NCdz/gTgur6R02KTpyGKeTBuTGeLut1yeawzoo0sQAfBe6ZqHXadg+ypmQnn gY03E07aMoORuG04gmmDdzMlHrf/Q1FfT1kFWRI0pGRbdGeBurCPSskrEtIkfi0dbJcy 6KdRfGmxbUtMsEpirBi6JwbvRX75vaDl/EXkgOct/PBy773opdKuj2YTr+BSWMaccuJZ g46VdNiLvnBSxPtc/M6LpfK2C4ShBuboXojR16w3+QNFV79D+ROKg+83TF5EdVXv/xwy 0cNsJa6ZUjjwXFlCUGulGC0LRlo1o/cQE2TQWUU+7gYMpz6BXufvedXLEZI8KD6X9aUm qYcg== X-Gm-Message-State: AOAM533+mAYyLqu4/gBJE8vOuE0us0aAU8COqUXxh11jsaJLJJwal3Dp g8q6v0GefNVhpi/N3ZDkMCjElbLf7n4= X-Google-Smtp-Source: ABdhPJz9ZzS8tMAS+z2qImnTBI5O4SEi/MYsm7zWyok79/VsoSi8xfFyc5DLQ2KH1NBtvIDAF9Sw6g== X-Received: by 2002:a4a:9cd6:: with SMTP id d22mr3435323ook.0.1599166796879; Thu, 03 Sep 2020 13:59:56 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id y83sm713971oiy.35.2020.09.03.13.59.55 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 13:59:56 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 13/77] xen-9pfs: Fix log messages of reply errors Date: Thu, 3 Sep 2020 15:58:31 -0500 Message-Id: <20200903205935.27832-14-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c44; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc44.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Christian Schoenebeck , qemu-stable@nongnu.org, Greg Kurz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Christian Schoenebeck If delivery of some 9pfs response fails for some reason, log the error message by mentioning the 9P protocol reply type, not by client's request type. The latter could be misleading that the error occurred already when handling the request input. Signed-off-by: Christian Schoenebeck Acked-by: Stefano Stabellini Message-Id: Signed-off-by: Greg Kurz (cherry picked from commit 9bbb7e0fe081efff2e41f8517c256b72a284fe9b) *prereq for cf45183b718 Signed-off-by: Michael Roth --- hw/9pfs/xen-9p-backend.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c index 18fe5b7c92..f04caabfe5 100644 --- a/hw/9pfs/xen-9p-backend.c +++ b/hw/9pfs/xen-9p-backend.c @@ -137,7 +137,8 @@ static ssize_t xen_9pfs_pdu_vmarshal(V9fsPDU *pdu, ret = v9fs_iov_vmarshal(in_sg, num, offset, 0, fmt, ap); if (ret < 0) { xen_pv_printf(&xen_9pfs->xendev, 0, - "Failed to encode VirtFS request type %d\n", pdu->id + 1); + "Failed to encode VirtFS reply type %d\n", + pdu->id + 1); xen_be_set_state(&xen_9pfs->xendev, XenbusStateClosing); xen_9pfs_disconnect(&xen_9pfs->xendev); } @@ -201,9 +202,9 @@ static void xen_9pfs_init_in_iov_from_pdu(V9fsPDU *pdu, buf_size = iov_size(ring->sg, num); if (buf_size < P9_IOHDRSZ) { - xen_pv_printf(&xen_9pfs->xendev, 0, "Xen 9pfs request type %d" - "needs %zu bytes, buffer has %zu, less than minimum\n", - pdu->id, *size, buf_size); + xen_pv_printf(&xen_9pfs->xendev, 0, "Xen 9pfs reply type %d needs " + "%zu bytes, buffer has %zu, less than minimum\n", + pdu->id + 1, *size, buf_size); xen_be_set_state(&xen_9pfs->xendev, XenbusStateClosing); xen_9pfs_disconnect(&xen_9pfs->xendev); } From patchwork Thu Sep 3 20:58:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274616 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25FBEC43461 for ; Thu, 3 Sep 2020 21:18:42 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DBC06206CA for ; Thu, 3 Sep 2020 21:18:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="K41zXm3y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DBC06206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:45426 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwcz-0005wZ-07 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:18:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwKv-0003Ib-Ta; Thu, 03 Sep 2020 17:00:01 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:45185) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKt-0007M9-LA; Thu, 03 Sep 2020 17:00:01 -0400 Received: by mail-oi1-x244.google.com with SMTP id d189so4477635oig.12; Thu, 03 Sep 2020 13:59:58 -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=toeoNpfYSl/ElO5L5zgrTHQpTRhSexoIT3AHev1/A18=; b=K41zXm3yPtZh66GpNio+YEWXfx2h3USDuminp96CCGrnPTsjJPH7Mv+Q+v2ily4vrR VD600XticEOJmBhV7mSZUM/JdpjMuAxDZkZi6viR1glwHyrdTAbtn6uYnUeMZ5S+dgdu f9zmQGcYRr7eVMeeFncJmTFN0HIx6gLcBX7AyeKc9Imi3e0/qOsOyn4wln818Fzo/08O 2vm9fffAyKAiEPJMH1rp7PGxXbbHgHyuw/Ti8lP9H/30HmV8U3tBuQqjKPcCEQ7uzNPE WUVlx3xU+vPutCFclczIL2gCsyIRdPhwkex9KFb1gQuGn23WkaAtLQhg3R3Gqdaikivk /3RA== 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=toeoNpfYSl/ElO5L5zgrTHQpTRhSexoIT3AHev1/A18=; b=IocqSO2O7rRe9UiEv/pGu5jPQU7n8mglw+QA2DX5jUss599pBlGAQi6GzAeC428mru hznzUCKNyubQC3/ia4W8cQ/lEvSUOiAZ1uaXimKL/UFAlmuEbQOj1KcjkRCiYYtnzXXW OUHkDs8kcwfIQTyquvepyMtjWVU5YVyPnSR8D5e5zdIgXTCqWLZqmLpziCZQfivdVQOO rLHEJIiGLqLGXJ0pjHAeFf2021500qBDdaA2/Qc4/PTAxw8T2bVgVy9/T7iINApEvV1W XvcuwZS3xljjotgVo4WpevEVW3HYLRF6APLiKEf/5I9u7TODoiS5yVTwI7Q1IY66wfso KvPA== X-Gm-Message-State: AOAM533DPtdRygmtkn8XBGciVVxW2OWWWpW1N+x204y9MsdU6LqcR43d gEDXUE2WZlqylUvXRmaa1TGCcXdgSEs= X-Google-Smtp-Source: ABdhPJw49Z3GJLeQk1dhBFzMfFm9GkJSIRfSrfwMwKoSukVDGPeuLP2DD7WhDOO/2VzeQpBrasWvCQ== X-Received: by 2002:a05:6808:2d7:: with SMTP id a23mr3225672oid.51.1599166797905; Thu, 03 Sep 2020 13:59:57 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id u19sm729310oic.10.2020.09.03.13.59.57 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 13:59:57 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 14/77] Revert "9p: init_in_iov_from_pdu can truncate the size" Date: Thu, 3 Sep 2020 15:58:32 -0500 Message-Id: <20200903205935.27832-15-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , qemu-stable@nongnu.org, Greg Kurz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefano Stabellini This reverts commit 16724a173049ac29c7b5ade741da93a0f46edff7. It causes https://bugs.launchpad.net/bugs/1877688. Signed-off-by: Stefano Stabellini Reviewed-by: Christian Schoenebeck Message-Id: <20200521192627.15259-1-sstabellini@kernel.org> Signed-off-by: Greg Kurz (cherry picked from commit cf45183b718f02b1369e18c795dc51bc1821245d) Signed-off-by: Michael Roth --- hw/9pfs/9p.c | 33 +++++++++++---------------------- hw/9pfs/9p.h | 2 +- hw/9pfs/virtio-9p-device.c | 11 ++++------- hw/9pfs/xen-9p-backend.c | 15 ++++++--------- 4 files changed, 22 insertions(+), 39 deletions(-) diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c index 3301e82eb6..1b729af6e8 100644 --- a/hw/9pfs/9p.c +++ b/hw/9pfs/9p.c @@ -2103,29 +2103,22 @@ out_nofid: * with qemu_iovec_destroy(). */ static void v9fs_init_qiov_from_pdu(QEMUIOVector *qiov, V9fsPDU *pdu, - size_t skip, size_t *size, + size_t skip, size_t size, bool is_write) { QEMUIOVector elem; struct iovec *iov; unsigned int niov; - size_t alloc_size = *size + skip; if (is_write) { - pdu->s->transport->init_out_iov_from_pdu(pdu, &iov, &niov, alloc_size); + pdu->s->transport->init_out_iov_from_pdu(pdu, &iov, &niov, size + skip); } else { - pdu->s->transport->init_in_iov_from_pdu(pdu, &iov, &niov, &alloc_size); - } - - if (alloc_size < skip) { - *size = 0; - } else { - *size = alloc_size - skip; + pdu->s->transport->init_in_iov_from_pdu(pdu, &iov, &niov, size + skip); } qemu_iovec_init_external(&elem, iov, niov); qemu_iovec_init(qiov, niov); - qemu_iovec_concat(qiov, &elem, skip, *size); + qemu_iovec_concat(qiov, &elem, skip, size); } static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp, @@ -2133,14 +2126,15 @@ static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp, { ssize_t err; size_t offset = 7; - size_t read_count; + uint64_t read_count; QEMUIOVector qiov_full; if (fidp->fs.xattr.len < off) { read_count = 0; - } else if (fidp->fs.xattr.len - off < max_count) { - read_count = fidp->fs.xattr.len - off; } else { + read_count = fidp->fs.xattr.len - off; + } + if (read_count > max_count) { read_count = max_count; } err = pdu_marshal(pdu, offset, "d", read_count); @@ -2149,7 +2143,7 @@ static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp, } offset += err; - v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset, &read_count, false); + v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset, read_count, false); err = v9fs_pack(qiov_full.iov, qiov_full.niov, 0, ((char *)fidp->fs.xattr.value) + off, read_count); @@ -2278,11 +2272,9 @@ static void coroutine_fn v9fs_read(void *opaque) QEMUIOVector qiov_full; QEMUIOVector qiov; int32_t len; - size_t size = max_count; - v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset + 4, &size, false); + v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset + 4, max_count, false); qemu_iovec_init(&qiov, qiov_full.niov); - max_count = size; do { qemu_iovec_reset(&qiov); qemu_iovec_concat(&qiov, &qiov_full, count, qiov_full.size - count); @@ -2533,7 +2525,6 @@ static void coroutine_fn v9fs_write(void *opaque) int32_t len = 0; int32_t total = 0; size_t offset = 7; - size_t size; V9fsFidState *fidp; V9fsPDU *pdu = opaque; V9fsState *s = pdu->s; @@ -2546,9 +2537,7 @@ static void coroutine_fn v9fs_write(void *opaque) return; } offset += err; - size = count; - v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset, &size, true); - count = size; + v9fs_init_qiov_from_pdu(&qiov_full, pdu, offset, count, true); trace_v9fs_write(pdu->tag, pdu->id, fid, off, count, qiov_full.niov); fidp = get_fid(pdu, fid); diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h index c381fe091a..656527beb9 100644 --- a/hw/9pfs/9p.h +++ b/hw/9pfs/9p.h @@ -436,7 +436,7 @@ struct V9fsTransport { ssize_t (*pdu_vunmarshal)(V9fsPDU *pdu, size_t offset, const char *fmt, va_list ap); void (*init_in_iov_from_pdu)(V9fsPDU *pdu, struct iovec **piov, - unsigned int *pniov, size_t *size); + unsigned int *pniov, size_t size); void (*init_out_iov_from_pdu)(V9fsPDU *pdu, struct iovec **piov, unsigned int *pniov, size_t size); void (*push_and_notify)(V9fsPDU *pdu); diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c index 536447a355..f821236356 100644 --- a/hw/9pfs/virtio-9p-device.c +++ b/hw/9pfs/virtio-9p-device.c @@ -147,22 +147,19 @@ static ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, size_t offset, } static void virtio_init_in_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov, - unsigned int *pniov, size_t *size) + unsigned int *pniov, size_t size) { V9fsState *s = pdu->s; V9fsVirtioState *v = container_of(s, V9fsVirtioState, state); VirtQueueElement *elem = v->elems[pdu->idx]; size_t buf_size = iov_size(elem->in_sg, elem->in_num); - if (buf_size < P9_IOHDRSZ) { + if (buf_size < size) { VirtIODevice *vdev = VIRTIO_DEVICE(v); virtio_error(vdev, - "VirtFS reply type %d needs %zu bytes, buffer has %zu, less than minimum", - pdu->id + 1, *size, buf_size); - } - if (buf_size < *size) { - *size = buf_size; + "VirtFS reply type %d needs %zu bytes, buffer has %zu", + pdu->id + 1, size, buf_size); } *piov = elem->in_sg; diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c index f04caabfe5..fc197f6c8a 100644 --- a/hw/9pfs/xen-9p-backend.c +++ b/hw/9pfs/xen-9p-backend.c @@ -188,7 +188,7 @@ static void xen_9pfs_init_out_iov_from_pdu(V9fsPDU *pdu, static void xen_9pfs_init_in_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov, unsigned int *pniov, - size_t *size) + size_t size) { Xen9pfsDev *xen_9pfs = container_of(pdu->s, Xen9pfsDev, state); Xen9pfsRing *ring = &xen_9pfs->rings[pdu->tag % xen_9pfs->num_rings]; @@ -198,19 +198,16 @@ static void xen_9pfs_init_in_iov_from_pdu(V9fsPDU *pdu, g_free(ring->sg); ring->sg = g_new0(struct iovec, 2); - xen_9pfs_in_sg(ring, ring->sg, &num, pdu->idx, *size); + xen_9pfs_in_sg(ring, ring->sg, &num, pdu->idx, size); buf_size = iov_size(ring->sg, num); - if (buf_size < P9_IOHDRSZ) { - xen_pv_printf(&xen_9pfs->xendev, 0, "Xen 9pfs reply type %d needs " - "%zu bytes, buffer has %zu, less than minimum\n", - pdu->id + 1, *size, buf_size); + if (buf_size < size) { + xen_pv_printf(&xen_9pfs->xendev, 0, "Xen 9pfs request type %d" + "needs %zu bytes, buffer has %zu\n", pdu->id, size, + buf_size); xen_be_set_state(&xen_9pfs->xendev, XenbusStateClosing); xen_9pfs_disconnect(&xen_9pfs->xendev); } - if (buf_size < *size) { - *size = buf_size; - } *piov = ring->sg; *pniov = num; From patchwork Thu Sep 3 20:58:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274619 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E1F8CC43461 for ; Thu, 3 Sep 2020 21:15:33 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A2FE3206CA for ; Thu, 3 Sep 2020 21:15:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U1A+Ihoq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2FE3206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwZw-0000ia-Jk for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:15:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58210) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwKy-0003Nn-IL; Thu, 03 Sep 2020 17:00:04 -0400 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]:39211) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKw-0007MX-BY; Thu, 03 Sep 2020 17:00:04 -0400 Received: by mail-ot1-x32c.google.com with SMTP id u25so4008283otq.6; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=rlfytk/HxGcRvQ43QKeVZDlvKaRhllUNtWQbE6mYVCc=; b=U1A+Ihoqs14Ap+tzZ9MDJuzdSwiT12iqB4x2y0I/xN1lTnml1p4BCBFQd0pPbb9isl Rk0yhQKklzGWQkJSUCNiVbAv4tPs6Yr47szSYmeCX5azHT7g4iaRdFcfPSKa6PwASEZ0 Oj5aIuJ9NNWef0vc9MLu1lioL8WLNdr5w0fdiI0ZVDGILDovtByHD1f2arJmd47Dabgt Wb8uX9rXtLfIWSsHXT/35BwIVlt37NkMQS36HENFUpAoyg2ZlzbKXM8SJeWxs2UbG68W NhDW4WzDTTd53Vyax1PzGP2tZlyBryMUeCJrqPq1uAF7eZCITv3UqPYt1DyWgaWIPnlA tFnA== 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=rlfytk/HxGcRvQ43QKeVZDlvKaRhllUNtWQbE6mYVCc=; b=X8HaUSj6IJHCThV0YZoK8R0P6O6wuZZaOcD2ncsAtvULiPgzB0RISLRjgWXoyQh3Ng kvmAKylSIxclR3iFRsC8xdUYC2AqQa1wuGo9EIOiNWmWGJe13k9HUmrAu+ZiCPqk1B5k cun6vNW20SDOz+lYLqmBraJs4X7sfHPyvpWIHMBD3CjoxEvMyNSXm7xFXDuqPFc7DKGP VBQ9nHu2JoR+8YxRfOZ8b2/WM7GPEzO1H7CyAYS6wCotSHDuqvVwiicXYKmzByM7nnmH YktI6CO91stxGTeCN3hgnJT8fJCYxtrLMWuRJIRdQMW4o5kne4TntAKbl9wEs8GklIPi 00Mw== X-Gm-Message-State: AOAM530sAm8yLsA84mTbaXhHifLRFcUsFS2uM5TBh/imOajAXDQ9Mgu/ kBvCjjDyhU2IICBxnECTBwSdwlCWZUc= X-Google-Smtp-Source: ABdhPJzICnhV8rm0nVYYCpfU/wU6GQn/BMzRcIWxPt8YB0OMN0wG6kI5jsAd5BMBN+0kfd+d5W27eA== X-Received: by 2002:a9d:7f84:: with SMTP id t4mr3163361otp.192.1599166800161; Thu, 03 Sep 2020 14:00:00 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id a75sm709467oii.55.2020.09.03.13.59.59 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 13:59:59 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 16/77] ati-vga: check mm_index before recursive call (CVE-2020-13800) Date: Thu, 3 Sep 2020 15:58:34 -0500 Message-Id: <20200903205935.27832-17-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32c; envelope-from=flukshun@gmail.com; helo=mail-ot1-x32c.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann , qemu-stable@nongnu.org, Prasad J Pandit Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Prasad J Pandit While accessing VGA registers via ati_mm_read/write routines, a guest may set 's->regs.mm_index' such that it leads to infinite recursion. Check mm_index value to avoid such recursion. Log an error message for wrong values. Reported-by: Ren Ding Reported-by: Hanqing Zhao Reported-by: Yi Ren Message-id: 20200604090830.33885-1-ppandit@redhat.com Suggested-by: BALATON Zoltan Suggested-by: Philippe Mathieu-Daudé Signed-off-by: Prasad J Pandit Signed-off-by: Gerd Hoffmann (cherry picked from commit a98610c429d52db0937c1e48659428929835c455) Signed-off-by: Michael Roth --- hw/display/ati.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/display/ati.c b/hw/display/ati.c index 58ec8291d4..9228f1b242 100644 --- a/hw/display/ati.c +++ b/hw/display/ati.c @@ -285,8 +285,11 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size) if (idx <= s->vga.vram_size - size) { val = ldn_le_p(s->vga.vram_ptr + idx, size); } - } else { + } else if (s->regs.mm_index > MM_DATA + 3) { val = ati_mm_read(s, s->regs.mm_index + addr - MM_DATA, size); + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "ati_mm_read: mm_index too small: %u\n", s->regs.mm_index); } break; case BIOS_0_SCRATCH ... BUS_CNTL - 1: @@ -520,8 +523,11 @@ static void ati_mm_write(void *opaque, hwaddr addr, if (idx <= s->vga.vram_size - size) { stn_le_p(s->vga.vram_ptr + idx, size, data); } - } else { + } else if (s->regs.mm_index > MM_DATA + 3) { ati_mm_write(s, s->regs.mm_index + addr - MM_DATA, data, size); + } else { + qemu_log_mask(LOG_GUEST_ERROR, + "ati_mm_write: mm_index too small: %u\n", s->regs.mm_index); } break; case BIOS_0_SCRATCH ... BUS_CNTL - 1: From patchwork Thu Sep 3 20:58:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274613 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFF5FC433E2 for ; Thu, 3 Sep 2020 21:22:25 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8F436206CA for ; Thu, 3 Sep 2020 21:22:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UPQNpOEu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8F436206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:34624 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwga-0004gU-NM for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:22:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL0-0003Rn-O1; Thu, 03 Sep 2020 17:00:06 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:41867) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwKy-0007OM-MC; Thu, 03 Sep 2020 17:00:06 -0400 Received: by mail-ot1-x344.google.com with SMTP id a65so3999855otc.8; Thu, 03 Sep 2020 14:00: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=DnoLtc59NarnPTasZCly4q1/2ffMi+9W8GNcCg5WkuI=; b=UPQNpOEuzla8r0L7AyY5MczaFSat1A446PzeEO/TRqNE4LF8/4oQ+2srzALnhy+BHR qvO+5OPglTWvpkh85Nvfd4xwtvMkWy1/YHiO4CXoTGBidDFmCJuzH9DMDslBWCXk7ZvZ Xxv75cLW033W8FAZAWr5MLO9pqChKsNkunNDbojK9mn2v9xY7VYvR/zk/QmHKxE5hmLP I8DK6YzZQo5kplnucdF9vslEXrsQwS5OWJw/gBtaiKi4Rt0L6TVeokoV3J5NHbw4g4G4 nv/MaaBIVW4B4UwurqvJEt0cipBaNmwGd0oAccS+eJja9jtr/yMheEas4lXyrl7hdT4t RJYw== 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=DnoLtc59NarnPTasZCly4q1/2ffMi+9W8GNcCg5WkuI=; b=Dx6o2cfy4MgQk3vueKEAbvscQyjB7jGtzdeqnxNu1gN3KlECErT3Iogn24YM+rihP2 YEZP3tGvw5zeWgJk4eO9JcmHRHMrk1UKV4xJ2T2mcR73hASMQn8sd5OaVTmHH9kPA3Zo nmtyXNO1ROhKrbG6hE78xluLAe27cIGqy/DBXxhTUS9O9l5YcMBhWVlcRb+/Zm+FF75g bsme+4TkvqCYvcnSvALTgvo4pc8Jg8y/9qSvVkrhFQ6kaUVhLJ/Fq8r1YBzBaAPsP+4S 2owz6yjyw8fKlVgxBp5Q+ak1VSAqess6lep1aWHVfHQM6CKT4jOQdE8Tu7s8arvoB1xb G8eA== X-Gm-Message-State: AOAM530id3KpFXKpXLdMW53fZKNMgcEjM834PoprkJ0t8Y8UnzOi2Ae3 QsoWIgVtQ0TRKOOZP92uVaA90i2CMZY= X-Google-Smtp-Source: ABdhPJyde/+tNfRJ3SeIhbX+MNu9dZC6NZHTJ7EcMqaFtXs1RkFocV91elsja5/9USme1ZEI52lPcg== X-Received: by 2002:a05:6830:2141:: with SMTP id r1mr2963428otd.314.1599166802781; Thu, 03 Sep 2020 14:00:02 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id a2sm820168ooo.26.2020.09.03.14.00.02 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:02 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 18/77] Fix tulip breakage Date: Thu, 3 Sep 2020 15:58:36 -0500 Message-Id: <20200903205935.27832-19-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=flukshun@gmail.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jason Wang , Helge Deller , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Helge Deller The tulip network driver in a qemu-system-hppa emulation is broken in the sense that bigger network packages aren't received any longer and thus even running e.g. "apt update" inside the VM fails. The breakage was introduced by commit 8ffb7265af ("check frame size and r/w data length") which added checks to prevent accesses outside of the rx/tx buffers. But the new checks were implemented wrong. The variable rx_frame_len counts backwards, from rx_frame_size down to zero, and the variable len is never bigger than rx_frame_len, so accesses just can't happen and the checks are unnecessary. On the contrary the checks now prevented bigger packages to be moved into the rx buffers. This patch reverts the wrong checks and were sucessfully tested with a qemu-system-hppa emulation. Fixes: 8ffb7265af ("check frame size and r/w data length") Buglink: https://bugs.launchpad.net/bugs/1874539 Signed-off-by: Helge Deller Signed-off-by: Jason Wang (cherry picked from commit d9b69640391618045949f7c500b87fc129f862ed) Signed-off-by: Michael Roth --- hw/net/tulip.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hw/net/tulip.c b/hw/net/tulip.c index 1295f51d07..44db56447c 100644 --- a/hw/net/tulip.c +++ b/hw/net/tulip.c @@ -171,9 +171,6 @@ static void tulip_copy_rx_bytes(TULIPState *s, struct tulip_descriptor *desc) len = s->rx_frame_len; } - if (s->rx_frame_len + len > sizeof(s->rx_frame)) { - return; - } pci_dma_write(&s->dev, desc->buf_addr1, s->rx_frame + (s->rx_frame_size - s->rx_frame_len), len); s->rx_frame_len -= len; @@ -186,9 +183,6 @@ static void tulip_copy_rx_bytes(TULIPState *s, struct tulip_descriptor *desc) len = s->rx_frame_len; } - if (s->rx_frame_len + len > sizeof(s->rx_frame)) { - return; - } pci_dma_write(&s->dev, desc->buf_addr2, s->rx_frame + (s->rx_frame_size - s->rx_frame_len), len); s->rx_frame_len -= len; From patchwork Thu Sep 3 20:58:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274617 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89E64C43461 for ; Thu, 3 Sep 2020 21:17:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4B9E4206CA for ; Thu, 3 Sep 2020 21:17:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H6HgUhoH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4B9E4206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:41028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwc8-00049s-DZ for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:17:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL3-0003X5-2s; Thu, 03 Sep 2020 17:00:09 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:45784) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL1-0007Pl-1Y; Thu, 03 Sep 2020 17:00:08 -0400 Received: by mail-oi1-x235.google.com with SMTP id d189so4477963oig.12; Thu, 03 Sep 2020 14:00: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=OIsdyV2PRysNfY7ypO8eiajhFecOTZcFODPU4qiwxp8=; b=H6HgUhoHtv7MNe8tt7gWCEWnsJ1mX23d3zM819/uHRaWj0MguMhnTp+FzcwsiZAb6I 3i4F0yjUdkPcsLgb+ahksZd1o2U2OOWVCnpFvOdzsfjhGbhnFv8oe+cs/D3RVD7oM79B NLuAzBVU7nXj9yZQ0QPtCUjaAW7PtQM03+CJd1zoFXd/hTRaZ4a7UDyqA+GiI3t3b7C6 JCHXf6AqKsNR9QWIIc4R6xYtJovbHFFC0hhxysFDgGLOP65YGtYes4tE/WcQByN9sOxA auvI4gBkqvxGyActzKeIYh0itCvz3yJDiJn2EQWs5w+odLHyweRL7W2G4UHWOhxm3XYi uTUQ== 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=OIsdyV2PRysNfY7ypO8eiajhFecOTZcFODPU4qiwxp8=; b=qFdt8Fmrl2tYpB4m2oCA0VHbu4KKEwJ3WSBP0AFR6M6T3mr6/jIeJTHYbWmZ4f6Vzv PxiqFPBy0qPrQLk6704uc3I+71fNLPLUQyQzSrjc6NF9npwyQtEHJGn1pWetG6eQwbgk etPJziTqELeTvj9vJtVTpGpt1TZqZdfPyCyoNpPzHyS3IllFKlKZNbzVUm1TtlKWlM3a cTig2d50qF4gPYym4Q2qcxVdA3nmYm/3yPLoJxZ48unN+Z4JhIKunGWYXCv7O/lrAcGC tIKqBBv2RSDiGMMdggHdxmsGgqtbgFfSI3vf0tOr4MeoEZrYzF03azNlxrToVlyahhx+ hL6w== X-Gm-Message-State: AOAM531xGgJIANXfzeHvkCgteR52JbFWvPvwyh3n4kFXLIpsGO428hQU EkV6O6e1d5EkML0UdIacsk7yTLY30CI= X-Google-Smtp-Source: ABdhPJzs7wuKr4APG+r+H6rf/qU3oa+gQO+n5Pc1FoKe7AieBIacr4qorEJZx0imRNUMkvHMjqZ9zA== X-Received: by 2002:aca:bc57:: with SMTP id m84mr3224265oif.14.1599166805140; Thu, 03 Sep 2020 14:00:05 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l136sm733495oig.7.2020.09.03.14.00.04 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:04 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 20/77] virtiofsd: add --rlimit-nofile=NUM option Date: Thu, 3 Sep 2020 15:58:38 -0500 Message-Id: <20200903205935.27832-21-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=flukshun@gmail.com; helo=mail-oi1-x235.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Stefan Hajnoczi , "Dr . David Alan Gilbert" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefan Hajnoczi Make it possible to specify the RLIMIT_NOFILE on the command-line. Users running multiple virtiofsd processes should allocate a certain number to each process so that the system-wide limit can never be exhausted. When this option is set to 0 the rlimit is left at its current value. This is useful when a management tool wants to configure the rlimit itself. The default behavior remains unchanged: try to set the limit to 1,000,000 file descriptors if the current rlimit is lower. Signed-off-by: Stefan Hajnoczi Reviewed-by: Dr. David Alan Gilbert Message-Id: <20200501140644.220940-2-stefanha@redhat.com> Signed-off-by: Dr. David Alan Gilbert (cherry picked from commit 6dbb716877728ce4eb51619885ef6ef4ada9565f) Signed-off-by: Michael Roth --- tools/virtiofsd/fuse_lowlevel.h | 1 + tools/virtiofsd/helper.c | 23 +++++++++++++++++++++++ tools/virtiofsd/passthrough_ll.c | 22 ++++++++-------------- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/tools/virtiofsd/fuse_lowlevel.h b/tools/virtiofsd/fuse_lowlevel.h index 8f6d705b5c..562fd5241e 100644 --- a/tools/virtiofsd/fuse_lowlevel.h +++ b/tools/virtiofsd/fuse_lowlevel.h @@ -1777,6 +1777,7 @@ struct fuse_cmdline_opts { int syslog; int log_level; unsigned int max_idle_threads; + unsigned long rlimit_nofile; }; /** diff --git a/tools/virtiofsd/helper.c b/tools/virtiofsd/helper.c index 819c2bc13c..dc59f38af0 100644 --- a/tools/virtiofsd/helper.c +++ b/tools/virtiofsd/helper.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #define FUSE_HELPER_OPT(t, p) \ @@ -53,6 +55,7 @@ static const struct fuse_opt fuse_helper_opts[] = { FUSE_HELPER_OPT("subtype=", nodefault_subtype), FUSE_OPT_KEY("subtype=", FUSE_OPT_KEY_KEEP), FUSE_HELPER_OPT("max_idle_threads=%u", max_idle_threads), + FUSE_HELPER_OPT("--rlimit-nofile=%lu", rlimit_nofile), FUSE_HELPER_OPT("--syslog", syslog), FUSE_HELPER_OPT_VALUE("log_level=debug", log_level, FUSE_LOG_DEBUG), FUSE_HELPER_OPT_VALUE("log_level=info", log_level, FUSE_LOG_INFO), @@ -171,6 +174,9 @@ void fuse_cmdline_help(void) " default: no_writeback\n" " -o xattr|no_xattr enable/disable xattr\n" " default: no_xattr\n" + " --rlimit-nofile= set maximum number of file descriptors\n" + " (0 leaves rlimit unchanged)\n" + " default: 1,000,000 if the current rlimit is lower\n" ); } @@ -191,11 +197,28 @@ static int fuse_helper_opt_proc(void *data, const char *arg, int key, } } +static unsigned long get_default_rlimit_nofile(void) +{ + rlim_t max_fds = 1000000; /* our default RLIMIT_NOFILE target */ + struct rlimit rlim; + + if (getrlimit(RLIMIT_NOFILE, &rlim) < 0) { + fuse_log(FUSE_LOG_ERR, "getrlimit(RLIMIT_NOFILE): %m\n"); + exit(1); + } + + if (rlim.rlim_cur >= max_fds) { + return 0; /* we have more fds available than required! */ + } + return max_fds; +} + int fuse_parse_cmdline(struct fuse_args *args, struct fuse_cmdline_opts *opts) { memset(opts, 0, sizeof(struct fuse_cmdline_opts)); opts->max_idle_threads = 10; + opts->rlimit_nofile = get_default_rlimit_nofile(); opts->foreground = 1; if (fuse_opt_parse(args, opts, fuse_helper_opts, fuse_helper_opt_proc) == diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c index 4c35c95b25..f7b9c1d20c 100644 --- a/tools/virtiofsd/passthrough_ll.c +++ b/tools/virtiofsd/passthrough_ll.c @@ -2707,24 +2707,18 @@ static void setup_sandbox(struct lo_data *lo, struct fuse_session *se, setup_seccomp(enable_syslog); } -/* Raise the maximum number of open file descriptors */ -static void setup_nofile_rlimit(void) +/* Set the maximum number of open file descriptors */ +static void setup_nofile_rlimit(unsigned long rlimit_nofile) { - const rlim_t max_fds = 1000000; - struct rlimit rlim; - - if (getrlimit(RLIMIT_NOFILE, &rlim) < 0) { - fuse_log(FUSE_LOG_ERR, "getrlimit(RLIMIT_NOFILE): %m\n"); - exit(1); - } + struct rlimit rlim = { + .rlim_cur = rlimit_nofile, + .rlim_max = rlimit_nofile, + }; - if (rlim.rlim_cur >= max_fds) { + if (rlimit_nofile == 0) { return; /* nothing to do */ } - rlim.rlim_cur = max_fds; - rlim.rlim_max = max_fds; - if (setrlimit(RLIMIT_NOFILE, &rlim) < 0) { /* Ignore SELinux denials */ if (errno == EPERM) { @@ -2977,7 +2971,7 @@ int main(int argc, char *argv[]) fuse_daemonize(opts.foreground); - setup_nofile_rlimit(); + setup_nofile_rlimit(opts.rlimit_nofile); /* Must be before sandbox since it wants /proc */ setup_capng(); From patchwork Thu Sep 3 20:58:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274615 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6247BC43461 for ; Thu, 3 Sep 2020 21:19:59 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 243FF206CA for ; Thu, 3 Sep 2020 21:19:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YVmjv4JT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 243FF206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDweE-0007xB-4t for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:19:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58380) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL6-0003fV-Hi; Thu, 03 Sep 2020 17:00:12 -0400 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:33048) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL4-0007Qq-PH; Thu, 03 Sep 2020 17:00:12 -0400 Received: by mail-oi1-x242.google.com with SMTP id 3so4556972oih.0; Thu, 03 Sep 2020 14:00: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=Ao54A2l3sEDR87eadYmmagGboLEhBAQddrGqeoropng=; b=YVmjv4JTEGL/h+upO6IEHC9LgSD2LGBd3A+olh3cyamWjlDE/gYCRbuyeH9dIJE22y BwmX18z/mn886P3Zlmx+69kQmLy7DQHSassAx59XW1DJkAnkYRzj/23w2QpOqO9emK0K 7DdAX7ZPV/q/OmXDH+on4+fVTqZx0nWsVucEc4RFa4HyAAQQV0XaIzNXAVpFfK11vb3v Je/aQkTK1gossZzcNAs34dLnxBrAagjO6wtkSQlfgYbR1sTxXy98OZcdTzOsj1xNeKGL IVL+rpxn8vjsoYLG+DO5JiyxUCM4u4f9dBqdtAQQYnANhnb6MI5A2zAwCMajmeRd6JAw Nv6g== 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=Ao54A2l3sEDR87eadYmmagGboLEhBAQddrGqeoropng=; b=rnIYxOrUo/HqHbCM/0lArYQzNsDOVfEUnXxKrW53G3bfx5QQfiSGE17RJuVc5HXf5T Id3JNpXWOSgg0UFBe2L2S18c7LDS4DfC0xSDu8tj7jUUcQJGQmDCjUN6+3lUwURo2Tzd QX92xamv2mH33HvuBTENCbbpUXS3HkP06dxUIaNQ3tUN63x66d6toKMRgEEHff6SFUV+ fUdQoKWIf7j4d33wH+QX4WRIgTOU1AYcnMo6HKKrrvKThfzm/Xj7sQ1PL1rTXqAsAV3s gmOwusmPLyluX3t4tFejQSUx4Hr6ei7hZYp7pX+TqUQVbkP580xnQCK0HMj1ZTjCJ36h aFxA== X-Gm-Message-State: AOAM530fN2YzK0pviU+fTIfPlCg6a3lKksjsgH4LWJkaM24UnXkGule8 FkmIw3HFs6tyk9YW0qW1jyztHme/pHY= X-Google-Smtp-Source: ABdhPJxERucEeDRW5rSOp26hNeioQKx56W85NQY1JaYp/plQk11AdrrsPd+5n2lpZwdrrdxchp0tEQ== X-Received: by 2002:aca:5e82:: with SMTP id s124mr3171775oib.168.1599166809004; Thu, 03 Sep 2020 14:00:09 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id d26sm601073otl.10.2020.09.03.14.00.08 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:08 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 22/77] net: use peer when purging queue in qemu_flush_or_purge_queue_packets() Date: Thu, 3 Sep 2020 15:58:40 -0500 Message-Id: <20200903205935.27832-23-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::242; envelope-from=flukshun@gmail.com; helo=mail-oi1-x242.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jason Wang , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Jason Wang The sender of packet will be checked in the qemu_net_queue_purge() but we use NetClientState not its peer when trying to purge the incoming queue in qemu_flush_or_purge_packets(). This will trigger the assert in virtio_net_reset since we can't pass the sender check: hw/net/virtio-net.c:533: void virtio_net_reset(VirtIODevice *): Assertion `!virtio_net_get_subqueue(nc)->async_tx.elem' failed. #9 0x55a33fa31b78 in virtio_net_reset hw/net/virtio-net.c:533:13 #10 0x55a33fc88412 in virtio_reset hw/virtio/virtio.c:1919:9 #11 0x55a341d82764 in virtio_bus_reset hw/virtio/virtio-bus.c:95:9 #12 0x55a341dba2de in virtio_pci_reset hw/virtio/virtio-pci.c:1824:5 #13 0x55a341db3e02 in virtio_pci_common_write hw/virtio/virtio-pci.c:1252:13 #14 0x55a33f62117b in memory_region_write_accessor memory.c:496:5 #15 0x55a33f6205e4 in access_with_adjusted_size memory.c:557:18 #16 0x55a33f61e177 in memory_region_dispatch_write memory.c:1488:16 Reproducer: https://www.mail-archive.com/qemu-devel@nongnu.org/msg701914.html Fix by using the peer. Reported-by: "Alexander Bulekov" Acked-by: Alexander Bulekov Fixes: ca77d85e1dbf9 ("net: complete all queued packets on VM stop") Cc: qemu-stable@nongnu.org Signed-off-by: Jason Wang (cherry picked from commit 5fe19fb81839ea42b592b409f725349cf3c73551) Signed-off-by: Michael Roth --- net/net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/net.c b/net/net.c index cbeeeadff8..4c62b10acd 100644 --- a/net/net.c +++ b/net/net.c @@ -610,7 +610,7 @@ void qemu_flush_or_purge_queued_packets(NetClientState *nc, bool purge) qemu_notify_event(); } else if (purge) { /* Unable to empty the queue, purge remaining packets */ - qemu_net_queue_purge(nc->incoming_queue, nc); + qemu_net_queue_purge(nc->incoming_queue, nc->peer); } } From patchwork Thu Sep 3 20:58:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274624 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42672C433E2 for ; Thu, 3 Sep 2020 21:07:34 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F36FB20709 for ; Thu, 3 Sep 2020 21:07:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Xh5MWP8M" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F36FB20709 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33718 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwSD-0006Ef-5R for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:07:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58414) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL8-0003jY-EQ; Thu, 03 Sep 2020 17:00:14 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:46522) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL6-0007RB-IP; Thu, 03 Sep 2020 17:00:13 -0400 Received: by mail-ot1-x343.google.com with SMTP id c10so3973471otm.13; Thu, 03 Sep 2020 14:00: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=Zl94h+JEwFYHtOa8NK8LtKSrwdxSjFyOtdM3NqVIwV8=; b=Xh5MWP8MW/HvNcD9TwlDOk51UAS4Jt/YKgfbXABNKvIGkaXmcRqJs5LmOPKDWMW+Mb gwdk8EAtEvcjC9xNqwOUp8h7Xz0e206cbmd7gH3gKOMfTfphwaWjqk68U5tjuNL4Sr3x QgqlubfkZ7KT1CgsJdVIa41A+6UvZDU9EmQ0Imm8/p8APBXLdukRxG+SOba3su/MlY3a qYqokwsKeXZgIUKsIiAOki3rsz6rGZeDPrEyNw+trATuDYyWSnr2Zt1zT5/gwaO1aNul B3cX7D+xVHs8mHt9NUeTUkqoXXCCaf/GGnGczE72xqejEGOrnuJAZfnMTfShmEullInq /z8g== 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=Zl94h+JEwFYHtOa8NK8LtKSrwdxSjFyOtdM3NqVIwV8=; b=ELW+xjt8P8Utycc0T3m+Jok9PI/2BVOXrd3b8heeOyiaC8XFHs2qsF0Z06BrUb16So R6VRmgbbvRscqbi3YqLdGY2qg9Lx5pu45Z3NePGun8fEtPgkhRSgnPZp1vRdX7Q3B/ea 6gqCr7bTT8nu7ggrDIbRTQFyC3grMn3oXtJlXNWIR7ejSoKPbrWJZuy7AkhSrqy1rOWQ JZx51t4up2eVBLoV58LKiXlC9CQHkXU7rlMc4boPz2JHfbEOYElvTpqY3rUHtjl45yu9 uK1KcJiTb3wP1aGkRmlGsQkgLOkOTp3G9NMkV7RilduLaxfo1TpLTcCImZnwdxLoxhj8 K61w== X-Gm-Message-State: AOAM531atdUa4tElEgVqjudVw485xeO8Qit2aB9/iUpghpLqDi9ezCWn m9P6VzfEsJeZF09PTrz/7l//JFzUNro= X-Google-Smtp-Source: ABdhPJxDTnOLfoq67xc1VrZXc9OEErwBbHmUTOeU0jbI5ygkWlfbHXRnq0EVOBHcdTJsHHzIIdi23g== X-Received: by 2002:a05:6830:19ee:: with SMTP id t14mr3082333ott.171.1599166810293; Thu, 03 Sep 2020 14:00:10 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id w125sm710943oia.57.2020.09.03.14.00.09 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:09 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 23/77] KVM: x86: believe what KVM says about WAITPKG Date: Thu, 3 Sep 2020 15:58:41 -0500 Message-Id: <20200903205935.27832-24-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Paolo Bonzini Currently, QEMU is overriding KVM_GET_SUPPORTED_CPUID's answer for the WAITPKG bit depending on the "-overcommit cpu-pm" setting. This is a bad idea because it does not even check if the host supports it, but it can be done in x86_cpu_realizefn just like we do for the MONITOR bit. This patch moves it there, while making it conditional on host support for the related UMWAIT MSR. Cc: qemu-stable@nongnu.org Reported-by: Maxim Levitsky Signed-off-by: Paolo Bonzini (cherry picked from commit e1e43813e7908b063938a3d01f172f88f6190c80) Signed-off-by: Michael Roth --- target/i386/cpu.c | 3 +++ target/i386/kvm.c | 11 +++++------ target/i386/kvm_i386.h | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 90ffc5f3b1..471db0724f 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6491,6 +6491,9 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) host_cpuid(5, 0, &cpu->mwait.eax, &cpu->mwait.ebx, &cpu->mwait.ecx, &cpu->mwait.edx); env->features[FEAT_1_ECX] |= CPUID_EXT_MONITOR; + if (kvm_enabled() && kvm_has_waitpkg()) { + env->features[FEAT_7_0_ECX] |= CPUID_7_0_ECX_WAITPKG; + } } if (kvm_enabled() && cpu->ucode_rev == 0) { cpu->ucode_rev = kvm_arch_get_supported_msr_feature(kvm_state, diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 4901c6dd74..f9c873bcad 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -407,12 +407,6 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function, if (host_tsx_blacklisted()) { ret &= ~(CPUID_7_0_EBX_RTM | CPUID_7_0_EBX_HLE); } - } else if (function == 7 && index == 0 && reg == R_ECX) { - if (enable_cpu_pm) { - ret |= CPUID_7_0_ECX_WAITPKG; - } else { - ret &= ~CPUID_7_0_ECX_WAITPKG; - } } else if (function == 7 && index == 0 && reg == R_EDX) { /* * Linux v4.17-v4.20 incorrectly return ARCH_CAPABILITIES on SVM hosts. @@ -4678,3 +4672,8 @@ int kvm_arch_msi_data_to_gsi(uint32_t data) { abort(); } + +bool kvm_has_waitpkg(void) +{ + return has_msr_umwait; +} diff --git a/target/i386/kvm_i386.h b/target/i386/kvm_i386.h index 00bde7acaf..064b8798a2 100644 --- a/target/i386/kvm_i386.h +++ b/target/i386/kvm_i386.h @@ -44,6 +44,7 @@ void kvm_put_apicbase(X86CPU *cpu, uint64_t value); bool kvm_enable_x2apic(void); bool kvm_has_x2apic_api(void); +bool kvm_has_waitpkg(void); bool kvm_hv_vpindex_settable(void); From patchwork Thu Sep 3 20:58:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274604 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DA53C43461 for ; Thu, 3 Sep 2020 21:30:06 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5B83C206CA for ; Thu, 3 Sep 2020 21:30:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tDCvC9jp" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B83C206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:41016 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwo1-0002Y4-Ap for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:30:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58456) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwL9-0003nF-RX; Thu, 03 Sep 2020 17:00:15 -0400 Received: from mail-oo1-xc43.google.com ([2607:f8b0:4864:20::c43]:34286) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL7-0007RQ-9M; Thu, 03 Sep 2020 17:00:15 -0400 Received: by mail-oo1-xc43.google.com with SMTP id k63so1134591oob.1; Thu, 03 Sep 2020 14:00: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=G4FtznJiI3bIZt9XXorrUG/m7EUVyV0wnG1XwMDDxC8=; b=tDCvC9jpTzxhbzzF3UA4RaxA2NnpMC9rhgAdfeUV9aIeNNUWhhXBm8DiMY+OGsZwQl KQHfh+IwV+5DJ7o92Al0B5n5x8z5I4uFqlu+6AbmthVS486gV1jBcv6PtXsCKS/Qr6rp U1olNh6pBi5xH/6zfT8MpI2Sb/yv11NkAwrzCASrzE00oKplfFDe0zvC0hwwKCIepmc6 SmjdbbhMl2YEEG1CDrrOOewKR652KoF2d8n4t7ije+Hg++X9AR3eij+7lGpR4jWeupeV bSj+C9Vq6JYREN8eBTaXTYjP7/udt/XX7DS59eKPNqqsHSpYl8md7t3077+gQNYlFCxw EL8A== 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=G4FtznJiI3bIZt9XXorrUG/m7EUVyV0wnG1XwMDDxC8=; b=ZczYajC1InT7At7m3Xw6r28fyVYSQ3T5YFSzyvS5MWas0TruwdHIEYnC+7NhXJPAza y0oKaodOUknQj3Plbd2G858modWmMkD/DTE2vEt2i8q6TTXFIAd6CQl4ehQnFQ9XYDbO Ggu0C85IcR8+yxMTwwln6C+WSLzDwZbURP59/dUQgk2yIFyCMC3nltpCzbabPaqLkANg qxY1PwNYVdKFsvs5z5D8ePAN519d13P2HOHtsvt0RRU9oxxJQN5M51dP0S+/rdtP7IVB kNdJFTeHhNyTIMSunzdcKeu6iQrD6KFNba8apBLxNJ87w9MlsJDre5xS0SOD9SyflGJ0 kirA== X-Gm-Message-State: AOAM530GMHPYIUu1GHAfJQuHyOWR6XPidx7mIs77i3RYt/HUNXbwRbwG Nf+eK9cwKYk0UsiSdatziHCaMuj8kio= X-Google-Smtp-Source: ABdhPJz3XtAG4yS2UyPAD2NPlOM3Exkq9aY9AfN0Rsrnfwa3uFU3uEicz0IPBkPaaPHqvxqqprHEZQ== X-Received: by 2002:a4a:bb05:: with SMTP id f5mr3354000oop.5.1599166811194; Thu, 03 Sep 2020 14:00:11 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id k18sm766595otj.55.2020.09.03.14.00.10 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:10 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 24/77] aio-posix: don't duplicate fd handler deletion in fdmon_io_uring_destroy() Date: Thu, 3 Sep 2020 15:58:42 -0500 Message-Id: <20200903205935.27832-25-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c43; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc43.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Stefan Hajnoczi Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefan Hajnoczi The io_uring file descriptor monitoring implementation has an internal list of fd handlers that are pending submission to io_uring. fdmon_io_uring_destroy() deletes all fd handlers on the list. Don't delete fd handlers directly in fdmon_io_uring_destroy() for two reasons: 1. This duplicates the aio-posix.c AioHandler deletion code and could become outdated if the struct changes. 2. Only handlers with the FDMON_IO_URING_REMOVE flag set are safe to remove. If the flag is not set then something still has a pointer to the fd handler. Let aio-posix.c and its user worry about that. In practice this isn't an issue because fdmon_io_uring_destroy() is only called when shutting down so all users have removed their fd handlers, but the next patch will need this! Signed-off-by: Stefan Hajnoczi Tested-by: Oleksandr Natalenko Message-id: 20200511183630.279750-2-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi (cherry picked from commit de137e44f75d9868f5b548638081850f6ac771f2) Signed-off-by: Michael Roth --- util/aio-posix.c | 1 + util/fdmon-io_uring.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/util/aio-posix.c b/util/aio-posix.c index c3613d299e..8af334ab19 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -679,6 +679,7 @@ void aio_context_destroy(AioContext *ctx) { fdmon_io_uring_destroy(ctx); fdmon_epoll_disable(ctx); + aio_free_deleted_handlers(ctx); } void aio_context_set_poll_params(AioContext *ctx, int64_t max_ns, diff --git a/util/fdmon-io_uring.c b/util/fdmon-io_uring.c index d5a80ed6fb..1d14177df0 100644 --- a/util/fdmon-io_uring.c +++ b/util/fdmon-io_uring.c @@ -342,11 +342,18 @@ void fdmon_io_uring_destroy(AioContext *ctx) io_uring_queue_exit(&ctx->fdmon_io_uring); - /* No need to submit these anymore, just free them. */ + /* Move handlers due to be removed onto the deleted list */ while ((node = QSLIST_FIRST_RCU(&ctx->submit_list))) { + unsigned flags = atomic_fetch_and(&node->flags, + ~(FDMON_IO_URING_PENDING | + FDMON_IO_URING_ADD | + FDMON_IO_URING_REMOVE)); + + if (flags & FDMON_IO_URING_REMOVE) { + QLIST_INSERT_HEAD_RCU(&ctx->deleted_aio_handlers, node, node_deleted); + } + QSLIST_REMOVE_HEAD_RCU(&ctx->submit_list, node_submitted); - QLIST_REMOVE(node, node); - g_free(node); } ctx->fdmon_ops = &fdmon_poll_ops; From patchwork Thu Sep 3 20:58:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274609 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04450C433E2 for ; Thu, 3 Sep 2020 21:26:50 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B8D4E206CA for ; Thu, 3 Sep 2020 21:26:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jeC5bky8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B8D4E206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:53832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwkq-0004eK-S2 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:26:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLA-0003pR-EB; Thu, 03 Sep 2020 17:00:16 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:34043) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL8-0007Sj-CI; Thu, 03 Sep 2020 17:00:15 -0400 Received: by mail-ot1-x344.google.com with SMTP id h17so3207875otr.1; Thu, 03 Sep 2020 14:00: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=3SuwZW28eAjJ3YWBTzrGv938b6MDi9p5c1iamVmgVTs=; b=jeC5bky8i6iuk9jTkRdmcsM7MPX4//PdxWYf0UrMhtLcNDBFofCqLrGeeYfb4nlRd/ VHWa+QAiJdFXz6V5HnQdM/XHSGbM60QV4Y0f4cp/aLdmGJNovsrgFChTHQ94cpxu+lAS qVQJkq/a/LdkKx1JCeoTIME6ovIph3nxrokvtwxnAJhk14wChuuy9PWAur1MHQgHXIWS lE6B0o405c9R2j4bVwKKl1WpbSdEchokLpZrbTqyxtW1CK+ecTNu/uZ/EPjVp8DEDE5U ixwwwVJLx76lohrOhoKQprWSm0szhlD0Cbiiaii3k43KoIob3oPLU62OZE5oHmx0gpql 5PXg== 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=3SuwZW28eAjJ3YWBTzrGv938b6MDi9p5c1iamVmgVTs=; b=i3fMOhjMEHRxjjQ3UQ3RACN7wYpxW7htsmAh9TpeAUUOOsfbojv1E2QKi9G5c4lJa4 CCSHJpBG+V3ZeDf/xzGAGWzdVuJgLNBVoc4xq0WizMUMIOQ6sl610L5sFI3Dt9WpdC5L wIfwXaQp99wyExd00sNU4+lcvlKSdAXaS7EH/hw3BQ0nHx1dDYLhwsFqmJfJ1KhGLptW JSygj1pBErPgHsrMIe9UangT7EieQsqx4TGsKsx2eEDTcbVmX9XF8o8IJn7J03/BSB/5 sd0S0nBai2px98d9VcstrcROvE56Xqjsf90u7R+c32D/E3zruDXFJRWTqrQxn897jEAd mc1g== X-Gm-Message-State: AOAM533ie7ivFLw48qdy8TLoZGz0z/zRX7qeTzHCplUgyvTPFY3ksZIk /wjT13c4mVcxmU83yIe3m19RI8zhtnE= X-Google-Smtp-Source: ABdhPJxlBge35zxuhUGxEOkO3ktrro7su289ePXOBdgPTNUFvl6IpxX3+XvnnjyYTb+P3tex3KfC4g== X-Received: by 2002:a9d:6c98:: with SMTP id c24mr3097488otr.208.1599166812398; Thu, 03 Sep 2020 14:00:12 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id z17sm836651oop.15.2020.09.03.14.00.11 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:11 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 25/77] aio-posix: disable fdmon-io_uring when GSource is used Date: Thu, 3 Sep 2020 15:58:43 -0500 Message-Id: <20200903205935.27832-26-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=flukshun@gmail.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Stefan Hajnoczi Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefan Hajnoczi The glib event loop does not call fdmon_io_uring_wait() so fd handlers waiting to be submitted build up in the list. There is no benefit is using io_uring when the glib GSource is being used, so disable it instead of implementing a more complex fix. This fixes a memory leak where AioHandlers would build up and increasing amounts of CPU time were spent iterating them in aio_pending(). The symptom is that guests become slow when QEMU is built with io_uring support. Buglink: https://bugs.launchpad.net/qemu/+bug/1877716 Fixes: 73fd282e7b6dd4e4ea1c3bbb3d302c8db51e4ccf ("aio-posix: add io_uring fd monitoring implementation") Signed-off-by: Stefan Hajnoczi Tested-by: Oleksandr Natalenko Message-id: 20200511183630.279750-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi (cherry picked from commit ba607ca8bff4d2c2062902f8355657c865ac7c29) Signed-off-by: Michael Roth --- include/block/aio.h | 3 +++ util/aio-posix.c | 12 ++++++++++++ util/aio-win32.c | 4 ++++ util/async.c | 1 + 4 files changed, 20 insertions(+) diff --git a/include/block/aio.h b/include/block/aio.h index 62ed954344..b2f703fa3f 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -701,6 +701,9 @@ void aio_context_setup(AioContext *ctx); */ void aio_context_destroy(AioContext *ctx); +/* Used internally, do not call outside AioContext code */ +void aio_context_use_g_source(AioContext *ctx); + /** * aio_context_set_poll_params: * @ctx: the aio context diff --git a/util/aio-posix.c b/util/aio-posix.c index 8af334ab19..1b2a3af65b 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -682,6 +682,18 @@ void aio_context_destroy(AioContext *ctx) aio_free_deleted_handlers(ctx); } +void aio_context_use_g_source(AioContext *ctx) +{ + /* + * Disable io_uring when the glib main loop is used because it doesn't + * support mixed glib/aio_poll() usage. It relies on aio_poll() being + * called regularly so that changes to the monitored file descriptors are + * submitted, otherwise a list of pending fd handlers builds up. + */ + fdmon_io_uring_destroy(ctx); + aio_free_deleted_handlers(ctx); +} + void aio_context_set_poll_params(AioContext *ctx, int64_t max_ns, int64_t grow, int64_t shrink, Error **errp) { diff --git a/util/aio-win32.c b/util/aio-win32.c index 729d533faf..953c56ab48 100644 --- a/util/aio-win32.c +++ b/util/aio-win32.c @@ -414,6 +414,10 @@ void aio_context_destroy(AioContext *ctx) { } +void aio_context_use_g_source(AioContext *ctx) +{ +} + void aio_context_set_poll_params(AioContext *ctx, int64_t max_ns, int64_t grow, int64_t shrink, Error **errp) { diff --git a/util/async.c b/util/async.c index 3165a28f2f..1319eee3bc 100644 --- a/util/async.c +++ b/util/async.c @@ -362,6 +362,7 @@ static GSourceFuncs aio_source_funcs = { GSource *aio_get_g_source(AioContext *ctx) { + aio_context_use_g_source(ctx); g_source_ref(&ctx->source); return &ctx->source; } From patchwork Thu Sep 3 20:58:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274606 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA895C433E2 for ; Thu, 3 Sep 2020 21:28:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8D903206CA for ; Thu, 3 Sep 2020 21:28:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CeOl9TTu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D903206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33848 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwmh-00081A-OM for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:28:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLB-0003ry-Dg; Thu, 03 Sep 2020 17:00:17 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:44047) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwL9-0007Ui-KI; Thu, 03 Sep 2020 17:00:17 -0400 Received: by mail-ot1-x343.google.com with SMTP id a2so3980736otr.11; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=RtiowuAQkv312A5ys7+EMqL5vJk41pvA+ri5Ve8MLsg=; b=CeOl9TTuwTND8XKf4EXTnn841voh1MBgCRSGyn0h4uom/ihjf+XoLYcAyE3kV8uejO swgrw8Y7eJyHc+3+hh8N5AVWI7DXvPYApjSYrmHMiJRuFqyoxzj8IUMl8xKx8fGDMCBi sg7UvA11lE9hh+W2jiiWSYgF7scl0cbaDrpNeKqThOnap4knvhqF/Q5gpIyzxfrkAPxt BiizcxGi9UBmdqN02jWW67MLjhZdYY/nsAcrL4aGyBRtmjJosHwM2Oriz9on0eM8XtSu xRzzXKnr/EOHaOGEItgT2dF15QPnZyEmdopI7DYu+lfmNc0jKQDRPALkcdX4tFPZ2jnT E0CQ== 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=RtiowuAQkv312A5ys7+EMqL5vJk41pvA+ri5Ve8MLsg=; b=SoedIv8Nx5bQ6bh5n1Hsf1n9hEo9DUQjVFCrszG1vKcm0YsM+tZp54J8Vp1xaOE6+v 0mHEBRX+1OJGOGPJNka9kwZHMs841JLcoR5gt+VkKs1hep1PXtPPz7U8FixRG6VqJxpy GpTUYCjuaAnG6v/bLo/kXJWBh1cTud+nC2Xv3a8qLrMXHiMdPxT8heb+3MsiuFvp/U+L Fqn1oJxDTbwwsbsQxLaVYSe0mTi759dEIeZ0mwnC+tu49sC+OI31XUo7UAFG/ezFZEqU wFLuz2Uckse7ehrRQR2DibFZA6COdDvGm+Hb2lUZBMPE+qgOorPc1lmmfv18eVv+d1mS 1SXA== X-Gm-Message-State: AOAM533tXXisIv/NTBXZp13ztf3bsGOqWPQk7z9zzI6b/6WfQax//i+C Qt5+zo8CeCybQM+z06DM+6WocN33hME= X-Google-Smtp-Source: ABdhPJwzgt4QElx5SjNbrbNMMksX+d1txIE1M3j60cpnbNpIrvEOjs/sRCUGVM5LwAYhfw+oQU/lyg== X-Received: by 2002:a9d:6d95:: with SMTP id x21mr3138157otp.339.1599166813759; Thu, 03 Sep 2020 14:00:13 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id e7sm205748otk.59.2020.09.03.14.00.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:13 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 26/77] linux-user/strace.list: fix epoll_create{, 1} -strace output Date: Thu, 3 Sep 2020 15:58:44 -0500 Message-Id: <20200903205935.27832-27-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , qemu-stable@nongnu.org, Sergei Trofimovich , Laurent Vivier Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Sergei Trofimovich Fix syscall name and parameters priinter. Before the change: ``` $ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a ... 1274697 %s(%d)(2097152,274903156744,274903156760,274905840712,274877908880,274903235616) = 3 1274697 exit_group(0) ``` After the change: ``` $ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a ... 1273719 epoll_create1(2097152) = 3 1273719 exit_group(0) ``` Fixes: 9cbc0578cb6 ("Improve output of various syscalls") Signed-off-by: Sergei Trofimovich CC: Riku Voipio CC: Laurent Vivier Cc: qemu-stable@nongnu.org Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200416175957.1274882-1-slyfox@gentoo.org> Signed-off-by: Laurent Vivier (cherry picked from commit fd568660b7ae9b9e45cbb616acc91ae4c065c32d) Signed-off-by: Michael Roth --- linux-user/strace.list | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/strace.list b/linux-user/strace.list index d49a1e92a8..9281c0a758 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -125,10 +125,10 @@ { TARGET_NR_dup3, "dup3" , "%s(%d,%d,%d)", NULL, NULL }, #endif #ifdef TARGET_NR_epoll_create -{ TARGET_NR_epoll_create, "%s(%d)", NULL, NULL, NULL }, +{ TARGET_NR_epoll_create, "epoll_create", "%s(%d)", NULL, NULL }, #endif #ifdef TARGET_NR_epoll_create1 -{ TARGET_NR_epoll_create1, "%s(%d)", NULL, NULL, NULL }, +{ TARGET_NR_epoll_create1, "epoll_create1", "%s(%d)", NULL, NULL }, #endif #ifdef TARGET_NR_epoll_ctl { TARGET_NR_epoll_ctl, "epoll_ctl" , NULL, NULL, NULL }, From patchwork Thu Sep 3 20:58:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274599 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B607BC43461 for ; Thu, 3 Sep 2020 21:32:32 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 73817206D4 for ; Thu, 3 Sep 2020 21:32:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eUBuaUQ4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 73817206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50752 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwqN-0006go-Il for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:32:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58494) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLC-0003tt-7f; Thu, 03 Sep 2020 17:00:18 -0400 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:35795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLA-0007X5-JY; Thu, 03 Sep 2020 17:00:17 -0400 Received: by mail-oi1-x242.google.com with SMTP id w16so4535978oia.2; Thu, 03 Sep 2020 14:00: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=LtPU/nN6c9RiqgRTDpf9K4Svqu3AQC8vbJJ7asRl6KM=; b=eUBuaUQ4ES92C0W8OsgW0STGVdEb5kXK6SXRNGJywTCk6hM2RcJh6ei1VO52wh49ou YmKKnL+AWFhzFy2AeY5VOZxSsM/GF6l/YeBRm8DL4tYcYg/YwdNgZhgTOcsxTDYLh5QG 7R0/WJu7xGNUH3a6e6GiszTPL6uFE/66EzGjqeA/as4FDtUCxGFCvlrnTs5pusXOV24V 1YUnl0NXNP7FNH+18WLcBtBphK7gNw13y84PH7N4YdVOdcB0VVwGKPX9thewZaxLPgoz 5CaN2W7LVgHk/IL4EbTsGb5kc4z9fxVWj/2GaMytL7BakqHxl0Ra9NnD/s7C5Se3169I 7t2Q== 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=LtPU/nN6c9RiqgRTDpf9K4Svqu3AQC8vbJJ7asRl6KM=; b=rGgBHSHE0GWBNwZCXwnW2HkzmOO0YuDKRElN/uMTilsQMkz7Xq2P0J4o3Br3yINLnL JPaEpjU/rG/pJHXgcypisgOW2MvNRnloCacY4HG5JmDkz+6nw6wpNK1cNMyE8hdEVOjn yvWqPFtRgXIborVnA9MuOAYdovxVW/JAuRWQsgeSv/KwMvJdGlHz1UjvUVDWf1pvizCp KPbeRC+a6ISSruG8/rZFbUCEWAMrizOTZu+d+vdg6xJUY6AgXAimi0QpWZ1OUVSJE1uu C4yHmJVqqYHmadYvYE2r8KYNgxk+x193yL88jyu9V9tCU6F9f1eTjAb2pn5/bp+w5HWe Nwxg== X-Gm-Message-State: AOAM530ARn9aGgw3XusZj/49L1PBSFtrtVv58qJ3a30kAYAwqXULs4XZ lXNEDykVZRgk/clee59OD70R740kAtw= X-Google-Smtp-Source: ABdhPJwtlCZWf9x5sxWZHDVmVDI0++NbnrC3/5hquFSzgWe/SKJ+n3PQLM3wd/5pg06xeqAW466f6g== X-Received: by 2002:aca:f103:: with SMTP id p3mr3367677oih.45.1599166814856; Thu, 03 Sep 2020 14:00:14 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id o204sm719770oib.34.2020.09.03.14.00.14 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:14 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 27/77] libqos: usb-hcd-ehci: use 32-bit write for config register Date: Thu, 3 Sep 2020 15:58:45 -0500 Message-Id: <20200903205935.27832-28-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::242; envelope-from=flukshun@gmail.com; helo=mail-oi1-x242.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Paolo Bonzini The memory region ops have min_access_size == 4 so obey it. Tested-by: Thomas Huth Signed-off-by: Paolo Bonzini (cherry picked from commit 89ed83d8b23c11d250c290593cad3ca839d5b053) Signed-off-by: Michael Roth --- tests/qtest/usb-hcd-ehci-test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qtest/usb-hcd-ehci-test.c b/tests/qtest/usb-hcd-ehci-test.c index 5251d539e9..c51e8bb223 100644 --- a/tests/qtest/usb-hcd-ehci-test.c +++ b/tests/qtest/usb-hcd-ehci-test.c @@ -96,7 +96,7 @@ static void pci_ehci_port_1(void) static void pci_ehci_config(void) { /* hands over all ports from companion uhci to ehci */ - qpci_io_writew(ehci1.dev, ehci1.bar, 0x60, 1); + qpci_io_writel(ehci1.dev, ehci1.bar, 0x60, 1); } static void pci_uhci_port_2(void) From patchwork Thu Sep 3 20:58:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274597 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33D38C43461 for ; Thu, 3 Sep 2020 21:34:09 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EB62B206E7 for ; Thu, 3 Sep 2020 21:34:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SiVmbdyJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB62B206E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:58976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwrw-0001lh-4M for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:34:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58508) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLE-0003x1-1U; Thu, 03 Sep 2020 17:00:20 -0400 Received: from mail-oo1-xc41.google.com ([2607:f8b0:4864:20::c41]:45655) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLB-0007Yp-QV; Thu, 03 Sep 2020 17:00:18 -0400 Received: by mail-oo1-xc41.google.com with SMTP id u28so1121631ooe.12; Thu, 03 Sep 2020 14:00:16 -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=D8aV+SuTlrxPWeHJfsFhm4DwE+6NojdwAEJTWEzO0A0=; b=SiVmbdyJCkYwEnqKlOkKlofmyUmNpBwRV+8sI/tp1iCMcE1QLrGoUlBSonJMW5kmge FUMlWCazFVqHDdnemiN3nzAU4xDI9p/ffSxDEtlq42E+ttUOZ0dWZAV13XjjERkkCF3j U8KDeb4AdSYGC93HrpF0UiSsUtEmlt4k2m+Kh/H+SvvgVP4wlhZqQeNPzQQxmCCgsP2h LtrbIji8IPUHaymkRxLiajJEXSzjuzCOrRgZl+I1vtyUV9dLuxwy/K1ursyUc0QdlER3 R2NX4wuac27bLNRm5tNv2okc1824Ebn9pWldVCR/4wBCKCPi1nRH0dtOBmZBlAyvwXIZ l75w== 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=D8aV+SuTlrxPWeHJfsFhm4DwE+6NojdwAEJTWEzO0A0=; b=H/pPPhs+6d6mYhhu3Pc1y18BS4lvBkDtG8scBeV4IwKiSyQ2Yx4G3dkGcDLODTJYs4 x+bd94Ud1/CaaAy5lPda2j63uAwzQ631YqJOTCB41SHB/lbO46hOENAcKzae7ASHgj24 ARpLSSTZdnvDQsHDIBfOnk2IFPBIaXII84m1xKq1Y9RMiPpM7so+Op8Y37lDZFCiF9/t bnyCN5TYYVzcLd5zN6PlDraK/prCHvva84aasLMWSujb0/Nd2RkGkpAcuQe/dynNtU0p 0l+qf1tgZvEiWRunDWwBJVLAlVeV1CjrANpWLpMWDfNprFOa1aJ4Hqtqc1yE5qlXjG6x ogIQ== X-Gm-Message-State: AOAM530vLcbqfRyuyfncQ9oQXXtToc7I6IrTrCkTwLAVmxFeSjAmt64w 3TAxIDg5CHgjM+xlREJuYunUihByFGw= X-Google-Smtp-Source: ABdhPJwqM43KFDWLqHXcy+anFG9U/WavwYDpAHIJ/emuYFoKHpw0km50yaM2V0T5zOWmvci/y8jFsw== X-Received: by 2002:a4a:aa0e:: with SMTP id x14mr3282896oom.27.1599166815905; Thu, 03 Sep 2020 14:00:15 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l63sm711626oia.56.2020.09.03.14.00.15 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:15 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 28/77] libqos: pci-pc: use 32-bit write for EJ register Date: Thu, 3 Sep 2020 15:58:46 -0500 Message-Id: <20200903205935.27832-29-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c41; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc41.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Paolo Bonzini The memory region ops have min_access_size == 4 so obey it. Tested-by: Thomas Huth Signed-off-by: Paolo Bonzini (cherry picked from commit 4b7c06837ae0b1ff56473202a42e7e386f53d6db) Signed-off-by: Michael Roth --- tests/qtest/libqos/pci-pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qtest/libqos/pci-pc.c b/tests/qtest/libqos/pci-pc.c index 0bc591d1da..3bb2eb3ba8 100644 --- a/tests/qtest/libqos/pci-pc.c +++ b/tests/qtest/libqos/pci-pc.c @@ -186,7 +186,7 @@ void qpci_unplug_acpi_device_test(QTestState *qts, const char *id, uint8_t slot) g_assert(!qdict_haskey(response, "error")); qobject_unref(response); - qtest_outb(qts, ACPI_PCIHP_ADDR + PCI_EJ_BASE, 1 << slot); + qtest_outl(qts, ACPI_PCIHP_ADDR + PCI_EJ_BASE, 1 << slot); qtest_qmp_eventwait(qts, "DEVICE_DELETED"); } From patchwork Thu Sep 3 20:58:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306263 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4F63C43461 for ; Thu, 3 Sep 2020 21:32:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 866DE206D4 for ; Thu, 3 Sep 2020 21:32:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IMg9yE2n" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 866DE206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52462 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwqn-0007P1-J2 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:32:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLG-0003yS-QU; Thu, 03 Sep 2020 17:00:24 -0400 Received: from mail-oo1-xc43.google.com ([2607:f8b0:4864:20::c43]:42322) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLE-0007bB-48; Thu, 03 Sep 2020 17:00:21 -0400 Received: by mail-oo1-xc43.google.com with SMTP id a6so1118408oog.9; Thu, 03 Sep 2020 14:00: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=b3KQN/Kte9yOknsbzt0CDZ4AvatyRKhckS3n3Zf19Fo=; b=IMg9yE2nza1NjXHuqgj8vpy0D5pb/EbUf38oh7UHpghM3PT/FWDzjNoekuQ7w9ky4G vnITpKkUzzzHziDyo3VPs0pu4BMtzKbeUiKFDb9/wdakeaYsrdcyMlYIynEuFMRCE+S1 qNsx3a60qks/ilXWS0gTnnrPmhBXO9taWp/3vp7eoQd2kVWp29O8CZhf6ryoKBRtkgCP TW3/vr5MYcbL3QmP4/H7zPIDrRelyoS381HLAlnfJ6iU2QV1cdcQgMXwEgGfTjrLByAu WqftyLlTDTIXyMUXJS3/9Pdd8CfU1S5/b1lAeevwNgyUjLS6r5Hlr7gMFKhg5qT7Z9hl 8BzA== 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=b3KQN/Kte9yOknsbzt0CDZ4AvatyRKhckS3n3Zf19Fo=; b=fMWXMGqCPOXs7MaPwtT434NAHjucAK0tenVT+niZluPKnfXDYUBnW1vZDb3jRsYNlT VMhfU/IDrodGsRhvTF6MfU3SyXlgpjI7zG+VZFzqs2rbgMUkPDbtMwHDdPP1aKoOwiGz cKeI41XtNlIxtwtrms+5U7j7yTb4FjeWeCyiUbQDRsxe1uXLd9/4B2xNLpYN3azJzFj/ q+o44Kle+4f12c1DPd57isK0yPawKuwoi7EF645lvEOCQJlHW+TYR+Syg15e+qfLPBjf MPsbjuL60YmVy9+wfVKEvXd/ato+ypqHkHoZdSC/0oPrZwLYnZOCZU2MnsFNK53ijg3j 7NzA== X-Gm-Message-State: AOAM530Jp248s9m6xRFJ11Y9fQ8iVXNT7R5CHSOjzxhPGhkkE/w2CW42 /k40QSG4cSmGO/gK3Y8SgGn0z9Iizh8= X-Google-Smtp-Source: ABdhPJxMIaneA/FtV97r7S/vzL2QCYXzkK5Gu0x6tPm+WGdLfqAqXBBcogQAMJo2J5EUXsF52XS3zw== X-Received: by 2002:a4a:a648:: with SMTP id j8mr3362294oom.44.1599166818155; Thu, 03 Sep 2020 14:00:18 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t84sm294237oif.32.2020.09.03.14.00.17 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:17 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 30/77] hw/riscv: Allow 64 bit access to SiFive CLINT Date: Thu, 3 Sep 2020 15:58:48 -0500 Message-Id: <20200903205935.27832-31-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c43; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc43.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Alistair Francis Commit 5d971f9e672507210e77d020d89e0e89165c8fc9 "memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"" broke most RISC-V boards as they do 64 bit accesses to the CLINT and QEMU would trigger a fault. Fix this failure by allowing 8 byte accesses. Signed-off-by: Alistair Francis Reviewed-by: LIU Zhiwei Message-Id: <122b78825b077e4dfd39b444d3a46fe894a7804c.1593547870.git.alistair.francis@wdc.com> (cherry picked from commit 70b78d4e71494c90d2ccb40381336bc9b9a22f79) Signed-off-by: Michael Roth --- hw/riscv/sifive_clint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/riscv/sifive_clint.c b/hw/riscv/sifive_clint.c index e933d35092..a2a4b7d752 100644 --- a/hw/riscv/sifive_clint.c +++ b/hw/riscv/sifive_clint.c @@ -180,7 +180,7 @@ static const MemoryRegionOps sifive_clint_ops = { .endianness = DEVICE_LITTLE_ENDIAN, .valid = { .min_access_size = 4, - .max_access_size = 4 + .max_access_size = 8 } }; From patchwork Thu Sep 3 20:58:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274595 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BC8EC433E2 for ; Thu, 3 Sep 2020 21:36:34 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EF28120665 for ; Thu, 3 Sep 2020 21:36:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aeQO4TV8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF28120665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40022 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwuH-0005md-5H for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:36:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58696) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLQ-00041t-9M; Thu, 03 Sep 2020 17:00:32 -0400 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:35796) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLI-0007e4-IK; Thu, 03 Sep 2020 17:00:28 -0400 Received: by mail-oi1-x242.google.com with SMTP id w16so4536242oia.2; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=RzeduguMkjJ25jQpgkKJueFeI/WMC3SutpUz7EZNeBA=; b=aeQO4TV8bN1PkAZJSM9mKjt8QIm1131tI00Up90H0yNKutKUFPYyhR5pZt64+QKVnO UqpEdTOJ7oiBPkkDsFitCSeSRMeBKnGst/GFOhQnc9puZo+lxVyaCpKAdGVknhDMQUtU nyZdDoFb1Oz4bLk+9pWUw790CKSt3OCFiyZNYFL0hdjWs/SUmIsRgGql0Qype+BNH7KA R/r6EhvMSDW+bozssylUuzOiSoSSI/p1xlY1zSUERpTlxuHleYPqRIKo6ot/YDNAAWZU s94/jNj7E3e8yveQEmJN1jGGzmulrTWPZDAuqBcxxg5VEamUBPg9WLYOM+Qc+f/8f1V8 JeCQ== 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=RzeduguMkjJ25jQpgkKJueFeI/WMC3SutpUz7EZNeBA=; b=VRhX2HyWB4Kf1jgI3ID+ckw14AyBMPgR3CTUvWt7rKwAbdfb51d9QZ1diF8cMVk2Km DymYFZcFmRrgbMTUhLXE3TM/8jhSF09XHhiJjIyFYSMs4RTYC0nS8NcETztpUssEjjMG u046Obd0bZKfLjypxEfk3N8T0ElUPK5X0ebpHKo2JDHQ7XUMhWOAVUhEUbMFL3rHXuUl wqgwA94NDzzgo+JcFiUZCjPlhIP5WR7W808Nutp5Wpi8NDMErW/yxAPtAhQ047NrEVhp m1pPc0Bi+L3oMxWsMVNJZdUVXcn/CD26v3rJoaKjIBCAX2lae6U3eIG4CZ8JnDytDUbA TVjA== X-Gm-Message-State: AOAM532S5/X9ovZ8EXTHdA17U6MIkWJZCsXf8BGmk6OR29AULoHqeB3g EoDgFGs4NqWpAcLWd36AdnPlK/q/B9Q= X-Google-Smtp-Source: ABdhPJxE2iGtbT04/YrSqCZV4NB951udik43UfKfeFEIoNqXmz2FAPwMV5hH/A2BkwkQISbIcG0ayA== X-Received: by 2002:a05:6808:8e4:: with SMTP id d4mr3193629oic.132.1599166820386; Thu, 03 Sep 2020 14:00:20 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t84sm294254oif.32.2020.09.03.14.00.19 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:19 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 31/77] xhci: fix valid.max_access_size to access address registers Date: Thu, 3 Sep 2020 15:58:49 -0500 Message-Id: <20200903205935.27832-32-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::242; envelope-from=flukshun@gmail.com; helo=mail-oi1-x242.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , qemu-stable@nongnu.org, Gerd Hoffmann Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Laurent Vivier QEMU XHCI advertises AC64 (64-bit addressing) but doesn't allow 64-bit mode access in "runtime" and "operational" MemoryRegionOps. Set the max_access_size based on sizeof(dma_addr_t) as AC64 is set. XHCI specs: "If the xHC supports 64-bit addressing (AC64 = ‘1’), then software should write 64-bit registers using only Qword accesses. If a system is incapable of issuing Qword accesses, then writes to the 64-bit address fields shall be performed using 2 Dword accesses; low Dword-first, high-Dword second. If the xHC supports 32-bit addressing (AC64 = ‘0’), then the high Dword of registers containing 64-bit address fields are unused and software should write addresses using only Dword accesses" The problem has been detected with SLOF, as linux kernel always accesses registers using 32-bit access even if AC64 is set and revealed by 5d971f9e6725 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid"") Suggested-by: Alexey Kardashevskiy Signed-off-by: Laurent Vivier Message-id: 20200721083322.90651-1-lvivier@redhat.com Signed-off-by: Gerd Hoffmann (cherry picked from commit 8e67fda2dd6202ccec093fda561107ba14830a17) Signed-off-by: Michael Roth --- hw/usb/hcd-xhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index b330e36fe6..67a18fe2b6 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -3184,7 +3184,7 @@ static const MemoryRegionOps xhci_oper_ops = { .read = xhci_oper_read, .write = xhci_oper_write, .valid.min_access_size = 4, - .valid.max_access_size = 4, + .valid.max_access_size = sizeof(dma_addr_t), .endianness = DEVICE_LITTLE_ENDIAN, }; @@ -3200,7 +3200,7 @@ static const MemoryRegionOps xhci_runtime_ops = { .read = xhci_runtime_read, .write = xhci_runtime_write, .valid.min_access_size = 4, - .valid.max_access_size = 4, + .valid.max_access_size = sizeof(dma_addr_t), .endianness = DEVICE_LITTLE_ENDIAN, }; From patchwork Thu Sep 3 20:58:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306261 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DDF30C43461 for ; Thu, 3 Sep 2020 21:34:29 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9FB02206D4 for ; Thu, 3 Sep 2020 21:34:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KWXFWA8h" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9FB02206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwsG-0002UQ-QX for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:34:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58638) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLM-00040K-Cu; Thu, 03 Sep 2020 17:00:30 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:37566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLI-0007eh-Qc; Thu, 03 Sep 2020 17:00:27 -0400 Received: by mail-oi1-x244.google.com with SMTP id e6so4528173oii.4; Thu, 03 Sep 2020 14:00:23 -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=6r9u0nklxBNegI6NxrGJn+A8hZD/QGA53VvgRXsDcyg=; b=KWXFWA8hj94/SWqn/xbLuHS1H9UAOa+m7lre17CIgN8saTbSwxAw3Yas7iMEWF26s/ 0CZxC5QDw4DZvc1MmeH/o8p6eDm28iJR5Zooz2/G2VBzZy+uCgWtMbKHv1WhLs1ZJs/4 uhQIzyrlBStx+jMvZirgwgfxeGQW8wfsrL1J8+z9yvoRyAsnjkYKmeeDOKqzGu7k8EHI KGGwgConXzb9hbaaZJEMX+gjEJlgE9Vz4VrF+1A5BA7w5iuAEYts1vLCyqYKLN19vajX edkQre34dloPQcQBqy4fVnmAZgWY2bg9ZHqPwVv/6cnolONvlqs6tIHPa5OQ5YXwvoJL jFfw== 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=6r9u0nklxBNegI6NxrGJn+A8hZD/QGA53VvgRXsDcyg=; b=majznx8yco2ZDnDkL0TiIoHef9OCp0Zt19ESRMY5HNXY0FmA8h28Sk2BsrkUlb5L2Z 9OokvRyOKZAC5wUNMzmjB2d3lwg6Mz94KMMJSrxYUY+xe/qH9HKeIKzfW5obI5XWTZXC R38IPicZO6NMaKOZZaNp6Weaer+Ydc9YdSnxFVmJ+d6kJ2XozVqQj8YtoSsnOI9GqpY4 poRfH4mpRDtQN/e27gcxJclcNsXx0xkt/93ShLjLUGcLQkUDZdD0BzIb+HpQDYGzsd4R WLHwxVgSmbYvQhDqHwxu4foT1m66EJ1u3dQsaX+rdEdfuxELa1htNzaYAZqQ8IEFRNEq cVkg== X-Gm-Message-State: AOAM533+nEXmu+8bFewjqEQ8HabNKaxp/JYs6sdIS9YSENVpCuDb2qgC ptytdM+QYkJbxbIgqqQGSiZ3v/kaLyY= X-Google-Smtp-Source: ABdhPJykNqvtwFfgk7fq7JGgjho3xrw+T0BCycsxkMlAa5tFID4os47Q4XalaeEpGLqWbi1AQluqSQ== X-Received: by 2002:a54:4704:: with SMTP id k4mr2708157oik.78.1599166822706; Thu, 03 Sep 2020 14:00:22 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id p9sm759437oti.22.2020.09.03.14.00.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:22 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 33/77] hw/display/artist: Unbreak size mismatch memory accesses Date: Thu, 3 Sep 2020 15:58:51 -0500 Message-Id: <20200903205935.27832-34-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Helge Deller , Sven Schnelle , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Helge Deller Commit 5d971f9e6725 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid") broke the artist driver in a way that the dtwm window manager on HP-UX rendered wrong. Fixes: 5d971f9e6725 ("memory: Revert "memory: accept mismatching sizes in memory_region_access_valid") Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller (cherry picked from commit e0cf02ce680f11893aca9642e76d6ae68b9375af) Signed-off-by: Michael Roth --- hw/display/artist.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/display/artist.c b/hw/display/artist.c index 753dbb9a77..d7bce918b8 100644 --- a/hw/display/artist.c +++ b/hw/display/artist.c @@ -1199,20 +1199,16 @@ static const MemoryRegionOps artist_reg_ops = { .read = artist_reg_read, .write = artist_reg_write, .endianness = DEVICE_NATIVE_ENDIAN, - .valid = { - .min_access_size = 1, - .max_access_size = 4, - }, + .impl.min_access_size = 1, + .impl.max_access_size = 4, }; static const MemoryRegionOps artist_vram_ops = { .read = artist_vram_read, .write = artist_vram_write, .endianness = DEVICE_NATIVE_ENDIAN, - .valid = { - .min_access_size = 1, - .max_access_size = 4, - }, + .impl.min_access_size = 1, + .impl.max_access_size = 4, }; static void artist_draw_cursor(ARTISTState *s) From patchwork Thu Sep 3 20:58:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274593 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D4C6C433E2 for ; Thu, 3 Sep 2020 21:38:14 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 496F920665 for ; Thu, 3 Sep 2020 21:38:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gl+8yXAY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 496F920665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:49526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwvt-0001H0-FD for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:38:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLR-00042w-D6; Thu, 03 Sep 2020 17:00:33 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]:44661) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLK-0007f2-JX; Thu, 03 Sep 2020 17:00:30 -0400 Received: by mail-ot1-x32a.google.com with SMTP id a2so3981328otr.11; Thu, 03 Sep 2020 14:00: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=bZwBA4peLRyGs8ohtkAt1JRxKXRjQb8BlHQpeJ+7qBM=; b=gl+8yXAY9Qy03h4KXWVLSI715zYwZY0Y6cZA0UPXXUtkLR3g2WvW1/MMdvl+1c72a/ C7R0MeSVJ12nC2t0ra0abC4LcKnIzBmJlQgQXDuCGgK015s/uXDSauguW+edMLLU5/YI VS9TZk+vwOtrJKO/cOzwmjXGtzSuQGCqVUZFXNz5laW85CTcQbswMhPam4zAsTeQfdYR 5HexfJ/mLMOg/CWqxqyR0Z8V6NH00zNUmwBQB2eWKtEGQl5yWZ3NwItV+oNMag3C7f5E 1xtN+z/viOcqPKnM1bbuwTPFa0FzGih7KOfVIZYIsiSqd9aJQKrb7J0+fGtSG/cLshit LNgQ== 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=bZwBA4peLRyGs8ohtkAt1JRxKXRjQb8BlHQpeJ+7qBM=; b=uFvgiFcGaXL0ovqdl6TsoMbes9JbpwK/zctjYpCIbGOOq90EjqjUf61nvAoPR0+Rz1 g55+7IvQfdgu4qaRMmicZzi5FSTaz9V/DSuEHFC6TMCsba3JIPtL5hMPBND7fbS47kvD ouKZBaoGx4a/ouP/hxBKP5EzII54+Dm2g9qGwSzYxfVSVIjVqC0GOA5wSXFC/uJ8Z7R1 O79jmFsL7i2SQ/jC8NGYAPnNTJ2R9GVEcSZvScf6gaMi5B7gaJknQvfwzDJznzmyacuZ WVKJ2t86IuLxEQ2juYnAlBWspJYYI4s4jtiC5/75/YO9TbRmD4cYGIUIC6612QY5A1W2 wQRQ== X-Gm-Message-State: AOAM532W8M/4JQ7hrZ8rpWN2bxyBcidPfDOIPMLhQ/jv88RpVHPbLiCk obzBYNjWaOW/4nEwOKAQzbxjGxArV4U= X-Google-Smtp-Source: ABdhPJy99SGG5AIzkQH1kFBC0VKy93XlH+nU5+TdBGgzjffCfQ/LCf4OWtpQQaulynD/0A0muud7Vg== X-Received: by 2002:a9d:170e:: with SMTP id i14mr3217027ota.170.1599166824814; Thu, 03 Sep 2020 14:00:24 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 92sm764752ota.38.2020.09.03.14.00.24 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:24 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 35/77] virtiofsd: Whitelist fchmod Date: Thu, 3 Sep 2020 15:58:53 -0500 Message-Id: <20200903205935.27832-36-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=flukshun@gmail.com; helo=mail-ot1-x32a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, "Dr . David Alan Gilbert" , Max Reitz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Max Reitz lo_setattr() invokes fchmod() in a rarely used code path, so it should be whitelisted or virtiofsd will crash with EBADSYS. Said code path can be triggered for example as follows: On the host, in the shared directory, create a file with the sticky bit set and a security.capability xattr: (1) # touch foo (2) # chmod u+s foo (3) # setcap '' foo Then in the guest let some process truncate that file after it has dropped all of its capabilities (at least CAP_FSETID): int main(int argc, char *argv[]) { capng_setpid(getpid()); capng_clear(CAPNG_SELECT_BOTH); capng_updatev(CAPNG_ADD, CAPNG_PERMITTED | CAPNG_EFFECTIVE, 0); capng_apply(CAPNG_SELECT_BOTH); ftruncate(open(argv[1], O_RDWR), 0); } This will cause the guest kernel to drop the sticky bit (i.e. perform a mode change) as part of the truncate (where FATTR_FH is set), and that will cause virtiofsd to invoke fchmod() instead of fchmodat(). (A similar configuration exists further below with futimens() vs. utimensat(), but the former is not a syscall but just a wrapper for the latter, so no further whitelisting is required.) Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1842667 Reported-by: Qian Cai Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz Message-Id: <20200608093111.14942-1-mreitz@redhat.com> Reviewed-by: Dr. David Alan Gilbert Reviewed-by: Vivek Goyal Signed-off-by: Dr. David Alan Gilbert (cherry picked from commit 63659fe74e76f5c5285466f0c5cfbdca65b3688e) Signed-off-by: Michael Roth --- tools/virtiofsd/seccomp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/virtiofsd/seccomp.c b/tools/virtiofsd/seccomp.c index bd9e7b083c..3b1522acdd 100644 --- a/tools/virtiofsd/seccomp.c +++ b/tools/virtiofsd/seccomp.c @@ -42,6 +42,7 @@ static const int syscall_whitelist[] = { SCMP_SYS(exit_group), SCMP_SYS(fallocate), SCMP_SYS(fchdir), + SCMP_SYS(fchmod), SCMP_SYS(fchmodat), SCMP_SYS(fchownat), SCMP_SYS(fcntl), From patchwork Thu Sep 3 20:58:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306259 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5BCBC43461 for ; Thu, 3 Sep 2020 21:36:51 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 68396206CA for ; Thu, 3 Sep 2020 21:36:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ogiOM/vc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 68396206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:41866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwuY-0006dI-I9 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:36:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58738) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLS-00043y-0L; Thu, 03 Sep 2020 17:00:34 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:45643) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLM-0007fN-FL; Thu, 03 Sep 2020 17:00:33 -0400 Received: by mail-ot1-x341.google.com with SMTP id g96so3975221otb.12; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=uQPncV/jLImjoch26Nuy7gV8hNnslJV64x5ayj1AopA=; b=ogiOM/vcOw+4h5KxOuXCl3M24eZzMDtvLTnvk240oGhaurTjvHHY0jXrg6Gq1Pj+x9 xZhKIpHO4Fq6at1l6n/LUcFijBx+DSFdbzvsv/WRrv4Kt2LO8C6lb4SRXhTpH6qukVoY HZxVOnpSTANhsBZ3My0lqAafSR8GF1IydyhRbBaKbuM4JcCpwA+SUcPBIQFkZIoTdAiM 2xgZCvY+QNSYs3lVxJHGpQsKT5XtKgBsNLXyABVeD4ql2TWnbGsZp0YrdO8Sg1ZaP34b 08tsMDBz/caYx3zed9sKSzi8wIlhHQHNQR9+U5NmfKrjQklA1OsGQW53cLYQej06myfE uIWw== 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=uQPncV/jLImjoch26Nuy7gV8hNnslJV64x5ayj1AopA=; b=k2X1+JB2ZuIIhjM9AvtwlZpJJVp1o1zW708eN5ZoHMW+ZzxbZEUyz69joLVtTxxkC5 UMXVsjbVfXoz1G09IBA8uArchdr9zx1aGvqweKNpCCEz1RrN26WVU0R2I+WJeHpESYO2 ixF7KTzDLKY5rMCNCdsOamCeKHEWOCgbuxfXDHW1YYNM8QDNP6StMYjEp0JXGoDjSm2V KK/4netHMzjIaheNsIdQpyhNdTF9er7VbcSJKTBHoghhzuSMqp4UCTw8kqJsLWJMd6gm ODdIU7HLtVOGPf7dBAIQ2iGHRTqIjKPpbEnkkci8+LmAc2xKMQkvcE7WBoZR+R4UDebo L0hQ== X-Gm-Message-State: AOAM530utpCO196olzRXfhYRM+URsoSUPtIfEVsEIH/yrDDcwEARUpIp gD7Gp1yqU5aLykHdQ3n/412yM2puwmc= X-Google-Smtp-Source: ABdhPJzJlnG9NKW9NqggbCOnxGkTeY2euLyTy91CRCKuT6nVtP1neWk+P/hPjGtSFob1HzF1P+ZtTQ== X-Received: by 2002:a9d:6f86:: with SMTP id h6mr3113277otq.285.1599166826509; Thu, 03 Sep 2020 14:00:26 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id r33sm828425ooi.48.2020.09.03.14.00.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:26 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 36/77] hw/audio/gus: Fix registers 32-bit access Date: Thu, 3 Sep 2020 15:58:54 -0500 Message-Id: <20200903205935.27832-37-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=flukshun@gmail.com; helo=mail-ot1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Allan Peramaki , qemu-stable@nongnu.org, Gerd Hoffmann Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Allan Peramaki Fix audio on software that accesses DRAM above 64k via register peek/poke and some cases when more than 16 voices are used. Cc: qemu-stable@nongnu.org Fixes: 135f5ae1974c ("audio: GUSsample is int16_t") Signed-off-by: Allan Peramaki Tested-by: Volker Rümelin Reviewed-by: Volker Rümelin Reviewed-by: Thomas Huth Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé Message-id: 20200618103623.6031-1-philmd@redhat.com Message-Id: <20200615201757.16868-1-aperamak@pp1.inet.fi> [PMD: Removed unrelated style changes] Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Gerd Hoffmann (cherry picked from commit 586803455b3fa44d949ecd42cd9c87e5a6287aef) Signed-off-by: Michael Roth --- hw/audio/gusemu_hal.c | 2 +- hw/audio/gusemu_mixer.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/audio/gusemu_hal.c b/hw/audio/gusemu_hal.c index ae40ca341c..5b9a14ee21 100644 --- a/hw/audio/gusemu_hal.c +++ b/hw/audio/gusemu_hal.c @@ -32,7 +32,7 @@ #define GUSregb(position) (* (gusptr+(position))) #define GUSregw(position) (*(uint16_t *) (gusptr+(position))) -#define GUSregd(position) (*(uint16_t *)(gusptr+(position))) +#define GUSregd(position) (*(uint32_t *)(gusptr + (position))) /* size given in bytes */ unsigned int gus_read(GUSEmuState * state, int port, int size) diff --git a/hw/audio/gusemu_mixer.c b/hw/audio/gusemu_mixer.c index 00b9861b92..56300de77e 100644 --- a/hw/audio/gusemu_mixer.c +++ b/hw/audio/gusemu_mixer.c @@ -28,7 +28,7 @@ #define GUSregb(position) (* (gusptr+(position))) #define GUSregw(position) (*(uint16_t *) (gusptr+(position))) -#define GUSregd(position) (*(uint16_t *)(gusptr+(position))) +#define GUSregd(position) (*(uint32_t *)(gusptr + (position))) #define GUSvoice(position) (*(uint16_t *)(voiceptr+(position))) From patchwork Thu Sep 3 20:58:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306256 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0013CC43461 for ; Thu, 3 Sep 2020 21:40:15 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B114520665 for ; Thu, 3 Sep 2020 21:40:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="a1aKQANe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B114520665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:59782 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwxq-0005O8-TM for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:40:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLT-00047T-H5; Thu, 03 Sep 2020 17:00:35 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]:46478) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLR-0007fc-GX; Thu, 03 Sep 2020 17:00:35 -0400 Received: by mail-ot1-x32a.google.com with SMTP id c10so3974252otm.13; Thu, 03 Sep 2020 14:00: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=WPTghg1JdY/T9Chd/wvCDZJhQbF7QTuk1z+gP+1I088=; b=a1aKQANe0qgPOb94YAlu0JVQWZJ9x/BCoP0gG3D/OdBG9/+rU3L23STY47d9xMI5Cp IT/G7juy/pISK7II74iJ64MBzHsyjytaa9M2E4IT3W8GEHriGrm2kmWd0PtnadF23fT7 VtBTj4qlTv8+5Mmqypo6zLjjyH+e+XvaRSMrMs7pSN1CgfMpEF+pej4etaK6dik1dWUR gImJOLbJXvIKgEJQq/kgbjQyCuaw5Lb1SxSsDNcAriFCXqndMmRf5eEk09CvrjpgXqip 9ZffXf6LmGE+fR20nLkTYKvHeo2U5dBNuCmJSF+6qlNxt7TelOgYchtkAO7G90Gx2rYa uzzA== 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=WPTghg1JdY/T9Chd/wvCDZJhQbF7QTuk1z+gP+1I088=; b=oaZBUiy5DOBYl4fPckK8LlXCnCAnKjaE9lHpeDQ4qBSuJ30tnvOUu9+tzYSSgqMi5B UXBd88VF/rMhqp/AMfrczZstak1R09hwdipo4DhdEyqTk3qGudeLWgBcHuA3m/aJ9k90 z80N1a5yobJmC8NZG66kMt+ofrJmYqHQo0OsuC0ihiTisxjad4yzN0HFKJtr18+JRTeJ p0vnvF+PJ3BifXf5Wa6KRxsV+zufZ3EvMvilA53WV19gbQbQv2nh/oxwjAhd+MALAeQw OFC9uvV8JDm+zvyvMW0AVNQZ+rAAE/l+M1ZDEjneXbQsJHliA+YQZQ3SKAqNuJN0volI OkFw== X-Gm-Message-State: AOAM531iZmA0URwktUmS+MkcSRJMB/z4ZppV4f6NH9gbofvUt0izg/r+ Pd5Jh1qNZaNMQObAkdBdPbwXktvIUmE= X-Google-Smtp-Source: ABdhPJzT/UvyJ6V7XgHu5FGN79WqCUAdGQEFsx/cGblV3zmS/s6aiDmvMQqbigm1YBtwqFllS6evRA== X-Received: by 2002:a05:6830:13:: with SMTP id c19mr3138247otp.65.1599166827608; Thu, 03 Sep 2020 14:00:27 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id f194sm718215oib.44.2020.09.03.14.00.26 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:27 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 37/77] net/virtio: Fix failover_replug_primary() return value regression Date: Thu, 3 Sep 2020 15:58:55 -0500 Message-Id: <20200903205935.27832-38-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=flukshun@gmail.com; helo=mail-ot1-x32a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jens Freimann , "Michael S . Tsirkin" , qemu-stable@nongnu.org, Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Markus Armbruster Commit 150ab54aa6 "net/virtio: fix re-plugging of primary device" fixed failover_replug_primary() to return false on failure. Commit 5a0948d36c "net/virtio: Fix failover error handling crash bugs" broke it again for hotplug_handler_plug() failure. Unbreak it. Commit 5a0948d36c4cbc1c5534afac6fee99de55245d12 Fixes: 5a0948d36c4cbc1c5534afac6fee99de55245d12 Cc: Jens Freimann Cc: Michael S. Tsirkin Cc: qemu-stable@nongnu.org Signed-off-by: Markus Armbruster Reviewed-by: Jens Freimann Reviewed-by: Michael S. Tsirkin Message-Id: <20200630090351.1247703-2-armbru@redhat.com> (cherry picked from commit ca72efccbe33373810341a0d8a10f5698b8fbc87) Signed-off-by: Michael Roth --- hw/net/virtio-net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index a46e3b37a7..e7e2c2acdb 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -2828,7 +2828,7 @@ static bool failover_replug_primary(VirtIONet *n, Error **errp) if (err) { goto out; } - hotplug_handler_plug(hotplug_ctrl, n->primary_dev, errp); + hotplug_handler_plug(hotplug_ctrl, n->primary_dev, &err); } out: From patchwork Thu Sep 3 20:58:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306257 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA671C433E2 for ; Thu, 3 Sep 2020 21:38:35 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8B0E6206CA for ; Thu, 3 Sep 2020 21:38:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="r+Bw11oB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8B0E6206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51350 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwwD-0001zJ-W2 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:38:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLT-00047Y-IH; Thu, 03 Sep 2020 17:00:35 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:37569) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLR-0007fx-Ax; Thu, 03 Sep 2020 17:00:35 -0400 Received: by mail-oi1-x244.google.com with SMTP id e6so4528435oii.4; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=HbS47WUaBPPEuio8+cvg8pxNjw1ZKqWkDcR3X6WFFTw=; b=r+Bw11oB7WI5MhRV+Z5dEdiKCXNlWcc+dC/9HH/7jaDsOVwLTuGQU2KLHgqdgqzwxN kpVHwkGzeZql599jVO1ughlAX3IPQ/5IaKEqmbIN/oQ1MXFESGwfVZww+6SL+XdSJlez /jKqOZa/V6K2wjWDWyoT9HY2wky4j6YK9zoMiL2amwpSAenSfMsDKQ2QMdrsoMSHw7ct udSGeCQMTy0EZXbpc3LYjl7HtKg3KJBwgFyfan6SMvmoEAoyz27NTMkrhrDzpz1rP9qh Lqs3hugFEv2s9bobvIepIuGuUI9f/9CligwyBDfqeJmADaXRt03NPj0A6xp4k/EBUBBS b51Q== 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=HbS47WUaBPPEuio8+cvg8pxNjw1ZKqWkDcR3X6WFFTw=; b=IQKleItYMAh4tJ1AUzl2emP3lhJRppBUceOk+j1inc2/fmHlAohC2qMWGSDxIjPaao rIKqXZynOyoOEz5AeSHpJ8FN9uMEMocFqbyY7FYb+dJywaKg/rONKK5Znr+4UpZFeGpA oIXgJiTY0K72CnfDHfVl54kbCXk0Rq8HCdTLBrmNCGRAaFayBXE6v9MbUcdrcIWfvsWP etetSbczZ34LCNUiS3l+4MAFzJS7V2O4XoFIGrhcbLlDFo/LYOgW4x7Hjxzo6m2CUNPY venRCmzSwlN8JZUcys+jniKk48vjNYAe0oXOS9+110mxf+Nt6Yi0wxXUejXJtBvSJLp0 mxrw== X-Gm-Message-State: AOAM531TVguPIXGNvn/YgAvRVcY+gTJK19MkA4WCZ6d0D6+ebi13Z4TK UvaoldQSpCyGcdeZGlwMTbIWkhQOFLw= X-Google-Smtp-Source: ABdhPJwmI0ezm+PloNz/xyzsTTmPzD2K527tKEou5niUMlTIg83L6wmUXk3eYAyo0jWY9CoCMt3dIw== X-Received: by 2002:aca:1716:: with SMTP id j22mr3442432oii.44.1599166828689; Thu, 03 Sep 2020 14:00:28 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id v35sm763455otb.32.2020.09.03.14.00.28 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:28 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 38/77] error: Use error_reportf_err() where appropriate Date: Thu, 3 Sep 2020 15:58:56 -0500 Message-Id: <20200903205935.27832-39-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Markus Armbruster Replace error_report("...: %s", ..., error_get_pretty(err)); by error_reportf_err(err, "...: ", ...); One of the replaced messages lacked a colon. Add it. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200505101908.6207-6-armbru@redhat.com> (cherry picked from commit 5217f1887a8041c51495fbd5d3f767d96a242000) Signed-off-by: Michael Roth --- chardev/char-socket.c | 5 +++-- hw/sd/pxa2xx_mmci.c | 4 ++-- hw/sd/sd.c | 4 ++-- hw/usb/dev-mtp.c | 9 +++++---- qemu-nbd.c | 7 +++---- scsi/qemu-pr-helper.c | 4 ++-- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 185fe38dda..e5ee685f8c 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -138,8 +138,9 @@ static void check_report_connect_error(Chardev *chr, SocketChardev *s = SOCKET_CHARDEV(chr); if (!s->connect_err_reported) { - error_report("Unable to connect character device %s: %s", - chr->label, error_get_pretty(err)); + error_reportf_err(err, + "Unable to connect character device %s: ", + chr->label); s->connect_err_reported = true; } qemu_chr_socket_restart_timer(chr); diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 8f9ab0ec16..f9c50ddda5 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -497,12 +497,12 @@ PXA2xxMMCIState *pxa2xx_mmci_init(MemoryRegion *sysmem, carddev = qdev_create(qdev_get_child_bus(dev, "sd-bus"), TYPE_SD_CARD); qdev_prop_set_drive(carddev, "drive", blk, &err); if (err) { - error_report("failed to init SD card: %s", error_get_pretty(err)); + error_reportf_err(err, "failed to init SD card: "); return NULL; } object_property_set_bool(OBJECT(carddev), true, "realized", &err); if (err) { - error_report("failed to init SD card: %s", error_get_pretty(err)); + error_reportf_err(err, "failed to init SD card: "); return NULL; } diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 71a9af09ab..3c06a0ac6d 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -703,13 +703,13 @@ SDState *sd_init(BlockBackend *blk, bool is_spi) dev = DEVICE(obj); qdev_prop_set_drive(dev, "drive", blk, &err); if (err) { - error_report("sd_init failed: %s", error_get_pretty(err)); + error_reportf_err(err, "sd_init failed: "); return NULL; } qdev_prop_set_bit(dev, "spi", is_spi); object_property_set_bool(obj, true, "realized", &err); if (err) { - error_report("sd_init failed: %s", error_get_pretty(err)); + error_reportf_err(err, "sd_init failed: "); return NULL; } diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index 20717f026b..168428156b 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -631,8 +631,9 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObject *o) int64_t id = qemu_file_monitor_add_watch(s->file_monitor, o->path, NULL, file_monitor_event, s, &err); if (id == -1) { - error_report("usb-mtp: failed to add watch for %s: %s", o->path, - error_get_pretty(err)); + error_reportf_err(err, + "usb-mtp: failed to add watch for %s: ", + o->path); error_free(err); } else { trace_usb_mtp_file_monitor_event(s->dev.addr, o->path, @@ -1276,8 +1277,8 @@ static void usb_mtp_command(MTPState *s, MTPControl *c) s->file_monitor = qemu_file_monitor_new(&err); if (err) { - error_report("usb-mtp: file monitoring init failed: %s", - error_get_pretty(err)); + error_reportf_err(err, + "usb-mtp: file monitoring init failed: "); error_free(err); } else { QTAILQ_INIT(&s->events); diff --git a/qemu-nbd.c b/qemu-nbd.c index 306e44fb0a..d2657b8db5 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -856,8 +856,7 @@ int main(int argc, char **argv) } tlscreds = nbd_get_tls_creds(tlscredsid, list, &local_err); if (local_err) { - error_report("Failed to get TLS creds %s", - error_get_pretty(local_err)); + error_reportf_err(local_err, "Failed to get TLS creds: "); exit(EXIT_FAILURE); } } else { @@ -983,8 +982,8 @@ int main(int argc, char **argv) &local_err); if (sioc == NULL) { object_unref(OBJECT(server)); - error_report("Failed to use socket activation: %s", - error_get_pretty(local_err)); + error_reportf_err(local_err, + "Failed to use socket activation: "); exit(EXIT_FAILURE); } qio_net_listener_add(server, sioc); diff --git a/scsi/qemu-pr-helper.c b/scsi/qemu-pr-helper.c index 181ed4a186..57ad830d54 100644 --- a/scsi/qemu-pr-helper.c +++ b/scsi/qemu-pr-helper.c @@ -1030,8 +1030,8 @@ int main(int argc, char **argv) server_ioc = qio_channel_socket_new_fd(FIRST_SOCKET_ACTIVATION_FD, &local_err); if (server_ioc == NULL) { - error_report("Failed to use socket activation: %s", - error_get_pretty(local_err)); + error_reportf_err(local_err, + "Failed to use socket activation: "); exit(EXIT_FAILURE); } } From patchwork Thu Sep 3 20:58:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274590 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D55DC43461 for ; Thu, 3 Sep 2020 21:42:01 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 10DA6206D4 for ; Thu, 3 Sep 2020 21:42:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q9V7cdok" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 10DA6206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:38628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwzY-0008PC-2G for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:42:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLU-00048i-3a; Thu, 03 Sep 2020 17:00:36 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:41872) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLR-0007h8-HR; Thu, 03 Sep 2020 17:00:35 -0400 Received: by mail-ot1-x344.google.com with SMTP id a65so4001163otc.8; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=8VEH4Dp3c4FP61LHXzVX3wMEuap/BOtd0QFnCK48Al0=; b=q9V7cdok4+jvmBw6p74YUFba00TvHAIPCkKrjI93a7obPFS+oypdU42wf8bH0ihvta jUrehUO7Y9mLttKP2JAa/eNRAy62AkwFipNRbCTRst6/aSqRw0pNt5v6h5Mijr0olDnG C7zwt3YZ9+1P9BcU8sPGCG6J6Up6qdu3OmI+/DMqQsOMGw0R3vs0vBqaEY+PzHW2Zn9Q CJBs09HVRoYDSqHVJkQmwVLdx8jQOwHjoqQlc0vHq16q5cnGxrbRuR6eBY/Fcwb3Dw5+ b6LuvfD39zkpsrjgA3JZrcNMna7NlAL7KsrlhbjBHfHJlvRVEd3xjguAD60+rLaTcdxD O8QA== 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=8VEH4Dp3c4FP61LHXzVX3wMEuap/BOtd0QFnCK48Al0=; b=Weplk1e+GKFE0IiDUlSzzRq908wTjEFtQmAssSPf3I7i/agC+htT/PMKhKvotcE50k HS6Ewz6eE+/zaevUUlehVaQlMi39iDJ4BSW93wK5/1kZJdIXyI+xCaBN5RlASrec5nuC 8JrChxzvVhiBX3P54U2fj7L5vKKYlPumT8SIxUp5B/+bhQ/JzG0Yulp5pEyO629iTjjy 6F2eCcUP+WQynVolFb4ZV9k1T8oAKWB0zgNwRaj+zW7MQoyIVmqa+8cK6Tb8bu0nx/qq 5PPU4i75S0P6Tf+Wx4yaVzFurQnlN40OUx64VUjkDQ9dzLAmACnVayWKRnFHxFOMTrs5 6jlg== X-Gm-Message-State: AOAM530Jf4SCpRUk7hJlZ62mGwdDp0IN1JjDfaDX5B2ipFndZidQtfaY wPdWsULJqHR2Sg47kksiKba0yQipyps= X-Google-Smtp-Source: ABdhPJyhKwYIlVPhJa6OKmpPFj8E2qEVFynhQoagjVfkQIELeK3COGKLbkooDuZG9MGQfuIKG1tq6g== X-Received: by 2002:a9d:7854:: with SMTP id c20mr3028823otm.123.1599166830005; Thu, 03 Sep 2020 14:00:30 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id q15sm761135otl.65.2020.09.03.14.00.29 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:29 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 39/77] usb/dev-mtp: Fix Error double free after inotify failure Date: Thu, 3 Sep 2020 15:58:57 -0500 Message-Id: <20200903205935.27832-40-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=flukshun@gmail.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Gerd Hoffmann , qemu-stable@nongnu.org, Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Markus Armbruster error_report_err() frees its first argument. Freeing it again is wrong. Don't. Fixes: 47287c27d0c367a89f7b2851e23a7f8b2d499dd6 Cc: Gerd Hoffmann Cc: Daniel P. Berrangé Cc: qemu-stable@nongnu.org Signed-off-by: Markus Armbruster Message-Id: <20200630090351.1247703-7-armbru@redhat.com> Reviewed-by: Daniel P. Berrangé (cherry picked from commit 562a558647be6fe43e60f8bf3601e5b6122c0599) Signed-off-by: Michael Roth --- hw/usb/dev-mtp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index 168428156b..15a2243101 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -634,7 +634,6 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObject *o) error_reportf_err(err, "usb-mtp: failed to add watch for %s: ", o->path); - error_free(err); } else { trace_usb_mtp_file_monitor_event(s->dev.addr, o->path, "Watch Added"); @@ -1279,7 +1278,6 @@ static void usb_mtp_command(MTPState *s, MTPControl *c) if (err) { error_reportf_err(err, "usb-mtp: file monitoring init failed: "); - error_free(err); } else { QTAILQ_INIT(&s->events); } From patchwork Thu Sep 3 20:58:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274610 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4A64C43461 for ; Thu, 3 Sep 2020 21:25:13 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 39205206CA for ; Thu, 3 Sep 2020 21:25:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QBgHxt0S" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 39205206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:47194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwjI-0001pr-8U for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:25:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLU-000496-4G; Thu, 03 Sep 2020 17:00:36 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:45196) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLR-0007hM-I3; Thu, 03 Sep 2020 17:00:35 -0400 Received: by mail-oi1-x244.google.com with SMTP id d189so4479274oig.12; Thu, 03 Sep 2020 14:00: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=qqO0q4PuTgIHgmO4BpcbGdGSE0v/V3QX2HSz7/NQHAc=; b=QBgHxt0SENiRPU4IfFatZ/taoMjuFG2MVBKHGhSgZqndtCiIP33d5lETEbz2H9UZ3h 9lk1B9uc3Zg/6bls7qeNidcFOw/hRA5ydEM+j+SMKYrWKCveMqc4M5OqCXOpj996rDe2 2U/dEIJaLblSG0M9ybqmvz332W8f99SXMKeGQLNFejzBcS3PmbqTpHU+f39oAi3oXm8E FDdk9GV5H5YzndLxrbN61dyIEOuRCHpvoqUrgBFdUJjKS1RfVYLyFqnIXIFzy27tiXGU 1/Iszd9+6L/WR2cr4pkkaV3fHmCuSGM+Ge8Ru8G4q0sizzVTlTD7veUuJNKOkVZ5j5HB mPZg== 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=qqO0q4PuTgIHgmO4BpcbGdGSE0v/V3QX2HSz7/NQHAc=; b=jgVphdahdGhA69pH7xpwsn0ood1ab8Ca2jOaFB1ue9XuHKducJd/ACu8rP7kh6f1gy bFbkDGouhdkgkrnm8AR5Ujh8hrSO3sQ7a/O5BtZuFngNRhPsdRDPoX44FOzJQjwccxx4 W0MDC7EmurYAtLet8zkRl7D8ExzPhGWmORlVafPbIfCIiKvl6zOj3noCxWeNGWTeJa+c IHDkCo7wZCuC8q/iZyRDZlu8xFpYt+6V8pe0zoMULMhnoDVtkg4bB4AX/dCh/GcFvDx6 LWaO0JeHOvo8glKTNAhCcZETof/rncUgKVsk0Pex8KagwZi8YPOReklzHcLmchRrTnQv wa+Q== X-Gm-Message-State: AOAM531uXlRaUYzOLCRWWF8qpv/9Vvo7Gq3m1nE29ub0veYaNIlIQwrK t4Immt7B05D/bCBYU4CGwrwTDx7Jwtg= X-Google-Smtp-Source: ABdhPJwysubC3KWwQhGbppCyE3FDbdcV/xaohyynjtrIcBJB2TP6F94NIpqguL9tObaqtNXRh5XVIQ== X-Received: by 2002:aca:ed0a:: with SMTP id l10mr3405235oih.9.1599166831704; Thu, 03 Sep 2020 14:00:31 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id z17sm836821oop.15.2020.09.03.14.00.31 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:31 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 40/77] nbd: Avoid off-by-one in long export name truncation Date: Thu, 3 Sep 2020 15:58:58 -0500 Message-Id: <20200903205935.27832-41-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Eric Blake When snprintf returns the same value as the buffer size, the final byte was truncated to ensure a NUL terminator. Fortunately, such long export names are unusual enough, with no real impact other than what is displayed to the user. Fixes: 5c86bdf12089 Reported-by: Max Reitz Signed-off-by: Eric Blake Message-Id: <20200622210355.414941-1-eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy (cherry picked from commit 00d69986da83a74f6f5731c80f8dd09fde95d19a) Signed-off-by: Michael Roth --- block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/nbd.c b/block/nbd.c index bfc0be6af6..bf3fbebfa0 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -2011,7 +2011,7 @@ static void nbd_refresh_filename(BlockDriverState *bs) len = snprintf(bs->exact_filename, sizeof(bs->exact_filename), "nbd://%s:%s", host, port); } - if (len > sizeof(bs->exact_filename)) { + if (len >= sizeof(bs->exact_filename)) { /* Name is too long to represent exactly, so leave it empty. */ bs->exact_filename[0] = '\0'; } From patchwork Thu Sep 3 20:58:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274591 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19B74C43461 for ; Thu, 3 Sep 2020 21:40:48 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CE006206CA for ; Thu, 3 Sep 2020 21:40:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pqg7KMIG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE006206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwyN-000689-1K for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:40:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58838) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLW-0004Dl-Cq; Thu, 03 Sep 2020 17:00:38 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:43221) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLU-0007ib-Ky; Thu, 03 Sep 2020 17:00:37 -0400 Received: by mail-ot1-x344.google.com with SMTP id v16so3994049otp.10; Thu, 03 Sep 2020 14:00:35 -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=8v8cuelUN4GNnzF59rwkxhYKTzREPiqFMDPQs9yKMw0=; b=pqg7KMIGJN9NCyskp9TxALEebbe2hnxOeBp3wDMrF0amNBxJCYXxUtMbYtJH2bH+Jk /cFzgUNPC2ebnNUSg3RCbwKH1RhcpeAIWCTfhz0OFNqRKaNLX9/gI2K/uysvDqNtD4Xk zvt0UNYOjngrUoTgXz254s4ClzdQTp8mifyJXbqypMR1gLv6JOcTWU/GUyw8SuYKUqFb DkvKWPtVyZyRUbqRlg/CWfJbjQypLvDYgRdo99oiU8PFpQBASzowhyyLBCKAila3RS0o GB0AtkJ273Pfzxn8YTUfCjUwFVzrsKNWB5MMN6FM/27bxVlY5dKEwEdabSTgB2hmD20J 4K9Q== 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=8v8cuelUN4GNnzF59rwkxhYKTzREPiqFMDPQs9yKMw0=; b=QUJ7kH+R2cBPfKf7bof3XFyynMK4gM6G90JxpC/nZCJOpfNicSnd5OL3SPVWgxd8lg Y7qExqi4j3VPgmzQLBZeelurhrEECAmZnfWfmpOM8rIJTiwnF2ZTvXywuv5oEiHsZ7lY FTZg4/+Z8NCw0mHaYvYr1vWhN/N6tTGrcnKviwBkCW12KcFue6tcAo+M8XWYLGWcMuoB d3KXpSjDn3aoSuCZqc+yc+OeTmdYwlNUG1JXCobbu5DlD959ELpJg220HKcCa0X9W97c Qw3+SGptOiegUgp9st22d1sqxRcSDlPneymc5m67qN+45/N1qoFaCT3a6rrwAHnxCgOs IPTQ== X-Gm-Message-State: AOAM530n4M2xk7AfLu8Y3KMQftCBN75FB06rRO1Ng5RNJdTVGOdelJAj EAJDuN3LvTs1vOIZET9Dk94aW79d3oQ= X-Google-Smtp-Source: ABdhPJyPCW6QRlx6jtQmUeoHq2d4RKVAnO8JJyumEjJidIygoWugUOcTaffMWyByF+VeoyjuaECHhw== X-Received: by 2002:a9d:2667:: with SMTP id a94mr2869390otb.45.1599166834423; Thu, 03 Sep 2020 14:00:34 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id i6sm718571oib.17.2020.09.03.14.00.33 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:33 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 41/77] chardev/tcp: Fix error message double free error Date: Thu, 3 Sep 2020 15:58:59 -0500 Message-Id: <20200903205935.27832-42-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=flukshun@gmail.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lichun , qemu-stable@nongnu.org, Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: lichun Errors are already freed by error_report_err, so we only need to call error_free when that function is not called. Cc: qemu-stable@nongnu.org Signed-off-by: lichun Message-Id: <20200621213017.17978-1-lichun@ruijie.com.cn> Reviewed-by: Markus Armbruster [Commit message improved, cc: qemu-stable] Signed-off-by: Markus Armbruster (cherry picked from commit ed4e0d2ef140aef255d67eec30767e5fcd949f58) Signed-off-by: Michael Roth --- chardev/char-socket.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index e5ee685f8c..58917870cd 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -142,6 +142,8 @@ static void check_report_connect_error(Chardev *chr, "Unable to connect character device %s: ", chr->label); s->connect_err_reported = true; + } else { + error_free(err); } qemu_chr_socket_restart_timer(chr); } @@ -1083,7 +1085,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque) if (qio_task_propagate_error(task, &err)) { tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED); check_report_connect_error(chr, err); - error_free(err); goto cleanup; } From patchwork Thu Sep 3 20:59:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274589 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7437EC10DAA for ; Thu, 3 Sep 2020 21:42:23 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 34711206D4 for ; Thu, 3 Sep 2020 21:42:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NytrLzEv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 34711206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40824 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwzu-0000rf-9c for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:42:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58860) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLX-0004H8-LS; Thu, 03 Sep 2020 17:00:39 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:34043) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLV-0007j6-Q4; Thu, 03 Sep 2020 17:00:39 -0400 Received: by mail-ot1-x341.google.com with SMTP id h17so3208928otr.1; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=oq3rmsSk19eLVuEsf+6dlcXRckj5zxSI8+Z4QSek0vY=; b=NytrLzEvZr5suz5KCF8Sr8zpgeUvW9nKWqe1oDnIcXMiempLk16DQdgW5Ox3FRHUWa 6ZFxjbaDqBKZ8aCg2pU3floklNA7GfoSjXYCDjSKmLj5PTD/AfrTs8Bc7KtjvFhUncB9 yeLXsWmlJRx02utc0MUbZRWqwIm1dZ707kXw2mt6QhzVR3DmW2mEBOTF9oumgYdsDT1V 9OU61FYTK+LB0ijyeC2X5CUisf6y2p+/MvWw3EG6yEve6TKkqdTSSf/lPP8xBgZTk2Kl 2hHd1Jz4OL6h5PpbkZKK5V+P/wL4S7u3xuMVtnl6QEIcjx6X1J5NfQasQrIko3wY+L5F lGeQ== 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=oq3rmsSk19eLVuEsf+6dlcXRckj5zxSI8+Z4QSek0vY=; b=WnLj0Gm/eX2DBqNv1dJFgcBT7+u13la3xwEiooBGlqrP9Y/qlOW/SbBlk5uvKVUIVT FU4FvZ34zeqwcAwXEWCHSzOaVh8nt1O73GfEsgKRg7PYRbfkuXPwM4OkilheEhZZUOOw yYAQOKEgyrbA6MpORlW7V8Fi7MhJrXFjQDEOk+j9mrc5rJSmsSE4jebssgAP0f/fHrqe XcVITCqYnDBvpR5r7EtBe+E6bkOOwopNfb1gT5vxoeJSwmx8Ox4M6En8Mm8YZv3K9whj fLCtWn3h9By9TKgBDPOto6kkF87ri17kQlWuS8G3jxBcerMC0cvTDO+hZNKsm0O8d42g fK7Q== X-Gm-Message-State: AOAM532zfnaMj+JULz3O4ORfxxtJiSj1gXFnfMrLKlc4Ml1kGuUfkMF1 ahbKXBaghGxbBICEFzciVLrY4ltgRTY= X-Google-Smtp-Source: ABdhPJxMbaKF221BCEUMmGDIG9PgxnO3mN2NQLXNWT8unBeRfmIT/cOMKHxDkxsIB65AAdwI0qXgmg== X-Received: by 2002:a9d:6e19:: with SMTP id e25mr2935901otr.219.1599166836076; Thu, 03 Sep 2020 14:00:36 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id c26sm767254otr.50.2020.09.03.14.00.34 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:35 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 42/77] qga: fix assert regression on guest-shutdown Date: Thu, 3 Sep 2020 15:59:00 -0500 Message-Id: <20200903205935.27832-43-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=flukshun@gmail.com; helo=mail-ot1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Marc-André Lureau Since commit 781f2b3d1e ("qga: process_event() simplification"), send_response() is called unconditionally, but will assert when "rsp" is NULL. This may happen with QCO_NO_SUCCESS_RESP commands, such as "guest-shutdown". Fixes: 781f2b3d1e5ef389b44016a897fd55e7a780bf35 Cc: Michael Roth Reported-by: Christian Ehrhardt Signed-off-by: Marc-André Lureau Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Christian Ehrhardt Tested-by: Christian Ehrhardt Cc: qemu-stable@nongnu.org Signed-off-by: Michael Roth (cherry picked from commit 844bd70b5652f30bbace89499f513e3fbbb6457a) Signed-off-by: Michael Roth --- qga/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qga/main.c b/qga/main.c index f0e454f28d..3febf3b0fd 100644 --- a/qga/main.c +++ b/qga/main.c @@ -531,7 +531,11 @@ static int send_response(GAState *s, const QDict *rsp) QString *payload_qstr, *response_qstr; GIOStatus status; - g_assert(rsp && s->channel); + g_assert(s->channel); + + if (!rsp) { + return 0; + } payload_qstr = qobject_to_json(QOBJECT(rsp)); if (!payload_qstr) { From patchwork Thu Sep 3 20:59:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274614 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 176F9C43461 for ; Thu, 3 Sep 2020 21:20:51 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CE2AC206CA for ; Thu, 3 Sep 2020 21:20:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nm7RClVB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE2AC206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:55594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwf4-0001lU-0W for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:20:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLc-0004TB-OL; Thu, 03 Sep 2020 17:00:44 -0400 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:43289) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLa-0007kB-O3; Thu, 03 Sep 2020 17:00:44 -0400 Received: by mail-oi1-x241.google.com with SMTP id i17so4497639oig.10; Thu, 03 Sep 2020 14:00:41 -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=aFXlKroXX9PZfDrZJYi+g7t/+H6Gi17j+AWN8w9Ef+w=; b=Nm7RClVBy0aE0za/FeXkR32oswAuJoDh6+tPXlgPu48N13ZGdeixiNLNApnnZZ81VW xZt/RhLysbsjE49kKDNGKrID7thKLFlp5K/qSFQ9tDZXnVWB2/s4X2bdBvPi0jHBURs+ 0F1Ci93ZLiyYTPU1KWBlIIKU279d5kmWDjp0JU4v2aeg7LIY0QSm0C38zcikEVrDEsfJ e6BzOtNGH8oUimgvFU+1VHEV9KQUw6I6dMRAA2SmrlT6LqCsT/RtnQ8tMCVvCkWfM2Ct uFq+NRz4qOHipRoOKnkSwuxhAqymrQehIezkH/qJT01/8gDxoX39RBheCN9pqDjVcGrz O7vQ== 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=aFXlKroXX9PZfDrZJYi+g7t/+H6Gi17j+AWN8w9Ef+w=; b=TIpzGlO+A/iR3TnkMbRkF1drjX/D9RwHMSwJ0o+I9rlhsXqNn9LR2ygxODE5vppbjf m5oVM9YPVHmAnP5+Te4ppjopNBpK6kQ9gBWwwmfGHSL6TVby25BOzBXKOhiUmW2VZNZ/ wTB2QqAgkd2Oqbt+mR1KXMALlh8KcItZ8h2M2aSMRYmV85KhgWQ2XxSj6l4ylHPkrd8/ dQQcsTHpvMVmjce3O7cVadS1N8QCJkZmXH/2vf1STXCVQHdxWKnyzXR7QEFH634z7Mzz 9T3Us/Xnp000wSqkL4d2W5Y9dwUkCxl3LJzhxKcmVuOa5T/wvQZVjZ0/8KRFtJtpx5V+ 0z/g== X-Gm-Message-State: AOAM5325ZXCzeMbgZXgeUhrql3QYIj2dPJgV16ZDtwQ7UJbARmPeoqwf BHqw9apYp+BpC5vZFqKqzPeaR/z9Xic= X-Google-Smtp-Source: ABdhPJwbNxC9B5yMu5eeSA4PVYpgTPmk2aSAdUOx9z0QLgP9MDB80u/73FtACuwPmrbv6rmzQW8bDw== X-Received: by 2002:aca:413:: with SMTP id 19mr3405785oie.149.1599166840933; Thu, 03 Sep 2020 14:00:40 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id r6sm798219otc.0.2020.09.03.14.00.40 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:40 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 45/77] docs/orangepi: Add instructions for resizing SD image to power of two Date: Thu, 3 Sep 2020 15:59:03 -0500 Message-Id: <20200903205935.27832-46-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::241; envelope-from=flukshun@gmail.com; helo=mail-oi1-x241.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Niek Linnenbank , qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Niek Linnenbank SD cards need to have a size of a power of two. Update the Orange Pi machine documentation to include instructions for resizing downloaded images using the qemu-img command. Signed-off-by: Niek Linnenbank Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20200712183708.15450-1-nieklinnenbank@gmail.com> Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit 1c2329b5d644bad16e888d095e2021ad682201d9) Signed-off-by: Michael Roth --- docs/system/arm/orangepi.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/system/arm/orangepi.rst b/docs/system/arm/orangepi.rst index c41adad488..6f23907fb6 100644 --- a/docs/system/arm/orangepi.rst +++ b/docs/system/arm/orangepi.rst @@ -127,6 +127,16 @@ can be downloaded from: Alternatively, you can also choose to build you own image with buildroot using the orangepi_pc_defconfig. Also see https://buildroot.org for more information. +When using an image as an SD card, it must be resized to a power of two. This can be +done with the qemu-img command. It is recommended to only increase the image size +instead of shrinking it to a power of two, to avoid loss of data. For example, +to prepare a downloaded Armbian image, first extract it and then increase +its size to one gigabyte as follows: + +.. code-block:: bash + + $ qemu-img resize Armbian_19.11.3_Orangepipc_bionic_current_5.3.9.img 1G + You can choose to attach the selected image either as an SD card or as USB mass storage. For example, to boot using the Orange Pi PC Debian image on SD card, simply add the -sd argument and provide the proper root= kernel parameter: @@ -213,12 +223,12 @@ Next, unzip the NetBSD image and write the U-Boot binary including SPL using: $ dd if=/path/to/u-boot-sunxi-with-spl.bin of=armv7.img bs=1024 seek=8 conv=notrunc Finally, before starting the machine the SD image must be extended such -that the NetBSD kernel will not conclude the NetBSD partition is larger than -the emulated SD card: +that the size of the SD image is a power of two and that the NetBSD kernel +will not conclude the NetBSD partition is larger than the emulated SD card: .. code-block:: bash - $ dd if=/dev/zero bs=1M count=64 >> armv7.img + $ qemu-img resize armv7.img 2G Start the machine using the following command: From patchwork Thu Sep 3 20:59:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274608 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B076C43461 for ; Thu, 3 Sep 2020 21:27:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E99DD206CA for ; Thu, 3 Sep 2020 21:27:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lMu5vpeO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E99DD206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwlj-000657-0R for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:27:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLe-0004Vz-2h; Thu, 03 Sep 2020 17:00:46 -0400 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]:41601) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLc-0007kY-39; Thu, 03 Sep 2020 17:00:45 -0400 Received: by mail-oi1-x22e.google.com with SMTP id x69so1542249oia.8; Thu, 03 Sep 2020 14:00:43 -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=YlRR9CLu8pLCxrGm4VFmO7pbcuXORptj+5WioQ7RYAg=; b=lMu5vpeOPhsnDJFIOWNy5i66L9lUm78uyEphlubxdhVerVljO+MyKdeqfLbKI+68Q8 5UUiNjGcYgCDaKpVCLo2DcgErFwFyXrClqZz42O1mfmgbsmbfe2P46xn5XFZAVuQdB/Z +t2YcLuFfrdA1UH86TsLhCoflAkADZum7mUCvgF/Va6gNMU6nm3xilUpEs2Q9+TQ/y9T qPLHGg9mXWUJEBND4wbAa/+Cr0+LnoTlOgVVIyK4BMNFcgbhxXleRjmNdEg84qPJFaBj GF6aeAEIBlB3z3RgTzn+nqOhHruDwl2rKHwtP2q8nlh8tHHl++hPxFQFcL2xyULhSIzZ 40dw== 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=YlRR9CLu8pLCxrGm4VFmO7pbcuXORptj+5WioQ7RYAg=; b=rg9D2WyMmFrHRzzXecc1vk6vqtoK4XhjDCXLSohwAe3P1Nt7Rng3FudGeh9A6Ny/8+ 1C4s2SBG7J/DJ+Ri9de5nnlRlFpDatwVmKGFWl4mupfUSTGmH83lGpdpRacqj460fyTk neH3UQhVLwze3J93GkGRQievd0ynM1qs6NF/EkoMKH+5FWAteJzl07NQJzGHaNYCJTgA Cr5Qixi3r3bMAk1qhFsneELYWoD/9H0/RYFkPIVAq0zgL0ZOYf30prsMKmXk36HhL3dG fRAX2YV6VVDOBvAwrjFO0VDdjfGQxbmveqV+e2YEic7yVCLYMDC+svM+oAcvoPzbYs3b Q06Q== X-Gm-Message-State: AOAM533PXYz4bmVluuBbuGZJlrbiTFW0nNBCfQyVf1dz2iUmEUtUVJoi 6yk0fkzCdgMMoZNYaZi6M2h0BpIDQIQ= X-Google-Smtp-Source: ABdhPJxPJYagNytP/LA0l4fON6ARdmNJNQPAiYzdc10gqSKN4LkJKr49j0JjAqnfpc/W7Fsv9vcMCw== X-Received: by 2002:aca:f109:: with SMTP id p9mr3162838oih.84.1599166842222; Thu, 03 Sep 2020 14:00:42 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id e9sm814722oog.10.2020.09.03.14.00.41 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:41 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 46/77] tests/acceptance/boot_linux: Tag tests using a SD card with 'device:sd' Date: Thu, 3 Sep 2020 15:59:04 -0500 Message-Id: <20200903205935.27832-47-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22e; envelope-from=flukshun@gmail.com; helo=mail-oi1-x22e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Avocado tags are handy to automatically select tests matching the tags. Since these tests use a SD card, tag them. We can run all the tests using a SD card at once with: $ avocado --show=app run -t u-boot tests/acceptance/ $ AVOCADO_ALLOW_LARGE_STORAGE=ok \ avocado --show=app \ run -t device:sd tests/acceptance/ Fetching asset from tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_sd Fetching asset from tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_bionic Fetching asset from tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9 (1/3) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_sd: PASS (19.56 s) (2/3) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_bionic: PASS (49.97 s) (3/3) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9: PASS (20.06 s) RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 90.02 s Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Cleber Rosa Tested-by: Cleber Rosa Message-Id: <20200713183209.26308-4-f4bug@amsat.org> (cherry picked from commit b7dcbf1395da960ec3c313300dc0030674de8cd1) Signed-off-by: Michael Roth --- tests/acceptance/boot_linux_console.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index f825cd9ef5..d864d22ca8 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -583,6 +583,7 @@ class BootLinuxConsole(Test): """ :avocado: tags=arch:arm :avocado: tags=machine:orangepi-pc + :avocado: tags=device:sd """ deb_url = ('https://apt.armbian.com/pool/main/l/' 'linux-4.20.7-sunxi/linux-image-dev-sunxi_5.75_armhf.deb') @@ -632,6 +633,7 @@ class BootLinuxConsole(Test): """ :avocado: tags=arch:arm :avocado: tags=machine:orangepi-pc + :avocado: tags=device:sd """ # This test download a 196MB compressed image and expand it to 932MB... @@ -673,6 +675,7 @@ class BootLinuxConsole(Test): """ :avocado: tags=arch:arm :avocado: tags=machine:orangepi-pc + :avocado: tags=device:sd """ # This test download a 304MB compressed image and expand it to 1.3GB... deb_url = ('http://snapshot.debian.org/archive/debian/' From patchwork Thu Sep 3 20:59:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274611 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 67B37C43461 for ; Thu, 3 Sep 2020 21:24:42 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 229E9206D4 for ; Thu, 3 Sep 2020 21:24:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eMitENwg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 229E9206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:43934 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwin-0000En-7J for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:24:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59038) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLf-0004Z3-QO; Thu, 03 Sep 2020 17:00:49 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]:42899) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLd-0007kv-QI; Thu, 03 Sep 2020 17:00:47 -0400 Received: by mail-ot1-x32e.google.com with SMTP id g10so3993933otq.9; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=ux/8hJOIk7YJVgmu1a1t9+FNPCZkfsFV76/cqQ5+uRo=; b=eMitENwgwj05y27bwjJ2t3LSkA6V65hwme7MdoCdCgk5tSR+OMt0ci9AijpSLtKL1J y4bW1XioUX1czvUZd/JGJW640pxQfY5xBz+DP46DODwad5TJWD6olLRePtgIu8GkMBZs hAJN74g0RpiO1loAMFmYDgmwXLCjv05C765Ei4WNypHDuqnXkN3x0m4Jn83empegIlvd 1hiG3oM/ayK5tGKN5NJfFBh3isQRJrxx5okOafSce5kHxeHpfuic6Xa9Q7W7eSzvJATp 9kgBws783kNpiMudB5sbuZFlrW8LHqY+riQTbDO3WwaPooMKcIPlEzwIzvrhBIreQOy4 ziLA== 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=ux/8hJOIk7YJVgmu1a1t9+FNPCZkfsFV76/cqQ5+uRo=; b=JucXsMzbVrJZDiCOKt2us3t6MO7z0NB8lXUc7x/A0cYtNmCPAQ9ZI2sVV3UuRhDmve Pmo6gAPHRZjtpOPX9deFKgha5GOiCI+sWh+xcss3AwGOsMREf/EMtrc8zif8ILSYfcoY nQlPnbScyIQRrxD+dfE4H+tybZ2uXd+LdMmV5a5ModPEHU+ISSkL8icbhnFqhPeB5rG0 p8hUwiBC6Rk7EeBjMUojfFmk0mzChHb/aJQPoTN8SFzA8Uf9LmrE3A0Kk7ywNTHlTDKr c9tfhL6S5SEOKguW13AD0doJN38MA+vMBzfy0xSksSt47AhPnrjxOhvtzgx2Q01BEXsO Kh9Q== X-Gm-Message-State: AOAM531cIRZseX1wiwZcudJ0RDIA/ePncxHc/ewxVHJZyaQ5QlTGr+H9 zYANkotUMToou0a2i88qUuVRJ4HIbykdDw== X-Google-Smtp-Source: ABdhPJyfJ6zCvTVTdZun6x1TJhInxj5REkyBXn1pB0GBkQ02qjzxeg2PJeQnuUMl9Iso+WbtMFmYLA== X-Received: by 2002:a05:6830:48:: with SMTP id d8mr2967894otp.272.1599166843910; Thu, 03 Sep 2020 14:00:43 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id x4sm724813oic.11.2020.09.03.14.00.43 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:43 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 47/77] tests/acceptance: allow console interaction with specific VMs Date: Thu, 3 Sep 2020 15:59:05 -0500 Message-Id: <20200903205935.27832-48-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32e; envelope-from=flukshun@gmail.com; helo=mail-ot1-x32e.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pavel Dovgalyuk , =?utf-8?q?Philippe_Mathieu?= =?utf-8?q?-Daud=C3=A9?= , qemu-stable@nongnu.org, Pavel Dovgalyuk Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Pavel Dovgalyuk Console interaction in avocado scripts was possible only with single default VM. This patch modifies the function parameters to allow passing a specific VM as a parameter to interact with it. Signed-off-by: Pavel Dovgalyuk Reviewed-by: Willian Rampazzo Reviewed-by: Alex Bennée Tested-by: Philippe Mathieu-Daudé Message-Id: <159073587933.20809.5122618715976660635.stgit@pasha-ThinkPad-X280> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit a5ba86d423c2b071894d86c60487f2317c7ffb60) Signed-off-by: Michael Roth --- tests/acceptance/avocado_qemu/__init__.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py index 59e7b4f763..77d1c1d9ff 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -69,13 +69,15 @@ def pick_default_qemu_bin(arch=None): def _console_interaction(test, success_message, failure_message, - send_string, keep_sending=False): + send_string, keep_sending=False, vm=None): assert not keep_sending or send_string - console = test.vm.console_socket.makefile() + if vm is None: + vm = test.vm + console = vm.console_socket.makefile() console_logger = logging.getLogger('console') while True: if send_string: - test.vm.console_socket.sendall(send_string.encode()) + vm.console_socket.sendall(send_string.encode()) if not keep_sending: send_string = None # send only once msg = console.readline().strip() @@ -115,7 +117,8 @@ def interrupt_interactive_console_until_pattern(test, success_message, _console_interaction(test, success_message, failure_message, interrupt_string, True) -def wait_for_console_pattern(test, success_message, failure_message=None): +def wait_for_console_pattern(test, success_message, failure_message=None, + vm=None): """ Waits for messages to appear on the console, while logging the content @@ -125,7 +128,7 @@ def wait_for_console_pattern(test, success_message, failure_message=None): :param success_message: if this message appears, test succeeds :param failure_message: if this message appears, test fails """ - _console_interaction(test, success_message, failure_message, None) + _console_interaction(test, success_message, failure_message, None, vm=vm) def exec_command_and_wait_for_pattern(test, command, success_message, failure_message=None): From patchwork Thu Sep 3 20:59:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274605 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1BA00C43461 for ; Thu, 3 Sep 2020 21:29:31 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CB7CD206CA for ; Thu, 3 Sep 2020 21:29:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="me8UnZwy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CB7CD206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:37444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwnR-00015R-T0 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:29:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59060) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLg-0004Zh-IV; Thu, 03 Sep 2020 17:00:52 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:43223) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLe-0007lG-Vv; Thu, 03 Sep 2020 17:00:48 -0400 Received: by mail-oi1-x22a.google.com with SMTP id i17so4497863oig.10; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=U3kLnDJsPOvbeGSaO4+ay3+JWfM5GJq3iPIdpdJdTMY=; b=me8UnZwyLchAouob20O7i4g3EaPf04MgoHN+HgY/AQ/xAvxYgI5bJpA1tT+BE0cnSX UOQTl0pUgF7V3h935m0UQ4lnPP2GrzzPE3f+3wqxlnIS7J0ASy5gerkJbaD1kIOiAz5z CjfkHvpEzLpEIRzKUBuFvn5QpxUdyW8f4o5geIoTkibOgRXyJ8ttM3JjMrlN/k85N7uV 0V1VpFFVQ8YGw+1yTXV+iUxdwDR27s4s9VlKDoqNEmZmxoZCaXhoQ/Ob9xv3DPl8Bn0N cvQ2v+SxDAsKvSG63ACRtqKmQfVO2/cvnjQbN7mAQRtk88SGkRKP2DTTCoZDPQ9OKqHY 2V4Q== 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=U3kLnDJsPOvbeGSaO4+ay3+JWfM5GJq3iPIdpdJdTMY=; b=mI597YaD/vKXWXRkEzGyfAtw/hDYw5BWgVJghO3j1C/dgLlrSJlbEzXQOOSyh0zuw0 DqyGaZVoKQfVJ7QvLVHx/dyWQL9dy25VCDrMbwYmmRDUfGzNyeoJtBR48fh0KKfErcr3 bVCpce4DLQtJGbIPj6VTl9CMp56fGAem+G409THHrFUJLhFVE3pu+AGTrTB0aQSM8IH3 lr/z4DwU4OHKDVC9/tUYciPobn4g71YF2Toh/X5zT9jMeyzWQcRIOlJBmlZRlVRMqy8d 74sonbA0yQeP0TR/GgThSng2kfmgz+OCGr2ZWMFvocrYjNpnpf5Spk3CQjkEyHHFqrU2 SLbg== X-Gm-Message-State: AOAM530HbUugU4Qgfl3d1OGJ5+XTLkzBFX8+meIiXLojEcnARl7ZylZG gsgS4J++PbfEAGiYfyrUZoWui2kHfCTXIg== X-Google-Smtp-Source: ABdhPJzSxQeRHsdEaC8JNxIr0SQIlzhHbcL1pWsS0dflGGPBcU6uzAG6uvCBeCPS9A9znjhS4yZPQw== X-Received: by 2002:a05:6808:3bb:: with SMTP id n27mr3256076oie.130.1599166845094; Thu, 03 Sep 2020 14:00:45 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id n37sm766978ota.20.2020.09.03.14.00.44 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:44 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 48/77] tests/acceptance: refactor boot_linux to allow code reuse Date: Thu, 3 Sep 2020 15:59:06 -0500 Message-Id: <20200903205935.27832-49-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=flukshun@gmail.com; helo=mail-oi1-x22a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pavel Dovgalyuk , =?utf-8?q?Philippe_Mathieu?= =?utf-8?q?-Daud=C3=A9?= , qemu-stable@nongnu.org, Pavel Dovgalyuk Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Pavel Dovgalyuk This patch moves image downloading functions to the separate class to allow reusing them from record/replay tests. Signed-off-by: Pavel Dovgalyuk Tested-by: Philippe Mathieu-Daudé Message-Id: <159073593167.20809.17582679291556188984.stgit@pasha-ThinkPad-X280> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit 1c80c87c8c2489e4318c93c844aa29bc1d014146) Signed-off-by: Michael Roth --- tests/acceptance/boot_linux.py | 49 ++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py index 075a386300..3aa57e88b0 100644 --- a/tests/acceptance/boot_linux.py +++ b/tests/acceptance/boot_linux.py @@ -26,22 +26,8 @@ KVM_NOT_AVAILABLE = ACCEL_NOT_AVAILABLE_FMT % "KVM" TCG_NOT_AVAILABLE = ACCEL_NOT_AVAILABLE_FMT % "TCG" -class BootLinux(Test): - """ - Boots a Linux system, checking for a successful initialization - """ - - timeout = 900 - chksum = None - - def setUp(self): - super(BootLinux, self).setUp() - self.vm.add_args('-smp', '2') - self.vm.add_args('-m', '1024') - self.prepare_boot() - self.prepare_cloudinit() - - def prepare_boot(self): +class BootLinuxBase(Test): + def download_boot(self): self.log.debug('Looking for and selecting a qemu-img binary to be ' 'used to create the bootable snapshot image') # If qemu-img has been built, use it, otherwise the system wide one @@ -60,17 +46,17 @@ class BootLinux(Test): if image_arch == 'ppc64': image_arch = 'ppc64le' try: - self.boot = vmimage.get( + boot = vmimage.get( 'fedora', arch=image_arch, version='31', checksum=self.chksum, algorithm='sha256', cache_dir=self.cache_dirs[0], snapshot_dir=self.workdir) - self.vm.add_args('-drive', 'file=%s' % self.boot.path) except: self.cancel('Failed to download/prepare boot image') + return boot.path - def prepare_cloudinit(self): + def download_cloudinit(self): self.log.info('Preparing cloudinit image') try: cloudinit_iso = os.path.join(self.workdir, 'cloudinit.iso') @@ -81,9 +67,32 @@ class BootLinux(Test): # QEMU's hard coded usermode router address phone_home_host='10.0.2.2', phone_home_port=self.phone_home_port) - self.vm.add_args('-drive', 'file=%s,format=raw' % cloudinit_iso) except Exception: self.cancel('Failed to prepared cloudinit image') + return cloudinit_iso + +class BootLinux(BootLinuxBase): + """ + Boots a Linux system, checking for a successful initialization + """ + + timeout = 900 + chksum = None + + def setUp(self): + super(BootLinux, self).setUp() + self.vm.add_args('-smp', '2') + self.vm.add_args('-m', '1024') + self.prepare_boot() + self.prepare_cloudinit() + + def prepare_boot(self): + path = self.download_boot() + self.vm.add_args('-drive', 'file=%s' % path) + + def prepare_cloudinit(self): + cloudinit_iso = self.download_cloudinit() + self.vm.add_args('-drive', 'file=%s,format=raw' % cloudinit_iso) def launch_and_wait(self): self.vm.set_console() From patchwork Thu Sep 3 20:59:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274612 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B972EC43461 for ; Thu, 3 Sep 2020 21:22:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7CB99206CA for ; Thu, 3 Sep 2020 21:22:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Q7YXVtjV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7CB99206CA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwgm-00055Z-Lm for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:22:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59076) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLh-0004Zm-Iu; Thu, 03 Sep 2020 17:00:52 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:41877) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLg-0007le-3J; Thu, 03 Sep 2020 17:00:49 -0400 Received: by mail-ot1-x343.google.com with SMTP id a65so4001887otc.8; Thu, 03 Sep 2020 14:00:47 -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=nd9Ud5qwe+YYQ0q+uyzFJ7HGCJCNwB347EpetEguZ38=; b=Q7YXVtjV08PkuXoPal29fKq1rGAjHbOQyUSXkOWgVKqLdY339NfDytdc4dfto1Szvc NwUAqvtWdTlfMwsc1Ku6QdDi4ws6gFHqgmECzkYtRxy37/98kEiVOJkJPierJeKJtBrk gxMsNjDauY9xM6Gpfwr+AMN/rkQKplDi40Z+Fl7tzyeweeFVciGrss9x7yh7gUWZUBTg I9UUDvABxoWGdWziGAbP32Y0EzMnQIIQaxcsR33clCdN4F96VLO3sCod9O3Td6MaHaNQ hB12O6UtrH1vlTJL+YKkNkKxsTQBQw7JG4AQlERdto7ZHxnvc2A5P8pW0NG26J9t16iH zgjQ== 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=nd9Ud5qwe+YYQ0q+uyzFJ7HGCJCNwB347EpetEguZ38=; b=jQ5ElctZ2EY3fOoImmuV0nMyYUb+VKGnSsz0JW9J9B8UWUtu1BVp5sQxUV6frz6HC8 XnAcpuh5Q0dtekodW780SjUwevVk1ZbgBNBYw5k0ZPzqCoidy5s/KetREV1it6W5btb1 sfNrGKGgMRrFZ58s8dMXVr1t5XByBCMVTX/47Kxblbyoaj4kOO4eUXzrgdZnjNE2ziVo UtLmhDNxb0uIJ3m2mSifQAcY1Ndas33GWysVQ7soBRubp4XJeSDRlC1J3wLN3YhbTmHC Mm3RhsHFD3dUneHMg3U3i/DNvc1312a7+9E07KffWwkyz8Prm7bRgQ2KXtumTGutbVjd jI/A== X-Gm-Message-State: AOAM530Y8ZaSOdTjfA5VEMkS0v1xCpjCy4J2Y4CbonIFyii5Lrc6YJLR qMfjoQWEriZUiTeutfnfn67toWXcvQofyw== X-Google-Smtp-Source: ABdhPJwNe3F7a0p4wQIZ06EGu2v/ssbcYaWdWIL8AR2YCYHvh5EwBprN0RW0b3XBUzRvYXF+LS5tfg== X-Received: by 2002:a9d:eed:: with SMTP id 100mr3004606otj.20.1599166846385; Thu, 03 Sep 2020 14:00:46 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id q15sm761296otl.65.2020.09.03.14.00.45 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:45 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 49/77] tests/acceptance: refactor boot_linux_console test to allow code reuse Date: Thu, 3 Sep 2020 15:59:07 -0500 Message-Id: <20200903205935.27832-50-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Pavel Dovgalyuk , =?utf-8?q?Philippe_Mathieu?= =?utf-8?q?-Daud=C3=A9?= , qemu-stable@nongnu.org, Pavel Dovgalyuk Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Pavel Dovgalyuk This patch splits code in BootLinuxConsole class into two different classes to allow reusing it by record/replay tests. Signed-off-by: Pavel Dovgalyuk Reviewed-by: Alex Bennée Tested-by: Philippe Mathieu-Daudé Message-Id: <159073588490.20809.13942096070255577558.stgit@pasha-ThinkPad-X280> Signed-off-by: Philippe Mathieu-Daudé (cherry picked from commit 12121c496fcc609e23033c4a36399b54f98bcd56) Signed-off-by: Michael Roth --- tests/acceptance/boot_linux_console.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index d864d22ca8..e4204d8f09 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -28,19 +28,13 @@ try: except CmdNotFoundError: P7ZIP_AVAILABLE = False -class BootLinuxConsole(Test): - """ - Boots a Linux kernel and checks that the console is operational and the - kernel command line is properly passed from QEMU to the kernel - """ - - timeout = 90 - +class LinuxKernelTest(Test): KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' - def wait_for_console_pattern(self, success_message): + def wait_for_console_pattern(self, success_message, vm=None): wait_for_console_pattern(self, success_message, - failure_message='Kernel panic - not syncing') + failure_message='Kernel panic - not syncing', + vm=vm) def extract_from_deb(self, deb, path): """ @@ -79,6 +73,13 @@ class BootLinuxConsole(Test): os.chdir(cwd) return os.path.normpath(os.path.join(self.workdir, path)) +class BootLinuxConsole(LinuxKernelTest): + """ + Boots a Linux kernel and checks that the console is operational and the + kernel command line is properly passed from QEMU to the kernel + """ + timeout = 90 + def test_x86_64_pc(self): """ :avocado: tags=arch:x86_64 From patchwork Thu Sep 3 20:59:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306252 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A2F8C43461 for ; Thu, 3 Sep 2020 21:44:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2B533206D4 for ; Thu, 3 Sep 2020 21:44:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="egGKumQM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B533206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:53704 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx2M-000663-AS for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:44:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59098) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLj-0004Zt-GL; Thu, 03 Sep 2020 17:00:52 -0400 Received: from mail-oi1-x241.google.com ([2607:f8b0:4864:20::241]:39855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLh-0007mL-LT; Thu, 03 Sep 2020 17:00:51 -0400 Received: by mail-oi1-x241.google.com with SMTP id r64so4523234oib.6; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=4/widhycmlff/G5xPs8XzJrOIKkwzYT0jr445QWuLTo=; b=egGKumQMv/pwMM8PYIs9wKNjFEWrcsQ22M2UjU6ql1giFI0ifC3FasfBnzkaiGuh7J yj57uT21Zyg/HMXDkcgE0TJqjMgTh4F4eDwuvVYlFlq82RXtLv+b0OXXDO1vMeRo+98O lJnjuDoWahtvrK7R79Yawq6fyPgcvmhQ4e6Uou6fy2iqsVBuVhQBYiQDoSNG/RL+VSob gCBoMQKfJWSQ2uC+dHtPOAwS12MUTViNAjX7ILl0eB49jmfB9D93te7lfT51asnuNbHu SNNzAln1y4JuDQq+QtUIjqS9d/BLTBLHAH6eWlAxo93dtdqDKVgnH0YSCiBxRpYopgFs 84og== 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=4/widhycmlff/G5xPs8XzJrOIKkwzYT0jr445QWuLTo=; b=JgYzj2fS5nzPlIbRhi2liazGYrYljiyTY2P+9UxmYCuSxLjzvZoslXqVy0pm3i06gt 6GQ/4zvCcNKUtApPKPrYc55o6mUNJLNSlqGiwIT61LN8Ct7X/d8GdXSJcLShaQbNBP4x ajd+297YMgmaKS5M+RHcTZQcn2uKFiE6raHQm4nXuJNzPqRdQ0fhuOQg7qw5xtGQRFLE Vm/0NPdU+rjZ8hqE964OJQVZXPw+JlM2LEtdJv2jxBm8uPNtq9ZbNRZHA0IQCkzunvyn j5iZQhDw+tQjMC5Jj2sU5R38pjqGKp2uigF51s2Q47smRmD1ttmzu86yA41uDuR8lSLV O5EA== X-Gm-Message-State: AOAM531gwcwcWBj7Ik0BktTL8BSXPGmqVy5eTf6tGc8hNyztof9yEgrv 47T5VgHWTntwAUtSObUSwdF3O7flmbTtSg== X-Google-Smtp-Source: ABdhPJzSOzyd3+UKrbITiyHPC4b0UoL3XNgzbNmUvfZJltpixxPNepSVJgsz/dj5l848S7pOarLXTg== X-Received: by 2002:aca:bb07:: with SMTP id l7mr3406165oif.98.1599166847684; Thu, 03 Sep 2020 14:00:47 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id f12sm822017ooi.42.2020.09.03.14.00.47 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:47 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 50/77] tests/acceptance/boot_linux: Expand SD card image to power of 2 Date: Thu, 3 Sep 2020 15:59:08 -0500 Message-Id: <20200903205935.27832-51-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::241; envelope-from=flukshun@gmail.com; helo=mail-oi1-x241.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé In few commits we won't allow SD card images with invalid size (not aligned to a power of 2). Prepare the tests: add the pow2ceil() and image_pow2ceil_expand() methods and resize the images (expanding) of the tests using SD cards. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Cleber Rosa Message-Id: <20200713183209.26308-5-f4bug@amsat.org> (cherry picked from commit 6a289a5ba3383e17fb47029720425bef42e424d7) Signed-off-by: Michael Roth --- tests/acceptance/boot_linux_console.py | 31 ++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py index e4204d8f09..db901c1348 100644 --- a/tests/acceptance/boot_linux_console.py +++ b/tests/acceptance/boot_linux_console.py @@ -28,6 +28,22 @@ try: except CmdNotFoundError: P7ZIP_AVAILABLE = False +""" +Round up to next power of 2 +""" +def pow2ceil(x): + return 1 if x == 0 else 2**(x - 1).bit_length() + +""" +Expand file size to next power of 2 +""" +def image_pow2ceil_expand(path): + size = os.path.getsize(path) + size_aligned = pow2ceil(size) + if size != size_aligned: + with open(path, 'ab+') as fd: + fd.truncate(size_aligned) + class LinuxKernelTest(Test): KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' @@ -600,6 +616,7 @@ class BootLinuxConsole(LinuxKernelTest): rootfs_path_xz = self.fetch_asset(rootfs_url, asset_hash=rootfs_hash) rootfs_path = os.path.join(self.workdir, 'rootfs.cpio') archive.lzma_uncompress(rootfs_path_xz, rootfs_path) + image_pow2ceil_expand(rootfs_path) self.vm.set_console() kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + @@ -637,7 +654,7 @@ class BootLinuxConsole(LinuxKernelTest): :avocado: tags=device:sd """ - # This test download a 196MB compressed image and expand it to 932MB... + # This test download a 196MB compressed image and expand it to 1GB image_url = ('https://dl.armbian.com/orangepipc/archive/' 'Armbian_19.11.3_Orangepipc_bionic_current_5.3.9.7z') image_hash = '196a8ffb72b0123d92cea4a070894813d305c71e' @@ -645,6 +662,7 @@ class BootLinuxConsole(LinuxKernelTest): image_name = 'Armbian_19.11.3_Orangepipc_bionic_current_5.3.9.img' image_path = os.path.join(self.workdir, image_name) process.run("7z e -o%s %s" % (self.workdir, image_path_7z)) + image_pow2ceil_expand(image_path) self.vm.set_console() self.vm.add_args('-drive', 'file=' + image_path + ',if=sd,format=raw', @@ -678,7 +696,7 @@ class BootLinuxConsole(LinuxKernelTest): :avocado: tags=machine:orangepi-pc :avocado: tags=device:sd """ - # This test download a 304MB compressed image and expand it to 1.3GB... + # This test download a 304MB compressed image and expand it to 2GB deb_url = ('http://snapshot.debian.org/archive/debian/' '20200108T145233Z/pool/main/u/u-boot/' 'u-boot-sunxi_2020.01%2Bdfsg-1_armhf.deb') @@ -695,8 +713,9 @@ class BootLinuxConsole(LinuxKernelTest): image_hash = '2babb29d36d8360adcb39c09e31060945259917a' image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash) image_path = os.path.join(self.workdir, 'armv7.img') - image_drive_args = 'if=sd,format=raw,snapshot=on,file=' + image_path archive.gzip_uncompress(image_path_gz, image_path) + image_pow2ceil_expand(image_path) + image_drive_args = 'if=sd,format=raw,snapshot=on,file=' + image_path # dd if=u-boot-sunxi-with-spl.bin of=armv7.img bs=1K seek=8 conv=notrunc with open(uboot_path, 'rb') as f_in: @@ -704,12 +723,6 @@ class BootLinuxConsole(LinuxKernelTest): f_out.seek(8 * 1024) shutil.copyfileobj(f_in, f_out) - # Extend image, to avoid that NetBSD thinks the partition - # inside the image is larger than device size itself - f_out.seek(0, 2) - f_out.seek(64 * 1024 * 1024, 1) - f_out.write(bytearray([0x00])) - self.vm.set_console() self.vm.add_args('-nic', 'user', '-drive', image_drive_args, From patchwork Thu Sep 3 20:59:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274600 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8BC4FC433E2 for ; Thu, 3 Sep 2020 21:31:57 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4BE9D206D4 for ; Thu, 3 Sep 2020 21:31:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Clv9uVjf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4BE9D206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:47918 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwpo-0005Wh-Fo for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:31:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59192) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLo-0004fL-IG; Thu, 03 Sep 2020 17:00:56 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:35052) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLm-0007no-La; Thu, 03 Sep 2020 17:00:56 -0400 Received: by mail-ot1-x342.google.com with SMTP id i4so4038592ota.2; Thu, 03 Sep 2020 14:00: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 :mime-version:content-transfer-encoding; bh=ZILyJy1nBWpJrZHi1uzFvLmVU4Jp6kAKnyaWcu8nswA=; b=Clv9uVjffYFXUVLDfiEodN/TslU59h5Bg0WaWJSGDP198TnWg4/n44x3g5v9q/zw8I y1WlFu9igpVmSqrrxY58ZgKqrTscD2IrAt6R8QjhuvaFTajW9C12soRHUGNmcWiY9k3E D396CSb6hrIqBMIejNhuArSlpI2sNXGQbFmH2ljCxlk2JxbWTfNjmdzGGqyNR61OMY5Q tgujt45eKn7kW5vR+niV4/oqYsL9kEUIe471rx+4AM6DP3UEbYJFlBu4lX2nFVGIFFMp Nprm5qXKd1pIN8lawHCxmC9Hzyl0GWeB18g6LIoJ/WlepxNnBVtnUXzmb0ZkcfKwl7Tn X/kA== 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=ZILyJy1nBWpJrZHi1uzFvLmVU4Jp6kAKnyaWcu8nswA=; b=erPDFTM9Ai4o8PTmH4nl5e94k7nRCZ5LLT96ayu5b7bdrjH/UhS3nhb9JPDKrfBzv7 X9omx41Eav37qqzLaJu3KmqL0kc6H0jNHaxW9tvRFG6FHYJryY8Xr8f8tsNTo6fV4Su3 dSxTKeOS/f6S3E2Ko1yrX2/4/7o7LdgCmtVnDTqzIrJJSRvAyhCRuB/yP2h7WmLPJt/l p4Piq+pp0UsxLho24u0K7SbtkGuPkjm+8gbEioGrdhVHl3qc2E2xEYce4aZyLJZSw2m/ RhMLVWZTwq4MdACZn5QEEN5DnUlWV69pjZ/299zN8a0ObUN3+SvEUBE7Iuou1WAQlW/J 78XQ== X-Gm-Message-State: AOAM532yGiRSMzOtxNI1/Oj8TG3bP4xxANvBStndYTXiawCP3zAVXQwF QaQQDCFo2DS8WEmMIwyt+RxC+4mR8sM= X-Google-Smtp-Source: ABdhPJwM++6LzX4HTR1xyk+ivDuvEvim/0s7nyID5EMvqQE3qxi/bnz+TKqOHMosXyv2bY23ET6bcA== X-Received: by 2002:a9d:37b5:: with SMTP id x50mr2906344otb.57.1599166852742; Thu, 03 Sep 2020 14:00:52 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id y10sm849793ooh.9.2020.09.03.14.00.51 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:52 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 53/77] hw/sd/sdcard: Do not allow invalid SD card sizes Date: Thu, 3 Sep 2020 15:59:11 -0500 Message-Id: <20200903205935.27832-54-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::342; envelope-from=flukshun@gmail.com; helo=mail-ot1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé QEMU allows to create SD card with unrealistic sizes. This could work, but some guests (at least Linux) consider sizes that are not a power of 2 as a firmware bug and fix the card size to the next power of 2. While the possibility to use small SD card images has been seen as a feature, it became a bug with CVE-2020-13253, where the guest is able to do OOB read/write accesses past the image size end. In a pair of commits we will fix CVE-2020-13253 as: Read command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR occurred and no data transfer is performed. Write command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR occurred and no data transfer is performed. WP_VIOLATION errors are not modified: the error bit is set, we stay in receive-data state, wait for a stop command. All further data transfer is ignored. See the check on sd->card_status at the beginning of sd_read_data() and sd_write_data(). While this is the correct behavior, in case QEMU create smaller SD cards, guests still try to access past the image size end, and QEMU considers this is an invalid address, thus "all further data transfer is ignored". This is wrong and make the guest looping until eventually timeouts. Fix by not allowing invalid SD card sizes (suggesting the expected size as a hint): $ qemu-system-arm -M orangepi-pc -drive file=rootfs.ext2,if=sd,format=raw qemu-system-arm: Invalid SD card size: 60 MiB SD card size has to be a power of 2, e.g. 64 MiB. You can resize disk images with 'qemu-img resize ' (note that this will lose data if you make the image smaller than it currently is). Cc: qemu-stable@nongnu.org Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Peter Maydell Message-Id: <20200713183209.26308-8-f4bug@amsat.org> (cherry picked from commit a9bcedd15a5834ca9ae6c3a97933e85ac7edbd36) Signed-off-by: Michael Roth --- hw/sd/sd.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 04258f1816..c34435ede4 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -32,6 +32,7 @@ #include "qemu/osdep.h" #include "qemu/units.h" +#include "qemu/cutils.h" #include "hw/irq.h" #include "hw/registerfields.h" #include "sysemu/block-backend.h" @@ -2091,11 +2092,35 @@ static void sd_realize(DeviceState *dev, Error **errp) } if (sd->blk) { + int64_t blk_size; + if (blk_is_read_only(sd->blk)) { error_setg(errp, "Cannot use read-only drive as SD card"); return; } + blk_size = blk_getlength(sd->blk); + if (blk_size > 0 && !is_power_of_2(blk_size)) { + int64_t blk_size_aligned = pow2ceil(blk_size); + char *blk_size_str; + + blk_size_str = size_to_str(blk_size); + error_setg(errp, "Invalid SD card size: %s", blk_size_str); + g_free(blk_size_str); + + blk_size_str = size_to_str(blk_size_aligned); + error_append_hint(errp, + "SD card size has to be a power of 2, e.g. %s.\n" + "You can resize disk images with" + " 'qemu-img resize '\n" + "(note that this will lose data if you make the" + " image smaller than it currently is).\n", + blk_size_str); + g_free(blk_size_str); + + return; + } + ret = blk_set_perm(sd->blk, BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE, BLK_PERM_ALL, errp); if (ret < 0) { From patchwork Thu Sep 3 20:59:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274586 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AF2CC43461 for ; Thu, 3 Sep 2020 21:47:23 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 38DCA20639 for ; Thu, 3 Sep 2020 21:47:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b0JRqocK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 38DCA20639 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx4k-00013T-BP for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:47:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59218) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLp-0004ie-Q7; Thu, 03 Sep 2020 17:00:57 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:35988) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLn-0007o6-UX; Thu, 03 Sep 2020 17:00:57 -0400 Received: by mail-ot1-x342.google.com with SMTP id 109so4028785otv.3; Thu, 03 Sep 2020 14:00:55 -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=HoXMwJ6jL8idPvXw+qvTHpg54S9w/O8tNTCV84dfgYM=; b=b0JRqocK7EDtDSG09dqWAJm6fybhUrz8wMy3oOQXWBJW70aXXiBeg4VJJtpFDaDqOm BhyJblnWclBDnenefmAm18UFt9TGKkqnYAFI1X3SNwaHgkoYZrEEZAcBAxqqNZZtvrmg ZauK2qR0CCK5G2wOhVEf58VOdNWj38hbDwh/NZKRSi1OzZalU0YX941XweOcA4+vPQ0F OLZC/sNzRKxKE1taNK4k8DAgFMAVxxozXp1+6rY9alhbxnPlYnkw7U2Gq9jYAAOmgzZh GRt56E9mxsQyLWME4udye6+wqPfLRVzrmm/CKh/u2KLaApvV1sZuIWmYhp5MYuQZVQew tGXQ== 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=HoXMwJ6jL8idPvXw+qvTHpg54S9w/O8tNTCV84dfgYM=; b=Ris8jzcOd+3hS8iJhPZ82joKC6WgaIF8SKMHps8u14ogdSc7vosaey07TmxktGgsZZ R6IDVs8DU/8BJeRlJaOdnghXFtMFbjuoUuly9cWrJDnaEhxL1gZY74YyDJPTmkAdO1YD bJcRe+zQsWpCgMAQ9LH/4UJor5Fwrq0I+uaFLdpMJO9UsemjiGKrpQF7qHIAHDcBZ02H Gx3Ywc2HaORcudnhPdoMOs3apnabguw2WT8CM9snlC1+MomNeEyRXVGrjv42oiE1IXYF /EqZE+0u2a2FnA5idOitiqsfKpALp/cFGNbgZ67M2tJ8Ma5elltbEUAkbn65bkES/i4l z4lQ== X-Gm-Message-State: AOAM5300CGhszzf68D5adcz4p+0DT0FqBI5GUA/ZqnF2Gwo9o+hALlxN ZxaqOiQAdkrI8VKNXz6meoH9SVdZgHs= X-Google-Smtp-Source: ABdhPJxkB/6NybeUL8fCrkagp8muImqa+wg8bUBdvjcfapkmjFV5xZsyGRgxSO9lVZAx6NE/WURgYw== X-Received: by 2002:a9d:3bb7:: with SMTP id k52mr3031468otc.242.1599166854163; Thu, 03 Sep 2020 14:00:54 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id g23sm869321ooh.45.2020.09.03.14.00.53 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:53 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 54/77] hw/sd/sdcard: Update coding style to make checkpatch.pl happy Date: Thu, 3 Sep 2020 15:59:12 -0500 Message-Id: <20200903205935.27832-55-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::342; envelope-from=flukshun@gmail.com; helo=mail-ot1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé To make the next commit easier to review, clean this code first. Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Reviewed-by: Alexander Bulekov Message-Id: <20200630133912.9428-3-f4bug@amsat.org> (cherry picked from commit 794d68de2f021a6d3874df41d6bbe8590ec05207) Signed-off-by: Michael Roth --- hw/sd/sd.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index c34435ede4..b927f7966d 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1160,8 +1160,9 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) sd->data_start = addr; sd->data_offset = 0; - if (sd->data_start + sd->blk_len > sd->size) + if (sd->data_start + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; + } return sd_r1; default: @@ -1176,8 +1177,9 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) sd->data_start = addr; sd->data_offset = 0; - if (sd->data_start + sd->blk_len > sd->size) + if (sd->data_start + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; + } return sd_r1; default: @@ -1222,12 +1224,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) sd->data_offset = 0; sd->blk_written = 0; - if (sd->data_start + sd->blk_len > sd->size) + if (sd->data_start + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; - if (sd_wp_addr(sd, sd->data_start)) + } + if (sd_wp_addr(sd, sd->data_start)) { sd->card_status |= WP_VIOLATION; - if (sd->csd[14] & 0x30) + } + if (sd->csd[14] & 0x30) { sd->card_status |= WP_VIOLATION; + } return sd_r1; default: @@ -1246,12 +1251,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) sd->data_offset = 0; sd->blk_written = 0; - if (sd->data_start + sd->blk_len > sd->size) + if (sd->data_start + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; - if (sd_wp_addr(sd, sd->data_start)) + } + if (sd_wp_addr(sd, sd->data_start)) { sd->card_status |= WP_VIOLATION; - if (sd->csd[14] & 0x30) + } + if (sd->csd[14] & 0x30) { sd->card_status |= WP_VIOLATION; + } return sd_r1; default: From patchwork Thu Sep 3 20:59:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306262 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6B45C433E2 for ; Thu, 3 Sep 2020 21:33:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 66C8F206D4 for ; Thu, 3 Sep 2020 21:33:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LbCA72sb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66C8F206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57244 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwrc-0000zx-Hs for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:33:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLr-0004lE-1V; Thu, 03 Sep 2020 17:00:59 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:38021) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLp-0007oK-2p; Thu, 03 Sep 2020 17:00:58 -0400 Received: by mail-ot1-x341.google.com with SMTP id y5so4017464otg.5; Thu, 03 Sep 2020 14:00:56 -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=c/XJ4cq89jTidCJNmUTRkTTxQKsiT4FwBhQY5tAah/0=; b=LbCA72sb0bW2BOnLqpeCgCYTIX0V7dPXWccAVW1OylGFmSc64t0d+brN8UkODmKVFk KuGEyMaXy498WdQB1g9OI/+3mQ7nNFe4+QhAubD2O1PzKZeaNqLyuVvCdLJbGidjICSw /wg+KvXrm6zG9tqux+mgsVFttt0TxZSD3xsevW2gNjpMnnKULAv1g9ngz56Ht/0UojIv 09ZWH8T2WCsxtW9W9C6vwgSe2p53v3XeEIhOr4BHn8qwaFue5o3CG48Ij4uSbPmIfsLL GJNEPx/ohRD8U5scxHB42b0Qkl2A6iAj8t6poRtXN/Vie099ciiszlfNQsr7yW2hfpD1 GyLA== 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=c/XJ4cq89jTidCJNmUTRkTTxQKsiT4FwBhQY5tAah/0=; b=KG8kUILphz3Z5/hg7UNZ8HsVaTvrMttD3uOi4vvTuLf7QH1t2epr3Km4xtnwZ2fLgk zRlC5LskJzeGrpFPeulpizZ9/skn4ksot9wEN0yz2OZrneE+tHGZQ0fQkdXvghOLa2wa 6kyRLkMqL2mqlz027cAmAXqJmJoYDVkTMb5IpAUvXHf7pBZnz6Vy7ZGSpA1NnjF/EKYw v58hHuoigwogqaadS30NMuw13bmsnureK15fDPRcHTntJjT7P4KWjo+0iall1IwtDxqz joYU5RRv+M2fFVlQ/90DtkdUlEULt/ZV/MFYnZN0UtLykOe96e8FeXQvyGhE160DS1Fl sstg== X-Gm-Message-State: AOAM531wUUwv29sNaOuIx3ETUuHkogmrsC3y5dMPvOQFb+ewXQABkcmC p1Q8+jeohwj+ZnPEt3br2LJMGHFNDuQ= X-Google-Smtp-Source: ABdhPJz6LNJZd6F8S0FPtauEwH+iTHJPRz5DFMyEmgcUOKWYgpc2KiegdJl3AM+2Kq12xxkVLCzHaQ== X-Received: by 2002:a05:6830:1d8a:: with SMTP id y10mr3186967oti.92.1599166855226; Thu, 03 Sep 2020 14:00:55 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id g62sm761424otg.56.2020.09.03.14.00.54 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:54 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 55/77] hw/sd/sdcard: Do not switch to ReceivingData if address is invalid Date: Thu, 3 Sep 2020 15:59:13 -0500 Message-Id: <20200903205935.27832-56-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=flukshun@gmail.com; helo=mail-ot1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé Only move the state machine to ReceivingData if there is no pending error. This avoids later OOB access while processing commands queued. "SD Specifications Part 1 Physical Layer Simplified Spec. v3.01" 4.3.3 Data Read Read command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR occurred and no data transfer is performed. 4.3.4 Data Write Write command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR occurred and no data transfer is performed. WP_VIOLATION errors are not modified: the error bit is set, we stay in receive-data state, wait for a stop command. All further data transfer is ignored. See the check on sd->card_status at the beginning of sd_read_data() and sd_write_data(). Fixes: CVE-2020-13253 Cc: qemu-stable@nongnu.org Reported-by: Alexander Bulekov Buglink: https://bugs.launchpad.net/qemu/+bug/1880822 Reviewed-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis Message-Id: <20200630133912.9428-6-f4bug@amsat.org> (cherry picked from commit 790762e5487114341cccc5bffcec4cb3c022c3cd) Signed-off-by: Michael Roth --- hw/sd/sd.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index b927f7966d..837fe9053d 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1156,13 +1156,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) case 17: /* CMD17: READ_SINGLE_BLOCK */ switch (sd->state) { case sd_transfer_state: - sd->state = sd_sendingdata_state; - sd->data_start = addr; - sd->data_offset = 0; - if (sd->data_start + sd->blk_len > sd->size) { + if (addr + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; + return sd_r1; } + + sd->state = sd_sendingdata_state; + sd->data_start = addr; + sd->data_offset = 0; return sd_r1; default: @@ -1173,13 +1175,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) case 18: /* CMD18: READ_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: - sd->state = sd_sendingdata_state; - sd->data_start = addr; - sd->data_offset = 0; - if (sd->data_start + sd->blk_len > sd->size) { + if (addr + sd->blk_len > sd->size) { sd->card_status |= ADDRESS_ERROR; + return sd_r1; } + + sd->state = sd_sendingdata_state; + sd->data_start = addr; + sd->data_offset = 0; return sd_r1; default: @@ -1219,14 +1223,17 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) /* Writing in SPI mode not implemented. */ if (sd->spi) break; + + if (addr + sd->blk_len > sd->size) { + sd->card_status |= ADDRESS_ERROR; + return sd_r1; + } + sd->state = sd_receivingdata_state; sd->data_start = addr; sd->data_offset = 0; sd->blk_written = 0; - if (sd->data_start + sd->blk_len > sd->size) { - sd->card_status |= ADDRESS_ERROR; - } if (sd_wp_addr(sd, sd->data_start)) { sd->card_status |= WP_VIOLATION; } @@ -1246,14 +1253,17 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) /* Writing in SPI mode not implemented. */ if (sd->spi) break; + + if (addr + sd->blk_len > sd->size) { + sd->card_status |= ADDRESS_ERROR; + return sd_r1; + } + sd->state = sd_receivingdata_state; sd->data_start = addr; sd->data_offset = 0; sd->blk_written = 0; - if (sd->data_start + sd->blk_len > sd->size) { - sd->card_status |= ADDRESS_ERROR; - } if (sd_wp_addr(sd, sd->data_start)) { sd->card_status |= WP_VIOLATION; } From patchwork Thu Sep 3 20:59:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 249046 Delivered-To: patch@linaro.org Received: by 2002:a17:906:6447:0:0:0:0 with SMTP id l7csp802468ejn; Thu, 3 Sep 2020 14:48:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxt1PAw/jGvhy4uAaRyvCJgdMni9xWYJSs4SXAPiBPSnXm8HaqxG+JycHXzzh5iduXw37Vm X-Received: by 2002:a5b:5d1:: with SMTP id w17mr5194295ybp.65.1599169728523; Thu, 03 Sep 2020 14:48:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599169728; cv=none; d=google.com; s=arc-20160816; b=OeD0Yr416LqZWYoF8xyj9E1DhGAUh8+Hs9piiNc8rRoyTYjKxv54JoOAfpLxsBdsuR tSctrj8Wdkqf8N5ZDFEv0bLC9baypTrBcxr3OjSlFkXpyT81RodX6uh5XzUd25Y4jZ9/ XJ7Cw6rtADdlK8HBdWZ1FS0Wq9OJz3nQjbg0CqLcEzoZA1V1u/mM9pH88taLA30RUgFP FXVVE3IfU4NxX1BcodGB9I37e2TZn1NA7/DmesR2qrHKqcb2817+PMo+nJgpyh9SdFLC XjzG0brjnk6ufF5VgYU+gDDSlGhnCJ30k/GMxHpmQj39UzIjDgWHIsfKTXEHWnWe2r9B PxkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=hBv/652Zc3vxedUaDXUBkYliuRqc7HcQ84NCJAihy/4=; b=LO1jmy590Kr0XEGuOZFQ4rvTdqdMyh6cLTWr8ad6fHlsQ4EWsoL8uTh37+hjbiiM2b lABH7+NH+CpPi0FoCq53qykJV0BR83I1mYGUX6WEhsMGyI9OiPjLJsmj9y/nPuoUgQzP AFrZ1ArGpKPiElSrLfjF5g6tLYdJ3D7+KGQOo1rZ16xhr7prre3eqR25UtHc0sTphHXv /kOflvT8JibX1Zr11QYhkzUNsuV8xWW/rYV0k22Udwh5wq/K1RpY+5NZ3mkEd+nNiw4n E3x2/eOTFFy/dQEV7Fs/q82XSmAyOJ4gwhKqiJ4dWXprb/rn/AfWkwHE7c67Q58XmBq6 i4BA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=KTm9I81M; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id o8si920844ybc.312.2020.09.03.14.48.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:48:48 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=KTm9I81M; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from localhost ([::1]:36566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx5s-0002IF-S0 for patch@linaro.org; Thu, 03 Sep 2020 17:48:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59258) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLr-0004nW-Vc; Thu, 03 Sep 2020 17:01:00 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:39860) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLq-0007ol-2p; Thu, 03 Sep 2020 17:00:59 -0400 Received: by mail-oi1-x244.google.com with SMTP id r64so4523757oib.6; Thu, 03 Sep 2020 14:00:57 -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=hBv/652Zc3vxedUaDXUBkYliuRqc7HcQ84NCJAihy/4=; b=KTm9I81M8cWYvo2JUKgDM5VV/LzuZirf1yRjQgxyMQNbNO+1D3w4WRZdp7f3Ud8bOB qXF0jcg+dpuHkix0MkTQDcBRgf5oE9Low9Vk5jZSROQ8qav8pLZzCRPxjhQuuFxyRC5F uQb7Ej2AMfgQ2OV1SsXMVMQvZjH40i+1bf7vKMzNhkQltemPAqClQl35wrmTErUh0pf1 ckVNPgh/omhhwyOb0T4oE2JkmAxs7LZNTuma93y4sUtUHNYY3a7fLKsY+vkMPh8eT/VD ZcuwBxZnlLB2iGYsyaCAUCG6yfEcY97EVIafu5j0H3gU8LIiPO69O38WYvfIoFIsZPoQ tpRw== 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=hBv/652Zc3vxedUaDXUBkYliuRqc7HcQ84NCJAihy/4=; b=G6FA79Et4BQy61frLxEZ+HqNVALJJB4iYeBMFKh3zpwmVKw/uJKxQP1DAvmhBMmvxZ IS1EZ1AMvc3qzcKkneIV6fAX8XoXGshBAdqNf4Gg9d8kQJVk+7hWdDGQMaAKjJQLPNVm 8nJCWvO73FWgC3MYHDmx7M/+4nG3uNStwac+FcKNXGT+ZrWyC5xTN6TYWqtdwrcZSvTP htiEi2EVCMp5IrYPM76S3/dLs7qBqSisDW2x7PhU5Edv3WCR9P95OUg4DW8XwWy3VJFd DNNhjcCLt+lFb+Jh50VztjPZhG5gEAk9mR4hDWxDAJsorlWKjXDvFeoGxm/DVGkCK7uC dPzg== X-Gm-Message-State: AOAM530G+cEKWN68HoraZEU9yGBY3oZRzzXxOWNzYf3CGWYPnSM6bdOL krsV6A1+JNcRoyvSn/I6Gz3UBBdJoO8= X-Received: by 2002:aca:44c3:: with SMTP id r186mr3256905oia.53.1599166856381; Thu, 03 Sep 2020 14:00:56 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t22sm765241otq.44.2020.09.03.14.00.55 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:55 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 56/77] target/hppa: Free some temps in do_sub Date: Thu, 3 Sep 2020 15:59:14 -0500 Message-Id: <20200903205935.27832-57-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Two temps allocated but not freed. Do enough subtractions within a single TB and one can run out of temps entirely. Fixes: b2167459ae ("target-hppa: Implement basic arithmetic") Buglink: https://bugs.launchpad.net/qemu/+bug/1880287 Tested-by: Sven Schnelle Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson Message-Id: <20200720174039.517902-1-richard.henderson@linaro.org> (cherry picked from commit 79826f99feb7222b7804058f0b4ace9ee0546361) Signed-off-by: Michael Roth --- target/hppa/translate.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.17.1 diff --git a/target/hppa/translate.c b/target/hppa/translate.c index 52d7bea1ea..4bd22d4820 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -1294,6 +1294,8 @@ static void do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1, save_or_nullify(ctx, cpu_psw_cb_msb, cb_msb); save_gpr(ctx, rt, dest); tcg_temp_free(dest); + tcg_temp_free(cb); + tcg_temp_free(cb_msb); /* Install the new nullification. */ cond_free(&ctx->null_cond); From patchwork Thu Sep 3 20:59:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274596 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31DDBC2BD0F for ; Thu, 3 Sep 2020 21:35:56 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E86F92065E for ; Thu, 3 Sep 2020 21:35:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="t3Z9QAOi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E86F92065E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:37224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwtf-0004SY-4z for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:35:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLt-0004qx-LY; Thu, 03 Sep 2020 17:01:01 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:39459) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLr-0007p4-AV; Thu, 03 Sep 2020 17:01:01 -0400 Received: by mail-ot1-x341.google.com with SMTP id u25so4010867otq.6; Thu, 03 Sep 2020 14:00:58 -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=ZGuqioQ81AJZZTMFCUZaggIBmQ2hKOBauKIF8BVgJKE=; b=t3Z9QAOiFV38Bvy88UMabvWB9aka5Pwguc3uO0J5C8WmqW80gF67t7YPJU2BG/LrH9 lUzjKYN/vh8bqGQjoK+mTkmOEqbqXm2EbRCCwpw6iei5dH6vEVxYsB7UpT2i2gXYhJrC 4ZYMCMXd3Z9eWG/90IbLbrp20bgEOFpObOJbhVyPzfzJTkcxyBljCII27wY+7tL51L7D NPQkNuf3drqJ2n20YHA1gigfbKN2447i7zI4gi4B5bRz67rXV6A98c/aPttVK3H7IZp2 JCiDZKFo18bRt2Bzzw+dLo639fUho/YYZWS4cTFd1h5GbBPwM13pecNBSPqQdTg/4W0D jXug== 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=ZGuqioQ81AJZZTMFCUZaggIBmQ2hKOBauKIF8BVgJKE=; b=FPfHB3HFoABVxP6Va9/PQU6Ip6XzcKwSW/xqkL4g5Tq7AFaJbwnS+ZMMdnWSd32n5L Py9729vGGUXstPo4RnrANumgQKtV7gjwrm6WxHVGuD1arXa2tt91zsXt1NDDNSmNAFc9 oUKRey0c6xgWGtUmufylw1D7JxKZxpG8jmlCQPKZFVCPEEZkQcTU1N6jqn1h6RYizzxt 3op9PDKYT1tHjjviZWJ/KxgqbUI7fjGCvyYcSjhAjfJQQ5UkzgjtuIf7kitSlfjwci46 tt1Jxc2Uedu7Bpddsjz60JlrVYwUfSxAWSHsGP6EMHqqNTFyecnIVEDn+wK6xvGs1biC TtiQ== X-Gm-Message-State: AOAM531OJ9nWXEO3oHu7i/y4JaBmryCsk6/a651vri8zI1T/qetlcg+2 ASNJxPBnnrEDuWx67uATPs82kjIPgo7qrw== X-Google-Smtp-Source: ABdhPJy/v8mjZfWytj+5MDYTP3PhgJaV7wQ7wilhaIq21KHwQ+47BAM3XHGdzoDCkoPhWz7w6zwxpw== X-Received: by 2002:a05:6830:19ee:: with SMTP id t14mr3084951ott.171.1599166857524; Thu, 03 Sep 2020 14:00:57 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id g18sm760177otj.41.2020.09.03.14.00.56 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:57 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 57/77] tpm: tpm_spapr: Exit on TPM backend failures Date: Thu, 3 Sep 2020 15:59:15 -0500 Message-Id: <20200903205935.27832-58-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::341; envelope-from=flukshun@gmail.com; helo=mail-ot1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Berger , qemu-stable@nongnu.org, Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefan Berger Exit on TPM backend failures in the same way as the TPM CRB and TIS device models do. With this change we now get an error report when the backend did not start up properly: error: internal error: qemu unexpectedly closed the monitor: 2020-07-07T12:49:28.333928Z qemu-system-ppc64: tpm-emulator: \ TPM result for CMD_INIT: 0x101 operation failed Signed-off-by: Stefan Berger Reviewed-by: Marc-André Lureau Message-id: 20200707201625.4177419-2-stefanb@linux.vnet.ibm.com (cherry picked from commit f8b332a1ff107dc014a52eaf9bf547995205f18a) Signed-off-by: Michael Roth --- hw/tpm/tpm_spapr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/tpm/tpm_spapr.c b/hw/tpm/tpm_spapr.c index ce65eb2e45..b67aafb24e 100644 --- a/hw/tpm/tpm_spapr.c +++ b/hw/tpm/tpm_spapr.c @@ -306,7 +306,10 @@ static void tpm_spapr_reset(SpaprVioDevice *dev) TPM_SPAPR_BUFFER_MAX); tpm_backend_reset(s->be_driver); - tpm_spapr_do_startup_tpm(s, s->be_buffer_size); + + if (tpm_spapr_do_startup_tpm(s, s->be_buffer_size) < 0) { + exit(1); + } } static enum TPMVersion tpm_spapr_get_version(TPMIf *ti) From patchwork Thu Sep 3 20:59:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306251 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 134C6C433E2 for ; Thu, 3 Sep 2020 21:46:54 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C801B20658 for ; Thu, 3 Sep 2020 21:46:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CzikMDXV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C801B20658 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx4G-0000V0-Vk for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:46:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59344) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLv-0004u3-05; Thu, 03 Sep 2020 17:01:03 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:40119) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLs-0007pU-Bw; Thu, 03 Sep 2020 17:01:02 -0400 Received: by mail-oi1-x244.google.com with SMTP id t76so4500619oif.7; Thu, 03 Sep 2020 14:00:59 -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=mcURfk5W32wdNJCNi/KCDUV8DNNwwxKl3IilrVi/wvI=; b=CzikMDXVLKlKz+t6WqY0ApV+J4z9aQkNKVvl2qWLWG/dsu4TN3E5z6gzWCugT4G8GE y2a9PQN6PrAB1CTLD0ksddMJ1xofxWOW4gFNEBTONfCXdz/Al1cLEMZREnSJdHb/a0Ss DNqpNOE/+IhpiJWmIEEpRf+uPweWlLbBPe2HGRe8iplq6W8bfkjX4JWThEabF4LHC+F/ craUQKzKXV4zIL3/UeM9ikFR+hXmqT6XomjxX6KgdP+vqZ+WuKfyN/HpoK811LBXsA3A SynCplR3iRFe1265c/IElQoqgvS0kC83NJUgloTS5P/fRdtDQryhR2PlTvFQdL6q1IPV D8Aw== 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=mcURfk5W32wdNJCNi/KCDUV8DNNwwxKl3IilrVi/wvI=; b=uMTXCxIvSEgQdv0H9d8m1pGpqlU3Q3KiVTk1tJtgOozBJIv6RpAUMNjo1pXSYggVGy 1RNZ2TYg50uUSC+KFGVOr6MSKJIUfeia+Hk3QLbkyG/jrxicspWY4ey12zdBiWPThSYl YQAN+DPmhMDJGJjrooT9z8GyOzYbdgcK1iyzk1VJtH79fOsjCOpm8qrblVSa4qvLBKaH GktX8bgqbcOtXWEWK4dJzKqEo1jUPGH+xKAbpdyXRoNVCjFKqL3Wa79ZBW0IxxgGcPcq byzE188ER8XJF6isBj9MRys4kdg5/PNuRAgk1R+ijF3gOYrjg1vF7hf8qFGL1D5fS720 R6rg== X-Gm-Message-State: AOAM532nCarS1jntynEQbnuR6LyBY/nsIkiMDEYT+Naggcrl+rgf0KjP bF5g3QsCTi2pL/3AIFrBDWRXo3Q+VCgIxA== X-Google-Smtp-Source: ABdhPJxkAI4+DhwXOvR1NOhvLXk3KuK5QvhSEJhe0qtC7QaI9W88quAYK3iU0t9wz4cPa/X/oBAtjg== X-Received: by 2002:aca:c3c7:: with SMTP id t190mr3419222oif.167.1599166858651; Thu, 03 Sep 2020 14:00:58 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 187sm707041oie.42.2020.09.03.14.00.58 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:58 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 58/77] tests: tpm: Skip over pcrUpdateCounter byte in result comparison Date: Thu, 3 Sep 2020 15:59:16 -0500 Message-Id: <20200903205935.27832-59-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Berger , qemu-stable@nongnu.org, Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Stefan Berger The TPM 2 code in libtpms was fixed to handle the PCR 'TCB group' according to the PCClient profile. The change of the PCRs belonging to the 'TCB group' now affects the pcrUpdateCounter in the TPM2_PCRRead() responses where its value is now different (typically lower by '1') than what it was before. To not fail the tests, we skip the comparison of the 14th byte, which represents the pcrUpdateCounter. Signed-off-by: Stefan Berger Reviewed-by: Marc-André Lureau Message-id: 20200707201625.4177419-3-stefanb@linux.vnet.ibm.com (cherry picked from commit df8a7568932e4c3c930fdfeb228dd72b4bb71a1f) Signed-off-by: Michael Roth --- tests/qtest/tpm-util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/qtest/tpm-util.c b/tests/qtest/tpm-util.c index 34efae8f18..58a9593745 100644 --- a/tests/qtest/tpm-util.c +++ b/tests/qtest/tpm-util.c @@ -139,7 +139,11 @@ void tpm_util_pcrread(QTestState *s, tx_func *tx, tx(s, tpm_pcrread, sizeof(tpm_pcrread), buffer, sizeof(buffer)); - g_assert_cmpmem(buffer, exp_resp_size, exp_resp, exp_resp_size); + /* skip pcrUpdateCounter (14th byte) in comparison */ + g_assert(exp_resp_size >= 15); + g_assert_cmpmem(buffer, 13, exp_resp, 13); + g_assert_cmpmem(&buffer[14], exp_resp_size - 14, + &exp_resp[14], exp_resp_size - 14); } bool tpm_util_swtpm_has_tpm2(void) From patchwork Thu Sep 3 20:59:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306248 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1B9AC433E2 for ; Thu, 3 Sep 2020 21:50:14 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8CE7620639 for ; Thu, 3 Sep 2020 21:50:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nwEX8IKy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CE7620639 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:45390 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx7V-0005uP-LM for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:50:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59378) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLw-0004wu-As; Thu, 03 Sep 2020 17:01:04 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:38503) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLt-0007ph-Gi; Thu, 03 Sep 2020 17:01:03 -0400 Received: by mail-oi1-x22a.google.com with SMTP id y6so4514799oie.5; Thu, 03 Sep 2020 14:01:00 -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=J5mrcebEEpiZtia/WaO3DA7r7OpI7bIX2tDGLHmyEhs=; b=nwEX8IKyKQ6TAIjvlR2cfpkbAihlKBEihOhbC/fOnOiMXJ9pUJxOPnSawUZGUABA2p bPTHgS5cTadspvYZHFMP4h9I8YM0L0R+co3E30Z7ph4AjeIR7HB1RvRXxEOkwtRTO2dV TGmyOwR1WBRElufNieK0Zpk/YPoDaiAogwtvoPDDh3Eq3JyTzlT87evFM0RZPm7QfVvm aeJ2SdNEz1ir2uDIhFX7BiZLqa5whvDc5TpzCZyxvZVb21dirxsves9YELD242gRBTG9 kndy2NuMBc9jNIrYqETHd+z2/MG5lkHiBIJT7IiTJUZCYzcmUbt2d0WYXSZ0QTCDVlxr j9tQ== 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=J5mrcebEEpiZtia/WaO3DA7r7OpI7bIX2tDGLHmyEhs=; b=kF2qCqg5474k4bM/CCht0fIwPCuMh3vmC/HlDXhSdBRtcQ6daj9AXsKhVf2B+3nBrR TyKWwW9UryMsfk0LQQviRY3QpgMXryrtyMOhNSfk3Nn0DMjtfG6fVpT3g+CDJqJbTIQS Nywm50hYHWh6WOL6LClWiFEGcLQJaAGAQOz3NJYcbMHESu4vJxv4vAkR8UyCryeDUW95 DFozfJT5uVJ3TL1eiEyr/Img+gWJCgZvsAF4GtbH7fyavghypUcxe7LilFZl0mlVgnOt h8QvTzdQmqONgJKg312he84uoLrbsV0Nb6BREHx6uQ/Uxr61IaGG+oFjKsbMmX0TbTBF Fpbg== X-Gm-Message-State: AOAM532skcsyw6FRJsz8o/fSv6pgoOpa7A8F00jFLY9kxe2LwvEpBwqa 5/pl7wxMblVEqSPfkXTVdBHVwLs/6BPr3w== X-Google-Smtp-Source: ABdhPJypvYo3b+ibutqMHOkUgaTnTNWJsv5Lh1c4Kuv9x3z0NkReaNS8d62fwIhGRyHCuZ8lQdzvEA== X-Received: by 2002:aca:eb82:: with SMTP id j124mr3356100oih.39.1599166859683; Thu, 03 Sep 2020 14:00:59 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l3sm842867oom.18.2020.09.03.14.00.59 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:00:59 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 59/77] qdev: Fix device_add DRIVER,help to print to monitor Date: Thu, 3 Sep 2020 15:59:17 -0500 Message-Id: <20200903205935.27832-60-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=flukshun@gmail.com; helo=mail-oi1-x22a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , qemu-stable@nongnu.org, Markus Armbruster Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Markus Armbruster Help on device properties gets printed to stdout instead of the monitor. If you have the monitor anywhere else, no help for you. Broken when commit e1043d674d "qdev: use object_property_help()" accidentally switched from qemu_printf() to printf(). Switch right back. Fixes: e1043d674d792ff64aebae1a3eafc08b38a8a085 Cc: Marc-André Lureau Cc: qemu-stable@nongnu.org Signed-off-by: Markus Armbruster Message-Id: <20200714160202.3121879-2-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Li Qiang Reviewed-by: Dr. David Alan Gilbert (cherry picked from commit 029afc4e76041e1a320530d97f99122a1b3d5da2) Signed-off-by: Michael Roth --- qdev-monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qdev-monitor.c b/qdev-monitor.c index 9833b33549..6bf6339ff5 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -299,7 +299,7 @@ int qdev_device_help(QemuOpts *opts) } g_ptr_array_sort(array, (GCompareFunc)qemu_pstrcmp0); for (i = 0; i < array->len; i++) { - printf("%s\n", (char *)array->pdata[i]); + qemu_printf("%s\n", (char *)array->pdata[i]); } g_ptr_array_set_free_func(array, g_free); g_ptr_array_free(array, true); From patchwork Thu Sep 3 20:59:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306247 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AD7FC433E2 for ; Thu, 3 Sep 2020 21:52:03 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 59F0B20678 for ; Thu, 3 Sep 2020 21:52:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D6OtWzvO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59F0B20678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52502 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx9G-0000Vj-Jm for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:52:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59396) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLw-0004xH-Qx; Thu, 03 Sep 2020 17:01:04 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:38621) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLv-0007qK-2y; Thu, 03 Sep 2020 17:01:04 -0400 Received: by mail-oi1-x244.google.com with SMTP id y6so4514878oie.5; Thu, 03 Sep 2020 14:01:02 -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=6sopWa3b6iZGsfPhmep7blcBK54TQmJ/CkRAM88fyYE=; b=D6OtWzvOyBZyNVF95/oyLszPwT+KpsjiXUqf5If8bU/Qh9imETvmnlLZ5HBTscqARJ ib1/jSk1dY74B0l6b9KngunO2f0wpDC2qDGgara55qPNifZlF4K2WCbuHZGd7sQeO62b cZyo11JCQKog4m3OtBT++xIs2JJNfh8LmNIeXZT6LR8Q7lbiB0PizCs3yu7pJa1kOvqM sRAQwfDQPBUhFDVYleGZC4RT6HjiDK4RMyg2Av0jyRXT6UYD3OVrb5aTn/IpXbwAzv9C qtdTB9YpoypGG/G7pzhcsS8AduWxtG6pFjipkTeBosMK9oKfqyDpADDkKZvt37VrjBYD ZKzg== 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=6sopWa3b6iZGsfPhmep7blcBK54TQmJ/CkRAM88fyYE=; b=PCGdQW9I2Bs8kc6Is/x0QXF74xEfeem/D+Q76g1xDc0p30RRQqm6ccWRKUPRuBp8Uh 06JcOH6wnIkLTG0uHc1JDkYvbZLZ/o2EEWaC5blFBM75vu/cO1fQdl0eJMNKDVanwFiZ GgouRplkDJnkhOl865PGiCJb8W3FpSS/b0dLpu04UM/w4gS5Inaxnmgbg2vyZAvagYAl TRDqLWUAlp+k3eWr1YkdwoSCNtxkVIKuoob3xG45tYjTH2XCpcMz40bbjUJZTEQfuCdb 7LYpHzRyGRD3j+xEi4k84wnFrf/LTNWrNCyxM4omXT9d0ThIssjqKfsbiIpkERt922Y9 iEWw== X-Gm-Message-State: AOAM530pzpVsPKQAE/y8azGeLVvxt/4FKEWvfOdtfVqz4mQOoIrqzngU Pg74ebj//4enax3s9h80bweVw1a4KidAKg== X-Google-Smtp-Source: ABdhPJwaXRhtMv8BjNSUOl5LHh7UrzWk7yp+3GyL2TEth7DIsNbbgZTJ7QJKGX6/mPSynAQSXDFwzw== X-Received: by 2002:aca:4b95:: with SMTP id y143mr3410873oia.121.1599166860982; Thu, 03 Sep 2020 14:01:00 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l23sm766436otk.79.2020.09.03.14.01.00 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:00 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 60/77] virtio-balloon: Prevent guest from starting a report when we didn't request one Date: Thu, 3 Sep 2020 15:59:18 -0500 Message-Id: <20200903205935.27832-61-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexander Duyck , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Alexander Duyck Based on code review it appears possible for the driver to force the device out of a stopped state when hinting by repeating the last ID it was provided. Prevent this by only allowing a transition to the start state when we are in the requested state. This way the driver is only allowed to send one descriptor that will transition the device into the start state. All others will leave it in the stop state once it has finished. Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT") Acked-by: David Hildenbrand Signed-off-by: Alexander Duyck Message-Id: <20200720175115.21935.99563.stgit@localhost.localdomain> Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 20a4da0f23078deeff5ea6d1e12f47d968d7c3c9) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index e20f90dad4..a30a0c7bfa 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -466,7 +466,8 @@ static bool get_free_page_hints(VirtIOBalloon *dev) ret = false; goto out; } - if (id == dev->free_page_report_cmd_id) { + if (dev->free_page_report_status == FREE_PAGE_REPORT_S_REQUESTED && + id == dev->free_page_report_cmd_id) { dev->free_page_report_status = FREE_PAGE_REPORT_S_START; } else { /* From patchwork Thu Sep 3 20:59:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274585 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 256EDC43461 for ; Thu, 3 Sep 2020 21:48:33 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D058B206EF for ; Thu, 3 Sep 2020 21:48:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PUB4EqqT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D058B206EF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:38064 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx5s-0002tH-29 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:48:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59436) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwLz-0004zS-5E; Thu, 03 Sep 2020 17:01:08 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:39462) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLx-0007rD-I7; Thu, 03 Sep 2020 17:01:06 -0400 Received: by mail-ot1-x343.google.com with SMTP id u25so4011160otq.6; Thu, 03 Sep 2020 14:01: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=+zLfmnBFP/TeeGYdGSH1pa11E0h2MWm5y03tUduxidk=; b=PUB4EqqTypNgzUzN5URL9J7mB3WKH4hJB4uWdqshHaGw64dfMHaQLBgtXek2SyIYqj yqKFNbrft9aKaQMfGP6AkqsI/LQO0sKW9fLE46J4B1pnURzSE05QOwJPDKmhe0zkBU0k v3TQmqq1kPA9aXjtj55bZI3ASj+OSD2ELUMZPimO2G/sqTBobztQEB+B0H/70jaRRW6N UNEBtD5tHqmeHCu88cvxo8B4LA3igdbemY03mGwbw7TBEcj9diG7Z0/piqofa/qNefvT Z/J2exSQRhlbBKWdBk2XTU8oFJ/fdTDyWjrrf0oo/x8wrPd3CM3VS4PyFoa/96n+8vq/ VjGg== 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=+zLfmnBFP/TeeGYdGSH1pa11E0h2MWm5y03tUduxidk=; b=e/k77FUX+WdxMMZoNxDDC/+vME8clmvIdV2IA6Fya0j7vcOZnh0nFG/NWZysUWXAX1 KwA6QGce90hTOgPOojVykKZux3Qt+OKLs/HJ9cWrjaN1nkJQP1cWakbWsFLvnVVorFkt 3mssm1VcLulnFqkjlQsgucNkYnfSoroDd3X/mzY9mZFZq+UX86QsHJxsOpmt6sOyi7MG M7MgBvEy597Nmg4Zt3ki3D+LtWw+S6m7xQ6W9Sae+N1CvgLQUeUbMp5Bwk6Sd0jHFf2R Ch3qh8FXMPy6zFCaPLhjuYMxqaHG4Blh5MGQrw/pfSUq2dwRQOGuiMpUvtg88ZbLbhXm WT4A== X-Gm-Message-State: AOAM530RPmNlmZ0cxTD4uspbQ/FAnd6p2+l92c8l/4Z1knzNUmqajJC4 uyEAD2zfg3wlSe8YdsK50Q1SK0RM2xcFRA== X-Google-Smtp-Source: ABdhPJxXZT59Cwq7J9KCk365RRx4jaW/UHgqMF12aBI000tGNpMuIQL44oqULfMHyRfPEkLJqcMmew== X-Received: by 2002:a05:6830:4bb:: with SMTP id l27mr2956902otd.372.1599166863841; Thu, 03 Sep 2020 14:01:03 -0700 (PDT) Received: from localhost ([2600:1700:70:e488:ed8a:a712:8057:9526]) by smtp.gmail.com with ESMTPSA id g26sm775698otn.77.2020.09.03.14.01.03 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:03 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 61/77] virtio-balloon: Add locking to prevent possible race when starting hinting Date: Thu, 3 Sep 2020 15:59:19 -0500 Message-Id: <20200903205935.27832-62-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexander Duyck , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Alexander Duyck There is already locking in place when we are stopping free page hinting but there is not similar protections in place when we start. I can only assume this was overlooked as in most cases the page hinting should not be occurring when we are starting the hinting, however there is still a chance we could be processing hints by the time we get back around to restarting the hinting so we are better off making sure to protect the state with the mutex lock rather than just updating the value with no protections. Based on feedback from Peter Maydell this issue had also been spotted by Coverity: CID 1430269 Acked-by: David Hildenbrand Signed-off-by: Alexander Duyck Message-Id: <20200720175122.21935.78013.stgit@localhost.localdomain> Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 1a83e0b9c492a0eaeacd6fbb858fc81d04ab9c3e) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index a30a0c7bfa..d6e31de1d9 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -532,6 +532,8 @@ static void virtio_balloon_free_page_start(VirtIOBalloon *s) return; } + qemu_mutex_lock(&s->free_page_lock); + if (s->free_page_report_cmd_id == UINT_MAX) { s->free_page_report_cmd_id = VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN; @@ -540,6 +542,8 @@ static void virtio_balloon_free_page_start(VirtIOBalloon *s) } s->free_page_report_status = FREE_PAGE_REPORT_S_REQUESTED; + qemu_mutex_unlock(&s->free_page_lock); + virtio_notify_config(vdev); } From patchwork Thu Sep 3 20:59:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306264 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB4B4C43461 for ; Thu, 3 Sep 2020 21:31:57 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9C8AD206D4 for ; Thu, 3 Sep 2020 21:31:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EM1Jf/jO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C8AD206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:47860 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwpo-0005VR-O8 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:31:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59452) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM0-0004zl-Js; Thu, 03 Sep 2020 17:01:10 -0400 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:36685) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwLy-0007rj-QL; Thu, 03 Sep 2020 17:01:08 -0400 Received: by mail-oi1-x243.google.com with SMTP id x19so4535893oix.3; Thu, 03 Sep 2020 14:01: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=OBNgeqRx4bpj7whZl9Nqe1uUGZCI5XWKl7ZvXD57/RM=; b=EM1Jf/jOulJZ8qFNufvClh5XlmBbYtMw65yMz85r7W3UbzXG9ba8m6NiQXEBd2W746 N7PLgo1L9QJKYTsjTPerD5uSn+tNXpeZ5TIBKsijToaJROvnVK+6UQ65lSjVOhQS8+77 mT/jauay0mnzRsW/tdMPzpG8sZRVGa0cfnI8FLOgO96XwlUPj/Jrv0IqxYj5ixy0mkee 3srFEYSGVRcf+kzqP6jyQ+BDcFiXY2z3jSn3s/ELfl+dgxi9ztembWmsvxolBEigR3oJ g9gosWkrCcHwL9F7RcrpFl9BtULFZGERhece6psxXxH1WEwJ1DLSICg1lqZYDgkm0cuU Yuiw== 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=OBNgeqRx4bpj7whZl9Nqe1uUGZCI5XWKl7ZvXD57/RM=; b=M7+M3r25wjaX7Cy7tOOcwlxuvgcydCgD2IcqVhdV1YjmlkLEPJdQxrUk8osMQ2PUxV D1P5TttqmOI+7xW1D1h2s3ZwaJDHpXFDZA62p/1z9fo1YO4uz6VBmr9sJw/thjMTTAZp FruXLD/gyYiRRkvtureBHQDF5WgA4KkeBfyTjn97Iqq76mj/4wkhr3YbdFJVyR8Z/87D 8JS0+QfagdGCIvr+HqhbSULwuZFekMoguD/UQOqtyZ9q8Jm+BmzvESa+13x1HFpbaLLE fCuDsoqmfbt18A9SxxlXm3EUFt5secq7920wks0gYUfHWMDAFjfKhAgeEkaqzs3RkTZP U0FA== X-Gm-Message-State: AOAM531WglEwZK2aOnf1cDUSBD5Q3Uy8uOvIO69XmLZyflU0G/2jQeuq Q8OfWciD2YcBb/YckD4+3ClO+nFh/5UKSQ== X-Google-Smtp-Source: ABdhPJz75tcfMw+vHfTPyDv3z7hv/nXY8YkMUZJga3pGDzEmq2rdRMrGuop0U3ge1l3P9ahldkImfg== X-Received: by 2002:aca:fc85:: with SMTP id a127mr3290379oii.148.1599166864926; Thu, 03 Sep 2020 14:01:04 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id l63sm712081oia.56.2020.09.03.14.01.04 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:04 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 62/77] virtio-balloon: always indicate S_DONE when migration fails Date: Thu, 3 Sep 2020 15:59:20 -0500 Message-Id: <20200903205935.27832-63-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::243; envelope-from=flukshun@gmail.com; helo=mail-oi1-x243.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Wei Wang , "Michael S . Tsirkin" , qemu-stable@nongnu.org, Alexander Duyck , David Hildenbrand Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: David Hildenbrand If something goes wrong during precopy, before stopping the VM, we will never send a S_DONE indication to the VM, resulting in the hinted pages not getting released to be used by the guest OS (e.g., Linux). Easy to reproduce: 1. Start migration (e.g., HMP "migrate -d 'exec:gzip -c > STATEFILE.gz'") 2. Cancel migration (e.g., HMP "migrate_cancel") 3. Oberve in the guest (e.g., cat /proc/meminfo) that there is basically no free memory left. While at it, add similar locking to virtio_balloon_free_page_done() as done in virtio_balloon_free_page_stop. Locking is still weird, but that has to be sorted out separately. There is nothing to do in the PRECOPY_NOTIFY_COMPLETE case. Add some comments regarding S_DONE handling. Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT") Reviewed-by: Alexander Duyck Cc: Wei Wang Cc: Alexander Duyck Signed-off-by: David Hildenbrand Message-Id: <20200629080615.26022-1-david@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit dd8eeb9671fc881e613008bd20035b85fe45383d) Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index d6e31de1d9..6c75db123e 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -572,8 +572,13 @@ static void virtio_balloon_free_page_done(VirtIOBalloon *s) { VirtIODevice *vdev = VIRTIO_DEVICE(s); - s->free_page_report_status = FREE_PAGE_REPORT_S_DONE; - virtio_notify_config(vdev); + if (s->free_page_report_status != FREE_PAGE_REPORT_S_DONE) { + /* See virtio_balloon_free_page_stop() */ + qemu_mutex_lock(&s->free_page_lock); + s->free_page_report_status = FREE_PAGE_REPORT_S_DONE; + qemu_mutex_unlock(&s->free_page_lock); + virtio_notify_config(vdev); + } } static int @@ -597,17 +602,26 @@ virtio_balloon_free_page_report_notify(NotifierWithReturn *n, void *data) case PRECOPY_NOTIFY_SETUP: precopy_enable_free_page_optimization(); break; - case PRECOPY_NOTIFY_COMPLETE: - case PRECOPY_NOTIFY_CLEANUP: case PRECOPY_NOTIFY_BEFORE_BITMAP_SYNC: virtio_balloon_free_page_stop(dev); break; case PRECOPY_NOTIFY_AFTER_BITMAP_SYNC: if (vdev->vm_running) { virtio_balloon_free_page_start(dev); - } else { - virtio_balloon_free_page_done(dev); + break; } + /* + * Set S_DONE before migrating the vmstate, so the guest will reuse + * all hinted pages once running on the destination. Fall through. + */ + case PRECOPY_NOTIFY_CLEANUP: + /* + * Especially, if something goes wrong during precopy or if migration + * is canceled, we have to properly communicate S_DONE to the VM. + */ + virtio_balloon_free_page_done(dev); + break; + case PRECOPY_NOTIFY_COMPLETE: break; default: virtio_error(vdev, "%s: %d reason unknown", __func__, pnd->reason); From patchwork Thu Sep 3 20:59:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274592 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73BE2C43461 for ; Thu, 3 Sep 2020 21:39:25 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 20EDE20665 for ; Thu, 3 Sep 2020 21:39:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aJyLKGfr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20EDE20665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:55286 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwx2-0003Zg-A1 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:39:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59496) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM3-00050h-Dy; Thu, 03 Sep 2020 17:01:12 -0400 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:42807) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM0-0007sA-NM; Thu, 03 Sep 2020 17:01:11 -0400 Received: by mail-oi1-x242.google.com with SMTP id x14so4504714oic.9; Thu, 03 Sep 2020 14:01: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; bh=bENPocKW9pJTga5jwg+bAbqtRDswiJmyAs33gqjaesk=; b=aJyLKGfrIViSFMTXZtWpsjtbyiQoqxGO7txA/dxWXz8b/kSMpDV8lf36Rdf6vPgKhD SADSoGZbVl/qJvye0Vv6PzNYr/rRzvt79BHYUMFZHysn0rfMpDaNA/UB1xRImDVyCJNr sWOvT7k2qesY4VUVaIczbZa8ihhYfZWtpBHWG4u5k+bmz8GwGmscYS9As+578bYKfUn7 gsD6u+Q6RH3JFN8XrV292C0DS4N4qvqIygQNFPXJatp5gYbwHoHNO/cVl2Z64pEx4Mr5 2hJIsFZPOcQUrp6uLtMiOoGcxjlU8t4Htd3iYssskg/UDokSlcU9EgWZEuaUUKOiJT2Y ErKg== 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=bENPocKW9pJTga5jwg+bAbqtRDswiJmyAs33gqjaesk=; b=a2Ixu1RYBaRq1bRdHYbhXRLHSsOPre73exo8YnQU/Bbh0zEsriKgnfYr7FUcbYTyOT 3GhXLLB54xcB1ZxwHHe17x59XUHHM7acB686BYrEutyfy6vVTmihuVQiNmeFJ5lFOiMq 2xmkgg4ZgbOJwTdsL9JukZQO2BPQxDtgIyLIsV+UnwilnjQLdxy6MvfN9FkSKMFa+TOc eOj4gci12AKQJa9GnrqZ7uT178PvsYA0nWeGejqi0LVMl5cRyPH9HaEDVqGdJ8vlbuHl G43oqSfGzLuM4XrPGLoxoA64wdegqd2kuq49b0vPhyz7mP4IYEPWZfB/8gDs4TwjOt5U v3IA== X-Gm-Message-State: AOAM5305A3QZEjg0oVmE0C5qdzPgu4uMwgS6VUAUMwCe+FXiHusFT/Dw Dia1jvamjHp8hHwDk8yvFVB60C4J6JMFZQ== X-Google-Smtp-Source: ABdhPJyYqNfRESDDfEyeW+fcfu3Aq9JwxQyANp8w2DYPnhsw2VBnM4x5YdasYGNFLfeFz9EOiQ/xAw== X-Received: by 2002:aca:ab07:: with SMTP id u7mr3435917oie.115.1599166866184; Thu, 03 Sep 2020 14:01:06 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id b65sm761913otc.42.2020.09.03.14.01.05 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:05 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 63/77] linux-headers: update against Linux 5.7-rc3 Date: Thu, 3 Sep 2020 15:59:21 -0500 Message-Id: <20200903205935.27832-64-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::242; envelope-from=flukshun@gmail.com; helo=mail-oi1-x242.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Cornelia Huck , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Cornelia Huck commit 6a8b55ed4056ea5559ebe4f6a4b247f627870d4c Reviewed-by: Michael S. Tsirkin # virtio/vhost parts Signed-off-by: Cornelia Huck Message-Id: <20200427102415.10915-3-cohuck@redhat.com> (cherry picked from commit dc6f8d458a4ccc360723993f31d310d06469f55f) *dep for 3219b42f02 Signed-off-by: Michael Roth --- include/standard-headers/linux/ethtool.h | 10 +- .../linux/input-event-codes.h | 5 +- include/standard-headers/linux/pci_regs.h | 2 + include/standard-headers/linux/vhost_types.h | 8 ++ .../standard-headers/linux/virtio_balloon.h | 12 ++- include/standard-headers/linux/virtio_ids.h | 1 + include/standard-headers/linux/virtio_net.h | 102 +++++++++++++++++- linux-headers/COPYING | 2 + linux-headers/asm-x86/kvm.h | 1 + linux-headers/asm-x86/unistd_32.h | 1 + linux-headers/asm-x86/unistd_64.h | 1 + linux-headers/asm-x86/unistd_x32.h | 1 + linux-headers/linux/kvm.h | 47 +++++++- linux-headers/linux/mman.h | 5 +- linux-headers/linux/userfaultfd.h | 40 +++++-- linux-headers/linux/vfio.h | 37 +++++++ linux-headers/linux/vhost.h | 24 +++++ 17 files changed, 280 insertions(+), 19 deletions(-) diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h index 8adf3b018b..1200890c86 100644 --- a/include/standard-headers/linux/ethtool.h +++ b/include/standard-headers/linux/ethtool.h @@ -596,6 +596,9 @@ struct ethtool_pauseparam { * @ETH_SS_LINK_MODES: link mode names * @ETH_SS_MSG_CLASSES: debug message class names * @ETH_SS_WOL_MODES: wake-on-lan modes + * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags + * @ETH_SS_TS_TX_TYPES: timestamping Tx types + * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters */ enum ethtool_stringset { ETH_SS_TEST = 0, @@ -610,6 +613,9 @@ enum ethtool_stringset { ETH_SS_LINK_MODES, ETH_SS_MSG_CLASSES, ETH_SS_WOL_MODES, + ETH_SS_SOF_TIMESTAMPING, + ETH_SS_TS_TX_TYPES, + ETH_SS_TS_RX_FILTERS, /* add new constants above here */ ETH_SS_COUNT @@ -1330,6 +1336,7 @@ enum ethtool_fec_config_bits { ETHTOOL_FEC_OFF_BIT, ETHTOOL_FEC_RS_BIT, ETHTOOL_FEC_BASER_BIT, + ETHTOOL_FEC_LLRS_BIT, }; #define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) @@ -1337,6 +1344,7 @@ enum ethtool_fec_config_bits { #define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) #define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT) #define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT) +#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT) /* CMDs currently supported */ #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. @@ -1521,7 +1529,7 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, /* must be last entry */ __ETHTOOL_LINK_MODE_MASK_NBITS }; diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h index b484c25289..ebf72c1031 100644 --- a/include/standard-headers/linux/input-event-codes.h +++ b/include/standard-headers/linux/input-event-codes.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* * Input event codes * @@ -652,6 +652,9 @@ /* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 +/* Select an area of screen to be copied */ +#define KEY_SELECTIVE_SCREENSHOT 0x27a + /* * Some keyboards have keys which do not have a defined meaning, these keys * are intended to be programmed / bound to macros by the user. For most diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h index 5437690483..f9701410d3 100644 --- a/include/standard-headers/linux/pci_regs.h +++ b/include/standard-headers/linux/pci_regs.h @@ -605,6 +605,7 @@ #define PCI_EXP_SLTCTL_PWR_OFF 0x0400 /* Power Off */ #define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ #define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ +#define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000 /* In-band PD disable */ #define PCI_EXP_SLTSTA 26 /* Slot Status */ #define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */ #define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */ @@ -680,6 +681,7 @@ #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ +#define PCI_EXP_SLTCAP2_IBPD 0x00000001 /* In-band PD Disable Supported */ #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ diff --git a/include/standard-headers/linux/vhost_types.h b/include/standard-headers/linux/vhost_types.h index 5351fe172d..a678d8fbaa 100644 --- a/include/standard-headers/linux/vhost_types.h +++ b/include/standard-headers/linux/vhost_types.h @@ -119,6 +119,14 @@ struct vhost_scsi_target { unsigned short reserved; }; +/* VHOST_VDPA specific definitions */ + +struct vhost_vdpa_config { + uint32_t off; + uint32_t len; + uint8_t buf[0]; +}; + /* Feature bits */ /* Log all write descriptors. Can be changed while device is active. */ #define VHOST_F_LOG_ALL 26 diff --git a/include/standard-headers/linux/virtio_balloon.h b/include/standard-headers/linux/virtio_balloon.h index 9375ca2a70..f343bfefd8 100644 --- a/include/standard-headers/linux/virtio_balloon.h +++ b/include/standard-headers/linux/virtio_balloon.h @@ -36,6 +36,7 @@ #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ +#define VIRTIO_BALLOON_F_REPORTING 5 /* Page reporting virtqueue */ /* Size of a PFN in the balloon interface. */ #define VIRTIO_BALLOON_PFN_SHIFT 12 @@ -47,8 +48,15 @@ struct virtio_balloon_config { uint32_t num_pages; /* Number of pages we've actually got in balloon. */ uint32_t actual; - /* Free page report command id, readonly by guest */ - uint32_t free_page_report_cmd_id; + /* + * Free page hint command id, readonly by guest. + * Was previously named free_page_report_cmd_id so we + * need to carry that name for legacy support. + */ + union { + uint32_t free_page_hint_cmd_id; + uint32_t free_page_report_cmd_id; /* deprecated */ + }; /* Stores PAGE_POISON if page poisoning is in use */ uint32_t poison_val; }; diff --git a/include/standard-headers/linux/virtio_ids.h b/include/standard-headers/linux/virtio_ids.h index 585e07b273..ecc27a1740 100644 --- a/include/standard-headers/linux/virtio_ids.h +++ b/include/standard-headers/linux/virtio_ids.h @@ -46,5 +46,6 @@ #define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ #define VIRTIO_ID_FS 26 /* virtio filesystem */ #define VIRTIO_ID_PMEM 27 /* virtio pmem */ +#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ #endif /* _LINUX_VIRTIO_IDS_H */ diff --git a/include/standard-headers/linux/virtio_net.h b/include/standard-headers/linux/virtio_net.h index 260c3681d7..a90f79e1b1 100644 --- a/include/standard-headers/linux/virtio_net.h +++ b/include/standard-headers/linux/virtio_net.h @@ -57,6 +57,9 @@ * Steering */ #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ +#define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ +#define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ +#define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ #define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device * with the same MAC. */ @@ -69,6 +72,17 @@ #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ +/* supported/enabled hash types */ +#define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0) +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1) +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2) +#define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3) +#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4) +#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5) +#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6) +#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7) +#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8) + struct virtio_net_config { /* The config defining mac address (if VIRTIO_NET_F_MAC) */ uint8_t mac[ETH_ALEN]; @@ -92,6 +106,12 @@ struct virtio_net_config { * Any other value stands for unknown. */ uint8_t duplex; + /* maximum size of RSS key */ + uint8_t rss_max_key_size; + /* maximum number of indirection table entries */ + uint16_t rss_max_indirection_table_length; + /* bitmask of supported VIRTIO_NET_RSS_HASH_ types */ + uint32_t supported_hash_types; } QEMU_PACKED; /* @@ -104,6 +124,7 @@ struct virtio_net_config { struct virtio_net_hdr_v1 { #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */ #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */ +#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */ uint8_t flags; #define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */ #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ @@ -113,11 +134,46 @@ struct virtio_net_hdr_v1 { uint8_t gso_type; __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ - __virtio16 csum_start; /* Position to start checksumming from */ - __virtio16 csum_offset; /* Offset after that to place checksum */ + union { + struct { + __virtio16 csum_start; + __virtio16 csum_offset; + }; + /* Checksum calculation */ + struct { + /* Position to start checksumming from */ + __virtio16 start; + /* Offset after that to place checksum */ + __virtio16 offset; + } csum; + /* Receive Segment Coalescing */ + struct { + /* Number of coalesced segments */ + uint16_t segments; + /* Number of duplicated acks */ + uint16_t dup_acks; + } rsc; + }; __virtio16 num_buffers; /* Number of merged rx buffers */ }; +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + uint32_t hash_value; +#define VIRTIO_NET_HASH_REPORT_NONE 0 +#define VIRTIO_NET_HASH_REPORT_IPv4 1 +#define VIRTIO_NET_HASH_REPORT_TCPv4 2 +#define VIRTIO_NET_HASH_REPORT_UDPv4 3 +#define VIRTIO_NET_HASH_REPORT_IPv6 4 +#define VIRTIO_NET_HASH_REPORT_TCPv6 5 +#define VIRTIO_NET_HASH_REPORT_UDPv6 6 +#define VIRTIO_NET_HASH_REPORT_IPv6_EX 7 +#define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8 +#define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9 + uint16_t hash_report; + uint16_t padding; +}; + #ifndef VIRTIO_NET_NO_LEGACY /* This header comes first in the scatter-gather list. * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must @@ -228,7 +284,9 @@ struct virtio_net_ctrl_mac { /* * Control Receive Flow Steering - * + */ +#define VIRTIO_NET_CTRL_MQ 4 +/* * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET * enables Receive Flow Steering, specifying the number of the transmit and * receive queues that will be used. After the command is consumed and acked by @@ -241,11 +299,47 @@ struct virtio_net_ctrl_mq { __virtio16 virtqueue_pairs; }; -#define VIRTIO_NET_CTRL_MQ 4 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 +/* + * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as + * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures + * the receive steering to use a hash calculated for incoming packet + * to decide on receive virtqueue to place the packet. The command + * also provides parameters to calculate a hash and receive virtqueue. + */ +struct virtio_net_rss_config { + uint32_t hash_types; + uint16_t indirection_table_mask; + uint16_t unclassified_queue; + uint16_t indirection_table[1/* + indirection_table_mask */]; + uint16_t max_tx_vq; + uint8_t hash_key_length; + uint8_t hash_key_data[/* hash_key_length */]; +}; + + #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 + +/* + * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device + * to include in the virtio header of the packet the value of the + * calculated hash and the report type of hash. It also provides + * parameters for hash calculation. The command requires feature + * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the + * layout of virtio header as defined in virtio_net_hdr_v1_hash. + */ +struct virtio_net_hash_config { + uint32_t hash_types; + /* for compatibility with virtio_net_rss_config */ + uint16_t reserved[4]; + uint8_t hash_key_length; + uint8_t hash_key_data[/* hash_key_length */]; +}; + + #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2 + /* * Control network offloads * diff --git a/linux-headers/COPYING b/linux-headers/COPYING index da4cb28feb..a635a38ef9 100644 --- a/linux-headers/COPYING +++ b/linux-headers/COPYING @@ -16,3 +16,5 @@ In addition, other licenses may also apply. Please see: Documentation/process/license-rules.rst for more details. + +All contributions to the Linux Kernel are subject to this COPYING file. diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h index 503d3f42da..3f3f780c8c 100644 --- a/linux-headers/asm-x86/kvm.h +++ b/linux-headers/asm-x86/kvm.h @@ -390,6 +390,7 @@ struct kvm_sync_regs { #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 #define KVM_STATE_NESTED_EVMCS 0x00000004 +#define KVM_STATE_NESTED_MTF_PENDING 0x00000008 #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h index f6e06fcfbd..1e6c1a5867 100644 --- a/linux-headers/asm-x86/unistd_32.h +++ b/linux-headers/asm-x86/unistd_32.h @@ -429,4 +429,5 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 + #endif /* _ASM_X86_UNISTD_32_H */ diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h index 924f826d2d..6daf0aecb2 100644 --- a/linux-headers/asm-x86/unistd_64.h +++ b/linux-headers/asm-x86/unistd_64.h @@ -351,4 +351,5 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 + #endif /* _ASM_X86_UNISTD_64_H */ diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h index 010307757b..e3f17ef370 100644 --- a/linux-headers/asm-x86/unistd_x32.h +++ b/linux-headers/asm-x86/unistd_x32.h @@ -340,4 +340,5 @@ #define __NR_preadv2 (__X32_SYSCALL_BIT + 546) #define __NR_pwritev2 (__X32_SYSCALL_BIT + 547) + #endif /* _ASM_X86_UNISTD_X32_H */ diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index 265099100e..9804495a46 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -474,12 +474,17 @@ struct kvm_s390_mem_op { __u32 size; /* amount of bytes */ __u32 op; /* type of operation */ __u64 buf; /* buffer in userspace */ - __u8 ar; /* the access register number */ - __u8 reserved[31]; /* should be set to 0 */ + union { + __u8 ar; /* the access register number */ + __u32 sida_offset; /* offset into the sida */ + __u8 reserved[32]; /* should be set to 0 */ + }; }; /* types for kvm_s390_mem_op->op */ #define KVM_S390_MEMOP_LOGICAL_READ 0 #define KVM_S390_MEMOP_LOGICAL_WRITE 1 +#define KVM_S390_MEMOP_SIDA_READ 2 +#define KVM_S390_MEMOP_SIDA_WRITE 3 /* flags for kvm_s390_mem_op->flags */ #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) @@ -1010,6 +1015,8 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_ARM_NISV_TO_USER 177 #define KVM_CAP_ARM_INJECT_EXT_DABT 178 #define KVM_CAP_S390_VCPU_RESETS 179 +#define KVM_CAP_S390_PROTECTED 180 +#define KVM_CAP_PPC_SECURE_GUEST 181 #ifdef KVM_CAP_IRQ_ROUTING @@ -1478,6 +1485,39 @@ struct kvm_enc_region { #define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) #define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) +struct kvm_s390_pv_sec_parm { + __u64 origin; + __u64 length; +}; + +struct kvm_s390_pv_unp { + __u64 addr; + __u64 size; + __u64 tweak; +}; + +enum pv_cmd_id { + KVM_PV_ENABLE, + KVM_PV_DISABLE, + KVM_PV_SET_SEC_PARMS, + KVM_PV_UNPACK, + KVM_PV_VERIFY, + KVM_PV_PREP_RESET, + KVM_PV_UNSHARE_ALL, +}; + +struct kvm_pv_cmd { + __u32 cmd; /* Command to be executed */ + __u16 rc; /* Ultravisor return code */ + __u16 rrc; /* Ultravisor return reason code */ + __u64 data; /* Data or address */ + __u32 flags; /* flags for future extensions. Must be 0 for now */ + __u32 reserved[3]; +}; + +/* Available with KVM_CAP_S390_PROTECTED */ +#define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd) + /* Secure Encrypted Virtualization command */ enum sev_cmd_id { /* Guest initialization commands */ @@ -1628,4 +1668,7 @@ struct kvm_hyperv_eventfd { #define KVM_HYPERV_CONN_ID_MASK 0x00ffffff #define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0) +#define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0) +#define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1) + #endif /* __LINUX_KVM_H */ diff --git a/linux-headers/linux/mman.h b/linux-headers/linux/mman.h index 1f6e2cd89c..51ea363759 100644 --- a/linux-headers/linux/mman.h +++ b/linux-headers/linux/mman.h @@ -5,8 +5,9 @@ #include #include -#define MREMAP_MAYMOVE 1 -#define MREMAP_FIXED 2 +#define MREMAP_MAYMOVE 1 +#define MREMAP_FIXED 2 +#define MREMAP_DONTUNMAP 4 #define OVERCOMMIT_GUESS 0 #define OVERCOMMIT_ALWAYS 1 diff --git a/linux-headers/linux/userfaultfd.h b/linux-headers/linux/userfaultfd.h index ce78878d12..8d3996eb82 100644 --- a/linux-headers/linux/userfaultfd.h +++ b/linux-headers/linux/userfaultfd.h @@ -19,7 +19,8 @@ * means the userland is reading). */ #define UFFD_API ((__u64)0xAA) -#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \ +#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \ + UFFD_FEATURE_EVENT_FORK | \ UFFD_FEATURE_EVENT_REMAP | \ UFFD_FEATURE_EVENT_REMOVE | \ UFFD_FEATURE_EVENT_UNMAP | \ @@ -34,7 +35,8 @@ #define UFFD_API_RANGE_IOCTLS \ ((__u64)1 << _UFFDIO_WAKE | \ (__u64)1 << _UFFDIO_COPY | \ - (__u64)1 << _UFFDIO_ZEROPAGE) + (__u64)1 << _UFFDIO_ZEROPAGE | \ + (__u64)1 << _UFFDIO_WRITEPROTECT) #define UFFD_API_RANGE_IOCTLS_BASIC \ ((__u64)1 << _UFFDIO_WAKE | \ (__u64)1 << _UFFDIO_COPY) @@ -52,6 +54,7 @@ #define _UFFDIO_WAKE (0x02) #define _UFFDIO_COPY (0x03) #define _UFFDIO_ZEROPAGE (0x04) +#define _UFFDIO_WRITEPROTECT (0x06) #define _UFFDIO_API (0x3F) /* userfaultfd ioctl ids */ @@ -68,6 +71,8 @@ struct uffdio_copy) #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \ struct uffdio_zeropage) +#define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \ + struct uffdio_writeprotect) /* read() structure */ struct uffd_msg { @@ -203,13 +208,14 @@ struct uffdio_copy { __u64 dst; __u64 src; __u64 len; +#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0) /* - * There will be a wrprotection flag later that allows to map - * pages wrprotected on the fly. And such a flag will be - * available if the wrprotection ioctl are implemented for the - * range according to the uffdio_register.ioctls. + * UFFDIO_COPY_MODE_WP will map the page write protected on + * the fly. UFFDIO_COPY_MODE_WP is available only if the + * write protected ioctl is implemented for the range + * according to the uffdio_register.ioctls. */ -#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0) +#define UFFDIO_COPY_MODE_WP ((__u64)1<<1) __u64 mode; /* @@ -231,4 +237,24 @@ struct uffdio_zeropage { __s64 zeropage; }; +struct uffdio_writeprotect { + struct uffdio_range range; +/* + * UFFDIO_WRITEPROTECT_MODE_WP: set the flag to write protect a range, + * unset the flag to undo protection of a range which was previously + * write protected. + * + * UFFDIO_WRITEPROTECT_MODE_DONTWAKE: set the flag to avoid waking up + * any wait thread after the operation succeeds. + * + * NOTE: Write protecting a region (WP=1) is unrelated to page faults, + * therefore DONTWAKE flag is meaningless with WP=1. Removing write + * protection (WP=0) in response to a page fault wakes the faulting + * task unless DONTWAKE is set. + */ +#define UFFDIO_WRITEPROTECT_MODE_WP ((__u64)1<<0) +#define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64)1<<1) + __u64 mode; +}; + #endif /* _LINUX_USERFAULTFD_H */ diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h index fb10370d29..a41c452865 100644 --- a/linux-headers/linux/vfio.h +++ b/linux-headers/linux/vfio.h @@ -707,6 +707,43 @@ struct vfio_device_ioeventfd { #define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16) +/** + * VFIO_DEVICE_FEATURE - _IORW(VFIO_TYPE, VFIO_BASE + 17, + * struct vfio_device_feature) + * + * Get, set, or probe feature data of the device. The feature is selected + * using the FEATURE_MASK portion of the flags field. Support for a feature + * can be probed by setting both the FEATURE_MASK and PROBE bits. A probe + * may optionally include the GET and/or SET bits to determine read vs write + * access of the feature respectively. Probing a feature will return success + * if the feature is supported and all of the optionally indicated GET/SET + * methods are supported. The format of the data portion of the structure is + * specific to the given feature. The data portion is not required for + * probing. GET and SET are mutually exclusive, except for use with PROBE. + * + * Return 0 on success, -errno on failure. + */ +struct vfio_device_feature { + __u32 argsz; + __u32 flags; +#define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */ +#define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */ +#define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */ +#define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */ + __u8 data[]; +}; + +#define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17) + +/* + * Provide support for setting a PCI VF Token, which is used as a shared + * secret between PF and VF drivers. This feature may only be set on a + * PCI SR-IOV PF when SR-IOV is enabled on the PF and there are no existing + * open VFs. Data provided when setting this feature is a 16-byte array + * (__u8 b[16]), representing a UUID. + */ +#define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0) + /* -------- API for Type1 VFIO IOMMU -------- */ /** diff --git a/linux-headers/linux/vhost.h b/linux-headers/linux/vhost.h index 40d028eed6..9fe72e4b13 100644 --- a/linux-headers/linux/vhost.h +++ b/linux-headers/linux/vhost.h @@ -116,4 +116,28 @@ #define VHOST_VSOCK_SET_GUEST_CID _IOW(VHOST_VIRTIO, 0x60, __u64) #define VHOST_VSOCK_SET_RUNNING _IOW(VHOST_VIRTIO, 0x61, int) +/* VHOST_VDPA specific defines */ + +/* Get the device id. The device ids follow the same definition of + * the device id defined in virtio-spec. + */ +#define VHOST_VDPA_GET_DEVICE_ID _IOR(VHOST_VIRTIO, 0x70, __u32) +/* Get and set the status. The status bits follow the same definition + * of the device status defined in virtio-spec. + */ +#define VHOST_VDPA_GET_STATUS _IOR(VHOST_VIRTIO, 0x71, __u8) +#define VHOST_VDPA_SET_STATUS _IOW(VHOST_VIRTIO, 0x72, __u8) +/* Get and set the device config. The device config follows the same + * definition of the device config defined in virtio-spec. + */ +#define VHOST_VDPA_GET_CONFIG _IOR(VHOST_VIRTIO, 0x73, \ + struct vhost_vdpa_config) +#define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, \ + struct vhost_vdpa_config) +/* Enable/disable the ring. */ +#define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, \ + struct vhost_vring_state) +/* Get the max ring size. */ +#define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16) + #endif From patchwork Thu Sep 3 20:59:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0B9BC433E2 for ; Thu, 3 Sep 2020 21:41:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 77A52206D4 for ; Thu, 3 Sep 2020 21:41:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="d0uJXFLJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 77A52206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:37368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwzM-0007u5-IL for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:41:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59530) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM5-00051B-3Q; Thu, 03 Sep 2020 17:01:14 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:35991) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM3-0007sZ-2V; Thu, 03 Sep 2020 17:01:12 -0400 Received: by mail-ot1-x343.google.com with SMTP id 109so4029350otv.3; Thu, 03 Sep 2020 14:01: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=NUUa27g9FfQTx3QwommjwexBmgSJ8H2h1dZRmi8V6X8=; b=d0uJXFLJHt4Toc92+hJF3kNGo7iNLBufaa4ccu+zsOS2HRaJ18VLAATstxsoiuxfMV Oy9hUMp8dgduAo/Ex5Jn9SYFUisC5A9UX78wgV3rCLtkdkwEVWExd0Ax523cACj29I8X rE8CtvYszWLcerOi+D4ohtQkq2xbEEAIP+5HX5CIRXD3n/M+iGqtmayuTLaPgwoh2aIs trFvM7U5Xep94Pa1uPU8nVk+yhYynjrqwTA+RBWrHhEba6M3Ipk/dZet7j/a97H91MDe cR+CXr6jleIourvlxGuzOKv3Wanh202jgCuhSIZ8JzhuyTZyJdthWRSRwttG2JzMs7di lXyA== 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=NUUa27g9FfQTx3QwommjwexBmgSJ8H2h1dZRmi8V6X8=; b=rgFgX5kDlkxAum4YBJ8+F+ocfCBKHfDNgoNavNtfKad1XAdWpdSiMBVcrKyrBtzV27 tp3+eNPqN3x5BempvTlua3KX2jOjpNvgmGQLe00NlBAhmSDPjuAR94OUJv50EIzf9i2f yMUWxOIUGanEiYi5ZAWksQ67ZAq+Gh4Ze4N6pBi+ITshRbcr9Y3jX4/yeZjEq0gPC5Pm reV2OykvwPCatUjRfCsvPI/FX1HkH+zDRqWbtK4y5kkZH4FnZVdByg34gYG3ElkiUwLz 67Kcy6itlR88fCDAnGMnErZoXZ6nulhNwayKtU/HjzYEBbkVRjjlWcWuFyzLfmchP8LZ quGw== X-Gm-Message-State: AOAM530ZVxQ3r9loElSkFAYOzXBl4ZwzB6qbcTv2Jk1CWe2RjQJ9X5Zx 2EfbOzhgfeu30upiFAF3RJslKpmUdtxyQg== X-Google-Smtp-Source: ABdhPJxv+8eXCfAe0oNlFT351AN1+lEk6Pwq7FNB4waz3fWGKEL+YJIb2C4fHSrU4MpFExrdny/mUw== X-Received: by 2002:a9d:6d95:: with SMTP id x21mr3141137otp.339.1599166867760; Thu, 03 Sep 2020 14:01:07 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id p24sm731285oip.2.2020.09.03.14.01.06 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:06 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 64/77] virtio-balloon: Replace free page hinting references to 'report' with 'hint' Date: Thu, 3 Sep 2020 15:59:22 -0500 Message-Id: <20200903205935.27832-65-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexander Duyck , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Alexander Duyck Recently a feature named Free Page Reporting was added to the virtio balloon. In order to avoid any confusion we should drop the use of the word 'report' when referring to Free Page Hinting. So what this patch does is go through and replace all instances of 'report' with 'hint" when we are referring to free page hinting. Acked-by: David Hildenbrand Signed-off-by: Alexander Duyck Message-Id: <20200720175128.21935.93927.stgit@localhost.localdomain> Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 3219b42f025d4d7a9c463235e9f937ab38067de3) Conflicts: hw/virtio/virtio-balloon.c include/hw/virtio/virtio-balloon.h *drop context deps on 91b867191d and 7483cbbaf8 Signed-off-by: Michael Roth --- hw/virtio/virtio-balloon.c | 76 +++++++++++++++--------------- include/hw/virtio/virtio-balloon.h | 20 ++++---- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 6c75db123e..035d4e0665 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -466,22 +466,22 @@ static bool get_free_page_hints(VirtIOBalloon *dev) ret = false; goto out; } - if (dev->free_page_report_status == FREE_PAGE_REPORT_S_REQUESTED && - id == dev->free_page_report_cmd_id) { - dev->free_page_report_status = FREE_PAGE_REPORT_S_START; + if (dev->free_page_hint_status == FREE_PAGE_HINT_S_REQUESTED && + id == dev->free_page_hint_cmd_id) { + dev->free_page_hint_status = FREE_PAGE_HINT_S_START; } else { /* * Stop the optimization only when it has started. This * avoids a stale stop sign for the previous command. */ - if (dev->free_page_report_status == FREE_PAGE_REPORT_S_START) { - dev->free_page_report_status = FREE_PAGE_REPORT_S_STOP; + if (dev->free_page_hint_status == FREE_PAGE_HINT_S_START) { + dev->free_page_hint_status = FREE_PAGE_HINT_S_STOP; } } } if (elem->in_num) { - if (dev->free_page_report_status == FREE_PAGE_REPORT_S_START) { + if (dev->free_page_hint_status == FREE_PAGE_HINT_S_START) { qemu_guest_free_page_hint(elem->in_sg[0].iov_base, elem->in_sg[0].iov_len); } @@ -507,11 +507,11 @@ static void virtio_ballloon_get_free_page_hints(void *opaque) qemu_mutex_unlock(&dev->free_page_lock); virtio_notify(vdev, vq); /* - * Start to poll the vq once the reporting started. Otherwise, continue + * Start to poll the vq once the hinting started. Otherwise, continue * only when there are entries on the vq, which need to be given back. */ } while (continue_to_get_hints || - dev->free_page_report_status == FREE_PAGE_REPORT_S_START); + dev->free_page_hint_status == FREE_PAGE_HINT_S_START); virtio_queue_set_notification(vq, 1); } @@ -534,14 +534,14 @@ static void virtio_balloon_free_page_start(VirtIOBalloon *s) qemu_mutex_lock(&s->free_page_lock); - if (s->free_page_report_cmd_id == UINT_MAX) { - s->free_page_report_cmd_id = - VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN; + if (s->free_page_hint_cmd_id == UINT_MAX) { + s->free_page_hint_cmd_id = + VIRTIO_BALLOON_FREE_PAGE_HINT_CMD_ID_MIN; } else { - s->free_page_report_cmd_id++; + s->free_page_hint_cmd_id++; } - s->free_page_report_status = FREE_PAGE_REPORT_S_REQUESTED; + s->free_page_hint_status = FREE_PAGE_HINT_S_REQUESTED; qemu_mutex_unlock(&s->free_page_lock); virtio_notify_config(vdev); @@ -551,18 +551,18 @@ static void virtio_balloon_free_page_stop(VirtIOBalloon *s) { VirtIODevice *vdev = VIRTIO_DEVICE(s); - if (s->free_page_report_status != FREE_PAGE_REPORT_S_STOP) { + if (s->free_page_hint_status != FREE_PAGE_HINT_S_STOP) { /* * The lock also guarantees us that the * virtio_ballloon_get_free_page_hints exits after the - * free_page_report_status is set to S_STOP. + * free_page_hint_status is set to S_STOP. */ qemu_mutex_lock(&s->free_page_lock); /* - * The guest hasn't done the reporting, so host sends a notification - * to the guest to actively stop the reporting. + * The guest isn't done hinting, so send a notification + * to the guest to actively stop the hinting. */ - s->free_page_report_status = FREE_PAGE_REPORT_S_STOP; + s->free_page_hint_status = FREE_PAGE_HINT_S_STOP; qemu_mutex_unlock(&s->free_page_lock); virtio_notify_config(vdev); } @@ -572,20 +572,20 @@ static void virtio_balloon_free_page_done(VirtIOBalloon *s) { VirtIODevice *vdev = VIRTIO_DEVICE(s); - if (s->free_page_report_status != FREE_PAGE_REPORT_S_DONE) { + if (s->free_page_hint_status != FREE_PAGE_HINT_S_DONE) { /* See virtio_balloon_free_page_stop() */ qemu_mutex_lock(&s->free_page_lock); - s->free_page_report_status = FREE_PAGE_REPORT_S_DONE; + s->free_page_hint_status = FREE_PAGE_HINT_S_DONE; qemu_mutex_unlock(&s->free_page_lock); virtio_notify_config(vdev); } } static int -virtio_balloon_free_page_report_notify(NotifierWithReturn *n, void *data) +virtio_balloon_free_page_hint_notify(NotifierWithReturn *n, void *data) { VirtIOBalloon *dev = container_of(n, VirtIOBalloon, - free_page_report_notify); + free_page_hint_notify); VirtIODevice *vdev = VIRTIO_DEVICE(dev); PrecopyNotifyData *pnd = data; @@ -643,7 +643,7 @@ static size_t virtio_balloon_config_size(VirtIOBalloon *s) if (virtio_has_feature(features, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { return offsetof(struct virtio_balloon_config, poison_val); } - return offsetof(struct virtio_balloon_config, free_page_report_cmd_id); + return offsetof(struct virtio_balloon_config, free_page_hint_cmd_id); } static void virtio_balloon_get_config(VirtIODevice *vdev, uint8_t *config_data) @@ -654,14 +654,14 @@ static void virtio_balloon_get_config(VirtIODevice *vdev, uint8_t *config_data) config.num_pages = cpu_to_le32(dev->num_pages); config.actual = cpu_to_le32(dev->actual); - if (dev->free_page_report_status == FREE_PAGE_REPORT_S_REQUESTED) { - config.free_page_report_cmd_id = - cpu_to_le32(dev->free_page_report_cmd_id); - } else if (dev->free_page_report_status == FREE_PAGE_REPORT_S_STOP) { - config.free_page_report_cmd_id = + if (dev->free_page_hint_status == FREE_PAGE_HINT_S_REQUESTED) { + config.free_page_hint_cmd_id = + cpu_to_le32(dev->free_page_hint_cmd_id); + } else if (dev->free_page_hint_status == FREE_PAGE_HINT_S_STOP) { + config.free_page_hint_cmd_id = cpu_to_le32(VIRTIO_BALLOON_CMD_ID_STOP); - } else if (dev->free_page_report_status == FREE_PAGE_REPORT_S_DONE) { - config.free_page_report_cmd_id = + } else if (dev->free_page_hint_status == FREE_PAGE_HINT_S_DONE) { + config.free_page_hint_cmd_id = cpu_to_le32(VIRTIO_BALLOON_CMD_ID_DONE); } @@ -762,14 +762,14 @@ static int virtio_balloon_post_load_device(void *opaque, int version_id) return 0; } -static const VMStateDescription vmstate_virtio_balloon_free_page_report = { +static const VMStateDescription vmstate_virtio_balloon_free_page_hint = { .name = "virtio-balloon-device/free-page-report", .version_id = 1, .minimum_version_id = 1, .needed = virtio_balloon_free_page_support, .fields = (VMStateField[]) { - VMSTATE_UINT32(free_page_report_cmd_id, VirtIOBalloon), - VMSTATE_UINT32(free_page_report_status, VirtIOBalloon), + VMSTATE_UINT32(free_page_hint_cmd_id, VirtIOBalloon), + VMSTATE_UINT32(free_page_hint_status, VirtIOBalloon), VMSTATE_END_OF_LIST() } }; @@ -785,7 +785,7 @@ static const VMStateDescription vmstate_virtio_balloon_device = { VMSTATE_END_OF_LIST() }, .subsections = (const VMStateDescription * []) { - &vmstate_virtio_balloon_free_page_report, + &vmstate_virtio_balloon_free_page_hint, NULL } }; @@ -823,7 +823,7 @@ static void virtio_balloon_device_realize(DeviceState *dev, Error **errp) VIRTIO_BALLOON_F_FREE_PAGE_HINT)) { s->free_page_vq = virtio_add_queue(vdev, VIRTQUEUE_MAX_SIZE, virtio_balloon_handle_free_page_vq); - precopy_add_notifier(&s->free_page_report_notify); + precopy_add_notifier(&s->free_page_hint_notify); object_ref(OBJECT(s->iothread)); s->free_page_bh = aio_bh_new(iothread_get_aio_context(s->iothread), @@ -841,7 +841,7 @@ static void virtio_balloon_device_unrealize(DeviceState *dev, Error **errp) qemu_bh_delete(s->free_page_bh); object_unref(OBJECT(s->iothread)); virtio_balloon_free_page_stop(s); - precopy_remove_notifier(&s->free_page_report_notify); + precopy_remove_notifier(&s->free_page_hint_notify); } balloon_stats_destroy_timer(s); qemu_remove_balloon_handler(s); @@ -908,8 +908,8 @@ static void virtio_balloon_instance_init(Object *obj) qemu_mutex_init(&s->free_page_lock); qemu_cond_init(&s->free_page_cond); - s->free_page_report_cmd_id = VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN; - s->free_page_report_notify.notify = virtio_balloon_free_page_report_notify; + s->free_page_hint_cmd_id = VIRTIO_BALLOON_FREE_PAGE_HINT_CMD_ID_MIN; + s->free_page_hint_notify.notify = virtio_balloon_free_page_hint_notify; object_property_add(obj, "guest-stats", "guest statistics", balloon_stats_get_all, NULL, NULL, s, NULL); diff --git a/include/hw/virtio/virtio-balloon.h b/include/hw/virtio/virtio-balloon.h index d1c968d237..108cff97e7 100644 --- a/include/hw/virtio/virtio-balloon.h +++ b/include/hw/virtio/virtio-balloon.h @@ -23,7 +23,7 @@ #define VIRTIO_BALLOON(obj) \ OBJECT_CHECK(VirtIOBalloon, (obj), TYPE_VIRTIO_BALLOON) -#define VIRTIO_BALLOON_FREE_PAGE_REPORT_CMD_ID_MIN 0x80000000 +#define VIRTIO_BALLOON_FREE_PAGE_HINT_CMD_ID_MIN 0x80000000 typedef struct virtio_balloon_stat VirtIOBalloonStat; @@ -33,20 +33,20 @@ typedef struct virtio_balloon_stat_modern { uint64_t val; } VirtIOBalloonStatModern; -enum virtio_balloon_free_page_report_status { - FREE_PAGE_REPORT_S_STOP = 0, - FREE_PAGE_REPORT_S_REQUESTED = 1, - FREE_PAGE_REPORT_S_START = 2, - FREE_PAGE_REPORT_S_DONE = 3, +enum virtio_balloon_free_page_hint_status { + FREE_PAGE_HINT_S_STOP = 0, + FREE_PAGE_HINT_S_REQUESTED = 1, + FREE_PAGE_HINT_S_START = 2, + FREE_PAGE_HINT_S_DONE = 3, }; typedef struct VirtIOBalloon { VirtIODevice parent_obj; VirtQueue *ivq, *dvq, *svq, *free_page_vq; - uint32_t free_page_report_status; + uint32_t free_page_hint_status; uint32_t num_pages; uint32_t actual; - uint32_t free_page_report_cmd_id; + uint32_t free_page_hint_cmd_id; uint64_t stats[VIRTIO_BALLOON_S_NR]; VirtQueueElement *stats_vq_elem; size_t stats_vq_offset; @@ -55,7 +55,7 @@ typedef struct VirtIOBalloon { QEMUBH *free_page_bh; /* * Lock to synchronize threads to access the free page reporting related - * fields (e.g. free_page_report_status). + * fields (e.g. free_page_hint_status). */ QemuMutex free_page_lock; QemuCond free_page_cond; @@ -64,7 +64,7 @@ typedef struct VirtIOBalloon { * stopped. */ bool block_iothread; - NotifierWithReturn free_page_report_notify; + NotifierWithReturn free_page_hint_notify; int64_t stats_last_update; int64_t stats_poll_interval; uint32_t host_features; From patchwork Thu Sep 3 20:59:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274583 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC733C43461 for ; Thu, 3 Sep 2020 21:50:19 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 65B7D20797 for ; Thu, 3 Sep 2020 21:50:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cYnhSvU/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 65B7D20797 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:45734 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx7a-000630-Ct for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:50:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59526) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM4-00051A-SZ; Thu, 03 Sep 2020 17:01:13 -0400 Received: from mail-oo1-xc29.google.com ([2607:f8b0:4864:20::c29]:34350) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM3-0007sf-5s; Thu, 03 Sep 2020 17:01:12 -0400 Received: by mail-oo1-xc29.google.com with SMTP id k63so1135286oob.1; Thu, 03 Sep 2020 14:01: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=ooJ5JWX44T4rpsVTQbxVK9w+LAQEjZ1790XiAupTrvE=; b=cYnhSvU/5APT+omor5i3Awsj9iTcCzyuAF5bA/l9EI4PrN7otvAu3MEhZKF78vkYZ8 AX2CJ1sAfKGs0/t7UntU0PdCZQaBFTck38wW0a9jNGjSgCxFI8LUkvBRuUv2vkbC+Q1d hSD20VxrSIXstJblKSwUpCkNIFqO8HcVnTMrLdlzcflWAVHfeXXV8T/P1OaA6IeUP05P HZ2EM15h6jXlEOckjfthQLDIkc9inMcduKqeLcSl3c5uscEutv3Vqxb82Mi0mgh5Yi7v Fwgkooh4eZqroxeWnm4rrfVtgAs2Ekn5A28Uonadg8cNJ/Y4oi8GpjbZ0CkQni0xs0FZ 2RSA== 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=ooJ5JWX44T4rpsVTQbxVK9w+LAQEjZ1790XiAupTrvE=; b=kO2fiqurucrOSPUA7mZ+HDorOkEveEAaPf54vpqWSAPlP4cugLFb/OLYbAr5RgaLfv knGsiesypq+8HYwEYUfx/Zo/NFYF5Stjl8IYzYPEoTRglcVY6VnPlSv+5VkXTAQNA3Pp brWyRICw75QjGwKhAjGBy+eyqm7DULr1vjI4gpX6zrJ3ZFmtu9pdzr75UflB7FRIDB53 VQYPfvy5mXC+Xq0diV7wbAYNfdDBtLf6v1+dpTithaWoSsu+5vXtEVHudnLSNrAheBxI QiumHnUHHTT1EHbZbr3JAoAi/Z5E/OfJrNgGPnhLH+fIkCug4FY1fUJv4izGqf9luy8b F4uA== X-Gm-Message-State: AOAM531eaYupr9jrV5/44HgXhW7VUdO0sy5arXzQ2w6GmESP+vwn0wed AvJZxCW0KAbT0TW5F2eh/JiTa1k/s0jE8g== X-Google-Smtp-Source: ABdhPJyrt/U04xIvJZzUVYMcbP/+B4V5yliYVgNS1ZJeIkJYJvEMJ/WKD6rDWMmPYyXbbkRSqGNAPA== X-Received: by 2002:a4a:d549:: with SMTP id q9mr3347752oos.74.1599166869225; Thu, 03 Sep 2020 14:01:09 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id e9sm814941oog.10.2020.09.03.14.01.08 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:08 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 65/77] virtio: list legacy-capable devices Date: Thu, 3 Sep 2020 15:59:23 -0500 Message-Id: <20200903205935.27832-66-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c29; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc29.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Cornelia Huck , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Cornelia Huck Several types of virtio devices had already been around before the virtio standard was specified. These devices support virtio in legacy (and transitional) mode. Devices that have been added in the virtio standard are considered non-transitional (i.e. with no support for legacy virtio). Provide a helper function so virtio transports can figure that out easily. Signed-off-by: Cornelia Huck Message-Id: <20200707105446.677966-2-cohuck@redhat.com> Cc: qemu-stable@nongnu.org Acked-by: Halil Pasic Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 7c78bdd7a3d0086179331f10d1f6f8cdac34731a) Signed-off-by: Michael Roth --- hw/virtio/virtio.c | 25 +++++++++++++++++++++++++ include/hw/virtio/virtio.h | 2 ++ 2 files changed, 27 insertions(+) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index b6c8ef5bc0..398fd4a305 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -27,6 +27,7 @@ #include "hw/virtio/virtio-access.h" #include "sysemu/dma.h" #include "sysemu/runstate.h" +#include "standard-headers/linux/virtio_ids.h" /* * The alignment to use between consumer and producer parts of vring. @@ -3278,6 +3279,30 @@ void virtio_init(VirtIODevice *vdev, const char *name, vdev->use_guest_notifier_mask = true; } +/* + * Only devices that have already been around prior to defining the virtio + * standard support legacy mode; this includes devices not specified in the + * standard. All newer devices conform to the virtio standard only. + */ +bool virtio_legacy_allowed(VirtIODevice *vdev) +{ + switch (vdev->device_id) { + case VIRTIO_ID_NET: + case VIRTIO_ID_BLOCK: + case VIRTIO_ID_CONSOLE: + case VIRTIO_ID_RNG: + case VIRTIO_ID_BALLOON: + case VIRTIO_ID_RPMSG: + case VIRTIO_ID_SCSI: + case VIRTIO_ID_9P: + case VIRTIO_ID_RPROC_SERIAL: + case VIRTIO_ID_CAIF: + return true; + default: + return false; + } +} + hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n) { return vdev->vq[n].vring.desc; diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index b69d517496..198ffc7626 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -396,4 +396,6 @@ static inline bool virtio_device_disabled(VirtIODevice *vdev) return unlikely(vdev->disabled || vdev->broken); } +bool virtio_legacy_allowed(VirtIODevice *vdev); + #endif From patchwork Thu Sep 3 20:59:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306253 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3200C43461 for ; Thu, 3 Sep 2020 21:43:19 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6329B206D4 for ; Thu, 3 Sep 2020 21:43:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EHVARZzr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6329B206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46070 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx0o-0002yc-GI for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:43:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM6-00051r-Hn; Thu, 03 Sep 2020 17:01:15 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:34068) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM4-0007st-V3; Thu, 03 Sep 2020 17:01:14 -0400 Received: by mail-ot1-x332.google.com with SMTP id h17so3210601otr.1; Thu, 03 Sep 2020 14:01: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=MEvZmvR0w7xE2ynIxcSs7eM6zvrUrLkOXOPrCdnExrc=; b=EHVARZzruu/KPlIDrWXmbEK8SzjPDoBPrP213Sw4vVEv/ETNSwQ3+J09utdOCOdXLy v8hQl1dqYprtIYFzi2DDV1ELfl+KRdt181DF8t6VoFK+eACIxgfXlRDFFXw02MCqesWH 1axD5HMUfUjK6Sw/1m02UG2WoQay81nK/+mjDhbMKjT0fkB9yHOCYmkj1ALpfpTZRjFG ZNFai0xXGHza5azi9zy/n56NmM13u8RUPCugiroW3ZOK0Xb/h5ykXVHuflWNAqsIYdbr MBQftpqJXW6BrMMurehpUkEHRStJxGYE0uFbEfH7ULbjA9iA44MNYt35kfXNyCQZGLm3 nhwQ== 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=MEvZmvR0w7xE2ynIxcSs7eM6zvrUrLkOXOPrCdnExrc=; b=fx/o2ktpeCQqcH3JVsSDkim63q3en/X5Z48LUM9A13TdPRiJ/nC+iW6yhMYsepEl3X /9U9gdTOFSaK1lJYLx3g/Y+c9oeHcl0aHDh7J8kDaKhPjIq8eY5fLGCuMkhXOR3Jrp/x jAtMEx7zSZ8kDPPhQj+miSb8ntAkxrRlR20ywh+RHTEU6IQueyO/2B50pdvlqXyC7DDf Pc62neJOwx9a8OE10Vfuevwf3C+Ld0zVVADcDkG573WNzgp5xVQvo/sJVXALJf9XVhPN 20ri9bxFQD8qQSmGWV5wiJ5tuOwlm4YNogYH+2vDuEXtB2xCxXneGtx37ILNrHDwyjpB 9aYQ== X-Gm-Message-State: AOAM530eYwd/E1o4KFu6fAxChtozO4XWI7hxKMxjJw1bruduudnhYPKI g5VbmnEn1Zd8112x6SFX4BIhim3mw2H7zQ== X-Google-Smtp-Source: ABdhPJyJyLCTANyduaYarkhhRlhGRzO9m/cVeMwLioY1o2bStwQnmnE/dWD7V12NTVv+J6PlTctxgw== X-Received: by 2002:a9d:621a:: with SMTP id g26mr3233188otj.209.1599166870579; Thu, 03 Sep 2020 14:01:10 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 3sm767533otu.46.2020.09.03.14.01.09 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:10 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 66/77] virtio: verify that legacy support is not accidentally on Date: Thu, 3 Sep 2020 15:59:24 -0500 Message-Id: <20200903205935.27832-67-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=flukshun@gmail.com; helo=mail-ot1-x332.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Cornelia Huck , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Cornelia Huck If a virtio device does not have legacy support, make sure that it is actually off, and bail out if not. For virtio-pci, this means that any device without legacy support that has been specified to modern-only (or that has been forced to it) will work. For virtio-ccw, this duplicates the check that is currently done prior to realization for any device that explicitly specified no support for legacy. This catches devices that have not been fenced properly. Signed-off-by: Cornelia Huck Message-Id: <20200707105446.677966-3-cohuck@redhat.com> Cc: qemu-stable@nongnu.org Acked-by: Halil Pasic Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 9b3a35ec8236933ab958a4c3ad883163f1ca66e7) Signed-off-by: Michael Roth --- hw/s390x/virtio-ccw.c | 6 ++++++ hw/virtio/virtio-pci.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 64f928fc7d..c069719429 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1119,6 +1119,12 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp) dev->max_rev = 0; } + if (!virtio_ccw_rev_max(dev) && !virtio_legacy_allowed(vdev)) { + error_setg(errp, "Invalid value of property max_rev " + "(is %d expected >= 1)", virtio_ccw_rev_max(dev)); + return; + } + if (virtio_get_num_queues(vdev) > VIRTIO_QUEUE_MAX) { error_setg(errp, "The number of virtqueues %d " "exceeds virtio limit %d", n, diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 4cb784389c..2ca266e1cb 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1565,6 +1565,10 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp) } if (legacy) { + if (!virtio_legacy_allowed(vdev)) { + error_setg(errp, "device is modern-only, use disable-legacy=on"); + return; + } if (virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) { error_setg(errp, "VIRTIO_F_IOMMU_PLATFORM was supported by" " neither legacy nor transitional device"); From patchwork Thu Sep 3 20:59:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306246 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63A0DC433E2 for ; Thu, 3 Sep 2020 21:52:45 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 24FFF20678 for ; Thu, 3 Sep 2020 21:52:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZPl9B5Fz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 24FFF20678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54660 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx9w-0001P5-Am for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:52:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwM8-00052Y-9l; Thu, 03 Sep 2020 17:01:17 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:33364) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM6-0007tE-Dh; Thu, 03 Sep 2020 17:01:15 -0400 Received: by mail-ot1-x332.google.com with SMTP id m12so1037932otr.0; Thu, 03 Sep 2020 14:01: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=Y3yC2SOnzE11vtRpT71Fc4IxJOCN3PFXC+OmZRbaviY=; b=ZPl9B5Fzq1R/hqw20AxD3H4qqtKxTa/lXYm+Tmk3eExvwymvFoyTzut0dC1WfLjIqD K5wDHLxDx81YFqSPJcGveId3LcCEop0Q2w8BjfDLsctbgcF1z6y/dS5klMyPi8zodpsP JlQWhGUDnbnkHZev6g0PHiZMcpOU/qAZoqCIbZ7O7LL7fSEzmdXsgK6KLa7/6g67jSBl 6hAps7dnF1RdSW6wrTNjDiO/L2YnOKC9hW3Srm5xSg9j8w9nSalo+zJe/+iqbZGHeHqQ xWdUbQwNJzp+tfLsX4X0GgshRo8GS0rAIUIFmLVmUtVQ9R7Yebv3S/VrPjqmOZg/S38z QUGg== 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=Y3yC2SOnzE11vtRpT71Fc4IxJOCN3PFXC+OmZRbaviY=; b=GvXGnC4ZzGS6WGWzI3wIuuJ0/U6/xJYJTPJpLIA6vNGghqLTKQuBzZM2VEReyXttsc vyEPj8ZYeWfM+i1aYNHmvOtU3rfyaYUoBN6stowTWXN6zaOy3Z8tE6XmkeWu6DpryccM /0Xfc2vagBCr049dBVTAnLnrAkPzU6dnAVR5cXpO2l4axfN7xXGJhkYfyfkhBG8mPhNc rnTlE7xp3RZQjZZJkfemog/jpPcOlR5LBxRin9OajJ6vaft0KymFbkdA9lLHJJ3EcgFe 4nPPUuPUDUv1dLsnBgw1NpY54hjgJvBfDZcupvIQf+wlPyB0gZ6d05SKsNfFBKrQnMU8 gEfQ== X-Gm-Message-State: AOAM531mna+6QwhMRIih45ty0fkZYtWBFnuefs0LA1+5Akrj9CtQ19+p IYGZIb61nS0rZ6SQMsVq0oC4IscqSQVRSQ== X-Google-Smtp-Source: ABdhPJxG8u0OcMNMEtQmHDl6WeqW/hTeDfHWLIldHXVV70RparNQ/X3+VWRVJ+ggemRtRuUZ6/IvGA== X-Received: by 2002:a05:6830:13d7:: with SMTP id e23mr3098746otq.98.1599166872334; Thu, 03 Sep 2020 14:01:12 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id t1sm855106ooi.27.2020.09.03.14.01.11 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:11 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 67/77] intel_iommu: Use correct shift for 256 bits qi descriptor Date: Thu, 3 Sep 2020 15:59:25 -0500 Message-Id: <20200903205935.27832-68-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=flukshun@gmail.com; helo=mail-ot1-x332.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Liu Yi L , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Liu Yi L In chapter 10.4.23 of VT-d spec 3.0, Descriptor Width bit was introduced in VTD_IQA_REG. Software could set this bit to tell VT-d the QI descriptor from software would be 256 bits. Accordingly, the VTD_IQH_QH_SHIFT should be 5 when descriptor size is 256 bits. This patch adds the DW bit check when deciding the shift used to update VTD_IQH_REG. Signed-off-by: Liu Yi L Message-Id: <1593850035-35483-1-git-send-email-yi.l.liu@intel.com> Reviewed-by: Peter Xu Acked-by: Jason Wang Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit a4544c45e109ceee87ee8c19baff28be3890d788) Signed-off-by: Michael Roth --- hw/i386/intel_iommu.c | 7 ++++++- hw/i386/intel_iommu_internal.h | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index df7ad254ac..8703a2da42 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2549,6 +2549,11 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s) /* Try to fetch and process more Invalidation Descriptors */ static void vtd_fetch_inv_desc(IntelIOMMUState *s) { + int qi_shift; + + /* Refer to 10.4.23 of VT-d spec 3.0 */ + qi_shift = s->iq_dw ? VTD_IQH_QH_SHIFT_5 : VTD_IQH_QH_SHIFT_4; + trace_vtd_inv_qi_fetch(); if (s->iq_tail >= s->iq_size) { @@ -2567,7 +2572,7 @@ static void vtd_fetch_inv_desc(IntelIOMMUState *s) } /* Must update the IQH_REG in time */ vtd_set_quad_raw(s, DMAR_IQH_REG, - (((uint64_t)(s->iq_head)) << VTD_IQH_QH_SHIFT) & + (((uint64_t)(s->iq_head)) << qi_shift) & VTD_IQH_QH_MASK); } } diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 862033ebe6..3d5487fe2c 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -230,7 +230,8 @@ #define VTD_IQA_DW_MASK 0x800 /* IQH_REG */ -#define VTD_IQH_QH_SHIFT 4 +#define VTD_IQH_QH_SHIFT_4 4 +#define VTD_IQH_QH_SHIFT_5 5 #define VTD_IQH_QH_MASK 0x7fff0ULL /* ICS_REG */ From patchwork Thu Sep 3 20:59:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306245 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A588C43461 for ; Thu, 3 Sep 2020 21:54:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0731720678 for ; Thu, 3 Sep 2020 21:54:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oQjL4VHb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0731720678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxBr-0004bE-6A for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:54:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59670) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMB-00053X-82; Thu, 03 Sep 2020 17:01:19 -0400 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:34056) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM8-0007tQ-D1; Thu, 03 Sep 2020 17:01:17 -0400 Received: by mail-ot1-x343.google.com with SMTP id h17so3210739otr.1; Thu, 03 Sep 2020 14:01: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=n/Y0ED6jz0ryYpBgvkE7oSql+mNnQ/ED8BzlFc5aOpo=; b=oQjL4VHbFjthDqTqh+7CgzXWbqRKSplmPXjIF7QiAVYkc1+JO8HkOwviNGDDkl1fSD HMJHBNgAqo1JOvnEKB48CkNP6MmOnwjSWJ1707topycQJd7uGz76hHND1pHsWfAVhLbb /q76evI+dJLSxwOv2jdinpYnhkdYcWct8TkU/n9kX8vIUmRgN3UtU8LGgyrq1pPo/yyf IoKZcMVCApVoCWTItRIBQ81qOJ0O1XRwRpURK3t/EN9+X0xyLJOYbdVSH3w6xUSjR5nF TUO+SpaPPQHBLO1Dv9QQ2aGz35TAiefiOW6lommVhWOgn36KwH3EpfTzSwyaePdWWhA2 jdUQ== 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=n/Y0ED6jz0ryYpBgvkE7oSql+mNnQ/ED8BzlFc5aOpo=; b=sSBPwKW5iEkpGmPQIII7LzpD9syE7M12hrX3OCxgjUtw9hDnjQQ783Hd47CP+JRc9e mg27lDT75PcEagfG8FWzQN5C4lpuMc5HO8D7f8DUm97cMUMIxT7ZHp/026wIVcdkf6KH 7vbvgLmCRSCPqWuQtTRQi5YUkkhG+7r0rF0FVEZnlHam+mqlT1riy9HqJ+qISKe8+HRQ 7aEVgXlSm5E9KZlWvBFmsKwEp25Aa6NDvU0DkHLplEaCRO8qQLTSv6VVAd+V3VD7AXfA /9SjnxE99gl7PueUGCpOBgJDIvAMNC4fSDGNlOi+U4TgIHWybsp1g2yKY0VXgcmD1ZqH J/Qw== X-Gm-Message-State: AOAM5326qHaxzeOCqa9d+Dvl8oCYe2rnMHWzeQvKBAl0BBxEZg+Yctfe fD60CqCQQH7haW3xknET6jEZ8ZSdyL9gBQ== X-Google-Smtp-Source: ABdhPJxjAw8KfmHTVuIJa9amBqio0ZRxQE+p2I2iruF+ViEeTxXfCrszfmyWrpwi1NSdRwzjHQrYRg== X-Received: by 2002:a9d:a6e:: with SMTP id 101mr2994077otg.80.1599166873456; Thu, 03 Sep 2020 14:01:13 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 91sm793490otn.18.2020.09.03.14.01.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:12 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 68/77] virtio-pci: Changed vdev to proxy for VirtIO PCI BAR callbacks. Date: Thu, 3 Sep 2020 15:59:26 -0500 Message-Id: <20200903205935.27832-69-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::343; envelope-from=flukshun@gmail.com; helo=mail-ot1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Melnychenko , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Andrew Melnychenko There is an issue when callback may be called with invalid vdev. It happens on unplug when vdev already deleted and VirtIOPciProxy is not. So now, callbacks accept proxy device, and vdev retrieved from it. Technically memio callbacks should be removed during the flatview update, but memoryregions remain til PCI device(and it's address space) completely deleted. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1716352 Signed-off-by: Andrew Melnychenko Message-Id: <20200706112123.971087-1-andrew@daynix.com> Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit ccec7e9603f446fe75c6c563ba335c00cfda6a06) Signed-off-by: Michael Roth --- hw/virtio/virtio-pci.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 2ca266e1cb..ef11c66a21 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1317,11 +1317,12 @@ static uint64_t virtio_pci_notify_read(void *opaque, hwaddr addr, static void virtio_pci_notify_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - VirtIODevice *vdev = opaque; - VirtIOPCIProxy *proxy = VIRTIO_PCI(DEVICE(vdev)->parent_bus->parent); + VirtIOPCIProxy *proxy = opaque; + VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); + unsigned queue = addr / virtio_pci_queue_mem_mult(proxy); - if (queue < VIRTIO_QUEUE_MAX) { + if (vdev != NULL && queue < VIRTIO_QUEUE_MAX) { virtio_queue_notify(vdev, queue); } } @@ -1329,10 +1330,12 @@ static void virtio_pci_notify_write(void *opaque, hwaddr addr, static void virtio_pci_notify_write_pio(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - VirtIODevice *vdev = opaque; + VirtIOPCIProxy *proxy = opaque; + VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); + unsigned queue = val; - if (queue < VIRTIO_QUEUE_MAX) { + if (vdev != NULL && queue < VIRTIO_QUEUE_MAX) { virtio_queue_notify(vdev, queue); } } @@ -1356,9 +1359,14 @@ static void virtio_pci_isr_write(void *opaque, hwaddr addr, static uint64_t virtio_pci_device_read(void *opaque, hwaddr addr, unsigned size) { - VirtIODevice *vdev = opaque; + VirtIOPCIProxy *proxy = opaque; + VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); uint64_t val = 0; + if (vdev == NULL) { + return val; + } + switch (size) { case 1: val = virtio_config_modern_readb(vdev, addr); @@ -1376,7 +1384,13 @@ static uint64_t virtio_pci_device_read(void *opaque, hwaddr addr, static void virtio_pci_device_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { - VirtIODevice *vdev = opaque; + VirtIOPCIProxy *proxy = opaque; + VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); + + if (vdev == NULL) { + return; + } + switch (size) { case 1: virtio_config_modern_writeb(vdev, addr, val); @@ -1453,19 +1467,19 @@ static void virtio_pci_modern_regions_init(VirtIOPCIProxy *proxy) memory_region_init_io(&proxy->device.mr, OBJECT(proxy), &device_ops, - virtio_bus_get_device(&proxy->bus), + proxy, "virtio-pci-device", proxy->device.size); memory_region_init_io(&proxy->notify.mr, OBJECT(proxy), ¬ify_ops, - virtio_bus_get_device(&proxy->bus), + proxy, "virtio-pci-notify", proxy->notify.size); memory_region_init_io(&proxy->notify_pio.mr, OBJECT(proxy), ¬ify_pio_ops, - virtio_bus_get_device(&proxy->bus), + proxy, "virtio-pci-notify-pio", proxy->notify_pio.size); } From patchwork Thu Sep 3 20:59:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274587 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EC3FC43461 for ; Thu, 3 Sep 2020 21:45:01 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1CDA8206EF for ; Thu, 3 Sep 2020 21:45:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W0dnaJxy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1CDA8206EF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54280 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx2S-0006KE-8o for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:45:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMB-00053W-8I; Thu, 03 Sep 2020 17:01:19 -0400 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]:35412) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwM8-0007to-Dj; Thu, 03 Sep 2020 17:01:17 -0400 Received: by mail-oi1-x22f.google.com with SMTP id w16so4538889oia.2; Thu, 03 Sep 2020 14:01: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 :mime-version:content-transfer-encoding; bh=Gp/FZKkqU04XfSMs8F0HgQ0MGLufMuTTwBeTutB4Yfc=; b=W0dnaJxyLxEtYVUQkNBcw94SnTLexrnfXoacpK8hj4/14ekxTOCFZffjuQDrlQeMW8 8c8i842QBlTBGnNow3sEUpV5BErW9ozafWYrw2dHaQevhVdhDzlVb0yIGlOsCGe5cv0a vSYpy0BkznZl0/dKU8vE4FyCATkI5vd7bYj4XFg65GVCD88h+KkBUEcbk7dhH5138Iyj V92FJHMazdYjZs6551FWkQqFC+ZuFv6Fc9BcyfUAOzhHbE1hKWmLhVJyK5Y6meBVlDib qOWJuD9y8WqNyFateEEc0b7bF504PsjaxGfc/RkYT2jZOetX6mJVzS9j6sOoG9kvf3Ul /tEQ== 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=Gp/FZKkqU04XfSMs8F0HgQ0MGLufMuTTwBeTutB4Yfc=; b=WrWv6qLbiOABhtJlmHrIOipMT3kqZ0W8j7qzbEHyrRsLxxefWz+B/C0BZKOxDHiTo4 jaPrPDheWn2CczoBaguINGTEOsr8fBoKFtdtJK2zThkdJ/kfNCvfeMtv+Qp/6dmFHIjj t4Tkljmjmhz6+Q7QebXa0J3Z98Bq6VcydOQpz8HK55XvHujBK/FGhyNwp39gTusf7Ij/ cWU5EsO9hQsz5fwWHoaWj7jnvbYiX1rqioFyVjLFJl+48qnEPlzP1HIC37RArzVxhcK1 oiI9+XYxiln6Dg7LSj1m58FZNRgOVrLcb5MqeHvwQzff8dDT6wXTRflkm0/AcSDtEv+o KK5w== X-Gm-Message-State: AOAM530ikzARdlk5EASjTQn87h2Bn5r12c4QWSb4QXxt9oVFtYK1eQSj uXoWlumRV7JNxIcms27NcGtQMRQ2Z3OUzQ== X-Google-Smtp-Source: ABdhPJw0FKmpIMmf8R4+W5pubrGUqPcTL8IfyihYyCD7YNqT4kGmUwWFFhU6u/JrT4d2nHddRYWlsQ== X-Received: by 2002:aca:4403:: with SMTP id r3mr823175oia.94.1599166874742; Thu, 03 Sep 2020 14:01:14 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id b188sm716337oif.19.2020.09.03.14.01.13 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:14 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 69/77] libvhost-user: Report descriptor index on panic Date: Thu, 3 Sep 2020 15:59:27 -0500 Message-Id: <20200903205935.27832-70-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22f; envelope-from=flukshun@gmail.com; helo=mail-oi1-x22f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-stable@nongnu.org, "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daudé We want to report the index of the descriptor, not its pointer. Fixes: 7b2e5c65f4 ("contrib: add libvhost-user") Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20200723171935.18535-1-philmd@redhat.com> Reviewed-by: Marc-André Lureau Reviewed-by: Raphael Norwitz Reviewed-by: Stefan Hajnoczi Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 8fe9805c73c277dc2feeaa83de73d6a58bf23f39) Signed-off-by: Michael Roth --- contrib/libvhost-user/libvhost-user.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c index 3bca996c62..301f6d68b3 100644 --- a/contrib/libvhost-user/libvhost-user.c +++ b/contrib/libvhost-user/libvhost-user.c @@ -1867,7 +1867,7 @@ virtqueue_get_head(VuDev *dev, VuVirtq *vq, /* If their number is silly, that's a fatal mistake. */ if (*head >= vq->vring.num) { - vu_panic(dev, "Guest says index %u is available", head); + vu_panic(dev, "Guest says index %u is available", *head); return false; } @@ -1926,7 +1926,7 @@ virtqueue_read_next_desc(VuDev *dev, struct vring_desc *desc, smp_wmb(); if (*next >= max) { - vu_panic(dev, "Desc next is %u", next); + vu_panic(dev, "Desc next is %u", *next); return VIRTQUEUE_READ_DESC_ERROR; } From patchwork Thu Sep 3 20:59:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306250 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, LOTS_OF_MONEY, MAILING_LIST_MULTI, NORMAL_HTTP_TO_IP, NUMERIC_HTTP_ADDR, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A687DC43461 for ; Thu, 3 Sep 2020 21:47:45 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 23259206EF for ; Thu, 3 Sep 2020 21:47:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BdRSvN1v" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23259206EF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx56-0001ef-9L for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:47:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMJ-0005Ki-Hi; Thu, 03 Sep 2020 17:01:27 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:36470) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMD-0007uw-T9; Thu, 03 Sep 2020 17:01:27 -0400 Received: by mail-ot1-x333.google.com with SMTP id 109so4029939otv.3; Thu, 03 Sep 2020 14:01: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=8UZbDPwMe335VoDkpJh4Nr706sFcshFSpvnQAlENJwM=; b=BdRSvN1viCaDCG9ViRB3nlWlapUXzeSPvD6t4kevu9uXYcHbtzdzg4dtpqAoMmfC4k 4BrcsEMTQSzNA1cycwvX+4Cdg4fC6z97m1L8SHHp+2zB7l3PhnYOuPogWBENjZ55qhUF fOuguqU4D8bSeHCB2rLn5rhOPNKEUlFS9ubylvl7OBmyS7EJKeTMBfoDbqB5e2EcEexu 2QeP+GUmDwbNbCsqJ4a3p1zLqlzvvUoqhK6Ajv9O+71DxfLckiLpYnMFFiyhmEy4ppXR BVsHIXoqP8Sm4ZoDeWwmf0m4kMF2ITalnjmNfA9huKmJh15129OyhQ2RU3JQCncK/3sY X2DA== 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=8UZbDPwMe335VoDkpJh4Nr706sFcshFSpvnQAlENJwM=; b=owj9BRMihJj8y0RVoS2sqgd50IEFLHpHE0saHwyNQtJ+NF5QCAGApO/Cn8gtUTMEOC bQlHz+AsxsoSBMc/VSYpob/BH1bTP3EzSQWz1wcfBkWo3QYvQJbRGgW5KXzdudPBOqB+ rz52pfAHdTXLjlb/2dErra9NmfQbxhkDhrOs8eZSVzFxFn0xFAukG6wIiLMcFUIuafH6 jQnBt+Y0WbpzlVSYPFq4UAs+yu0tire/WNjRICLsujITKjsyKt3kEpnmJHR+M4231v3g nsbwzoKcSLvFrI5uePOMZ20uKzX4xN9QFyTPcivPd+6uBt+eClYqq6FJghxxdGNQxn2Q 0Vmg== X-Gm-Message-State: AOAM532TzAZjFt8yLs0cvoOJv0AqiTHDIx8xb3bZSNc3hAsX0aVUyWG9 miGgYPVlv6rRJIzg5S4g2CyZUcGadrcNwg== X-Google-Smtp-Source: ABdhPJy/fg0p15+IIZyth0nZBwNiy7gdl5nqEoPKc2xyDRZzkcKLQu9Kv8SsGDI9ZhEfNU435JZiog== X-Received: by 2002:a9d:171:: with SMTP id 104mr3040376otu.256.1599166876322; Thu, 03 Sep 2020 14:01:16 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id h24sm324714otj.33.2020.09.03.14.01.15 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:15 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 70/77] Update OpenBIOS images to 7f28286f built from submodule. Date: Thu, 3 Sep 2020 15:59:28 -0500 Message-Id: <20200903205935.27832-71-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=flukshun@gmail.com; helo=mail-ot1-x333.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Cave-Ayland , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Mark Cave-Ayland Signed-off-by: Mark Cave-Ayland Cc: qemu-stable@nongnu.org (cherry picked from commit 54414d0fb11314ede939ec80238787c5b2079f4e) Signed-off-by: Michael Roth --- pc-bios/openbios-ppc | Bin 696912 -> 696912 bytes pc-bios/openbios-sparc32 | Bin 382048 -> 382048 bytes pc-bios/openbios-sparc64 | Bin 1593408 -> 1593408 bytes roms/openbios | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/openbios-ppc b/pc-bios/openbios-ppc index 1c9ab09af72daa1e382a95334e90a1d255d2a9bd..def6d4cf63380d2601f35e2320b38055b8c4d6f1 100644 GIT binary patch delta 30445 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%0Agn9Ugq~O9%(s#&oZ;KJ;$#f<4?6y=W@T% z;_3evJPUBpVfULvkN(9klK(w~%KqZ_G+%9{?#KON$@rMx2);UBEjY^`^ZOU$1=-Hb z6@Gtb{O@(nw!iv4%J>?IjCtq@&zw9zY*?M;d47WeZ57Hd&%Lf(db&#aWoy22>6ujJ z7wdnNO9*ZLudk~MY3mHbrcA3JhFXx)6^HiMI6EdxqGKtQHZ7$UDzwmCc;Q7Eg?S;X zFhNI3*NebxNv!KhwYH%xZ9^@MU~_U2)Xt!(3q>$PI~{IN=+B1RdC$!n3h$opyt&%N zEbjqPtMfFB^9!g?0*7r;Tb$3JE3dP??(G-lWuxxjY+ zaqxu@{|fB=f4&|6C5%H*7Zk_;KDwyB3RX$@cstwizu0=*#rB;tV2$WcEXw*sPU2*> z#L41%sulUq*-F*{m)S~zUe`TcB6-v0#ki<5T`BpqrzJo5qhA`6&$E5i$JWnbF_e!= zgYuoypgaV0gO*-OgO(l$@j8gKpY;wg@cWF+znYZ!R|%Pav&i8~?^I)H5FLOJl}e|m3Qgdb4`Ezk^1v~SP<_TRLLYk^ zBh>JxV}u$|5R6bmuVaK7T7}0G79LMKFvHY{PT@*ZJ@U0q(Az8tE$4)|Wxo)6{}y5| z9BX24pAdU}vazLG_IaCtZ@01^h6e4f@Z@`k{d2AAu2kp*cv0 zAQY}Z0-VPUro(H%7*L;&B|vP5KNQkvk#r~|q(dkc_ZLM{LK?o|kWvI(n)Ava+mF&r zMq0QpBi7uPJ1{@bG?;fzdi*eqi6s$v`d%uZc_|`Oogy+F6_HFrM5f?ai==UBv`D5` zL`-y2iG5>CJGGZ5NSjj_rwBriFh*Y<^P2=KAFN z%{2+>Tr2YS3F#WRH0dfjs$0H_E@{ryYTK(EKQGkp!!^Z1>@m@?cb?H=lR q0P*|n#_5~t8$9lEH`QnE8@MwF;~mrN9<%b6ei#gvm@6^W=lU0a6HbHx delta 30193 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 delta 20096 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 diff --git a/pc-bios/openbios-sparc64 b/pc-bios/openbios-sparc64 index 99420eb815a1675df80e837630a4284ce5c4e1eb..dfa1f10bbc140d78d56451fd4e5c73da13898d5e 100644 GIT binary patch delta 38261 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ö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 delta 37949 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 diff --git a/roms/openbios b/roms/openbios index 7e5b89e429..7f28286f5c 160000 --- a/roms/openbios +++ b/roms/openbios @@ -1 +1 @@ -Subproject commit 7e5b89e4295063d8eba55b9c8ce8bc681c2d129a +Subproject commit 7f28286f5cb1ca682e3ba0a8706d8884f12bc49e From patchwork Thu Sep 3 20:59:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274598 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5562AC43461 for ; Thu, 3 Sep 2020 21:33:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 17D54206D4 for ; Thu, 3 Sep 2020 21:33:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZG9D6EGe" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 17D54206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:57178 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwrc-0000xt-7X for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:33:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59700) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMD-00058S-Um; Thu, 03 Sep 2020 17:01:21 -0400 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]:34353) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMC-0007ub-6O; Thu, 03 Sep 2020 17:01:21 -0400 Received: by mail-oo1-xc2c.google.com with SMTP id k63so1135379oob.1; Thu, 03 Sep 2020 14:01: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=5RZT5c65N2inveAD4NSJ6yvBuDinvqkRBIn47Uw8RQo=; b=ZG9D6EGedpXkdaf31lj8tC4UHFbfFpmjul3uBFpfcF8LrbxsUPFymoFEmbjnfUsQ2+ Yx72FovkqHoaAZpPcqfAsC9TaLlB/ERke+kEbmB7sKpMnoHMINBiZd+BHGkC2fD1Zy9K ZKVMIWGhXB+QjH28SlA9FwHGmUMav5iDpib5YgXR7f8qftzw/sIsSgxoSXrHmX1Wt5u/ NKt3P9y13p7BQzEcGEKfi56CEE/kswPzr8lmg3k4m0r7x1XsH4rEsw2VmdHkjlnqSCNx g18y1mOSAXIJwCGgS6hCwozdcaWGItxFdw+QHrUzrzFWOgQ7wn7ZeubZQYjMxBLmfYNF qVNQ== 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=5RZT5c65N2inveAD4NSJ6yvBuDinvqkRBIn47Uw8RQo=; b=W1s/sgY/7p/lFxUbI8XxkuHShVxyfw8mf/qU0v6uf1nV+LXwMyv+gTgggryrqbSrmw 4ogynOltb9sfxvIeveHYlFsbomDmml/ffskXZTx/J/g4+Zr0QrrRy/W/Kge5OHJ29Fh6 Mpzp2juPqfkYAiGDcA+I/T52011z7VuqGJvpBZjB0y+LYqlwQX0SVutPUPh94YGnD1Ba zyZVEAdY29qwi2oOa3WF4fgkN07Dw9fueyoLbG+vHu/rSwwGCHUT0rCVZCCBx2AWfmJH syf/vkin9Urv2NwgkLloLwTt15BOfH7DzT6sFMSOFb/gAtHE+pnn8nBws6/3eRDnS6rT Tqgg== X-Gm-Message-State: AOAM532+CPSHVadVRuSkXi5DNkBCzdb3JFtVj99eVlqHqG/h08OrNsfh 7/ecbtATq2vY4Qw3R4SLgDUptBcYimmZdQ== X-Google-Smtp-Source: ABdhPJzQQpluC1Y8YtuCuohjg3rsagUO4s8i7H/fF1RNw5sgUKz4eFbQrCdNaFwjJlsmmZ5mK0Z77w== X-Received: by 2002:a4a:5a06:: with SMTP id v6mr3367008ooa.22.1599166878534; Thu, 03 Sep 2020 14:01:18 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id v35sm763916otb.32.2020.09.03.14.01.17 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:17 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 71/77] migration/block-dirty-bitmap: fix dirty_bitmap_mig_before_vm_start Date: Thu, 3 Sep 2020 15:59:29 -0500 Message-Id: <20200903205935.27832-72-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::c2c; envelope-from=flukshun@gmail.com; helo=mail-oo1-xc2c.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vladimir Sementsov-Ogievskiy , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Vladimir Sementsov-Ogievskiy Using the _locked version of bdrv_enable_dirty_bitmap to bypass locking is wrong as we do not already own the mutex. Moreover, the adjacent call to bdrv_dirty_bitmap_enable_successor grabs the mutex. Fixes: 58f72b965e9e1q Cc: qemu-stable@nongnu.org # v3.0 Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Andrey Shinkevich Reviewed-by: Eric Blake Message-Id: <20200727194236.19551-8-vsementsov@virtuozzo.com> Signed-off-by: Eric Blake (cherry picked from commit e6ce5e92248be5547daaee3eb6cd226e9820cf7b) Signed-off-by: Michael Roth --- migration/block-dirty-bitmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c index 7eafface61..16f1793ee3 100644 --- a/migration/block-dirty-bitmap.c +++ b/migration/block-dirty-bitmap.c @@ -498,7 +498,7 @@ void dirty_bitmap_mig_before_vm_start(void) DirtyBitmapLoadBitmapState *b = item->data; if (b->migrated) { - bdrv_enable_dirty_bitmap_locked(b->bitmap); + bdrv_enable_dirty_bitmap(b->bitmap); } else { bdrv_dirty_bitmap_enable_successor(b->bitmap); } From patchwork Thu Sep 3 20:59:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274581 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28E4EC433E2 for ; Thu, 3 Sep 2020 21:54:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DC74420678 for ; Thu, 3 Sep 2020 21:54:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GndvPu3A" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DC74420678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxBt-0004fp-1u for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:54:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMF-0005C0-Ad; Thu, 03 Sep 2020 17:01:23 -0400 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:37586) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMD-0007un-ET; Thu, 03 Sep 2020 17:01:22 -0400 Received: by mail-oi1-x243.google.com with SMTP id e6so4530818oii.4; Thu, 03 Sep 2020 14:01: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=F7oBuPw2Gy+qGvdz894BU94j+ShqXQikgbDFVSsKbrY=; b=GndvPu3A1hgsuvcXKlLJ9kchrApbt6KknZc4A3O7EaT6KonEgE6giHY4eW0iG4xol3 /amPAY+I0XN290IUoodCK4ZGR4WRVlsoN5hCzY1WbvsPwDy0kPbtR4sq3kwOasD0zxqn SUlrsQkxkRMBXYgaXEerlohzFTPcAtQUn6qyX4jvTE1P13g8UbG36MooqO/cJ1sV7jpL x2i+p3TeLH8Lxt3CWjMPmSw4bwD/ZVmAAxIiKWnUDQ9QjT//YTx8ZcellqRj4wz8+bOG NjdIlZ8bQd7PM/o8uE1RgrTpSE7XrLe1A+urNtXsq1DEDSXCFm9FEdcZ+73sBKhDTCHF nZQQ== 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=F7oBuPw2Gy+qGvdz894BU94j+ShqXQikgbDFVSsKbrY=; b=BsQjxQ6p+MgNKImFtTH1w4Q7EaL1/EbOIKAB5WvZ7qkTMJdxVuyjCUE8/GsEDSAcyf SoRh/1Ls8H2/UJuEcXIcQuWQK4YQGAOoU/DzJA8eXwPstgw5O5UA72y7pkIM1YBEGMj1 Wr6IbQMFhCCylyxSnj2eVSI5hacNODN49RAxTTajcGyhNoa3QOfqqXqgdGctA8qx7sAd fW3qZRenbGnvOmfPTRiUMUo2b0s/dPsTMThaQfnrV0PDlRjPOFI86vcTaITefUL0Rdjh K6VjdymTHd1ubF7rlGFjxKgzQ3G7N9W6T5+LolS/6Kf0BSKgS1G+tMFEIbnr4iepvwYp vp6A== X-Gm-Message-State: AOAM532uZ/v2q3W5jtshQjhTOc37cpEk9X9N9VLsbkiFwLavyT0eY4th KaMZeZwFwe3XKZEgEfIv1QnnFKoRF8BAMQ== X-Google-Smtp-Source: ABdhPJwVh4BpARhvw4Dd7HCBv8KnMq0nujSwsYeCYf9x83quSLp5V/nN0F5Hamdhyq8rf/niSF4qZA== X-Received: by 2002:a05:6808:7c8:: with SMTP id f8mr3160952oij.119.1599166879648; Thu, 03 Sep 2020 14:01:19 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id x4sm725153oic.11.2020.09.03.14.01.18 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:19 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 72/77] block: Fix bdrv_aligned_p*v() for qiov_offset != 0 Date: Thu, 3 Sep 2020 15:59:30 -0500 Message-Id: <20200903205935.27832-73-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::243; envelope-from=flukshun@gmail.com; helo=mail-oi1-x243.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Max Reitz Since these functions take a @qiov_offset, they must always take it into account when working with @qiov. There are a couple of places where they do not, but they should. Fixes: 65cd4424b9df03bb5195351c33e04cbbecc0705c ("block/io: bdrv_aligned_preadv: use and support qiov_offset") Fixes: 28c4da28695bdbe04b336b2c9c463876cc3aaa6d ("block/io: bdrv_aligned_pwritev: use and support qiov_offset") Reported-by: Claudio Fontana Reported-by: Bruce Rogers Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz Message-Id: <20200728120806.265916-2-mreitz@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy Tested-by: Claudio Fontana Tested-by: Bruce Rogers (cherry picked from commit 134b7dec6ec2d90616d7986afb3b3b7ca7a4c383) Signed-off-by: Michael Roth --- block/io.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/block/io.c b/block/io.c index aba67f66b9..496c813dd8 100644 --- a/block/io.c +++ b/block/io.c @@ -1501,12 +1501,13 @@ static int coroutine_fn bdrv_aligned_preadv(BdrvChild *child, assert(num); ret = bdrv_driver_preadv(bs, offset + bytes - bytes_remaining, - num, qiov, bytes - bytes_remaining, 0); + num, qiov, + qiov_offset + bytes - bytes_remaining, 0); max_bytes -= num; } else { num = bytes_remaining; - ret = qemu_iovec_memset(qiov, bytes - bytes_remaining, 0, - bytes_remaining); + ret = qemu_iovec_memset(qiov, qiov_offset + bytes - bytes_remaining, + 0, bytes_remaining); } if (ret < 0) { goto out; @@ -2009,7 +2010,8 @@ static int coroutine_fn bdrv_aligned_pwritev(BdrvChild *child, } ret = bdrv_driver_pwritev(bs, offset + bytes - bytes_remaining, - num, qiov, bytes - bytes_remaining, + num, qiov, + qiov_offset + bytes - bytes_remaining, local_flags); if (ret < 0) { break; From patchwork Thu Sep 3 20:59:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306244 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9CEACC433E2 for ; Thu, 3 Sep 2020 21:56:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 412CC205CB for ; Thu, 3 Sep 2020 21:56:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ajidGXnS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 412CC205CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:41674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxDn-00084L-En for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:56:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59732) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMG-0005Fl-QS; Thu, 03 Sep 2020 17:01:25 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:39224) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMF-0007vC-4a; Thu, 03 Sep 2020 17:01:24 -0400 Received: by mail-ot1-x332.google.com with SMTP id u25so4011941otq.6; Thu, 03 Sep 2020 14:01:22 -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=E70J8HSNM80vAgu3Ao3Q8OgYv6xE4YCHtBCrJzU2WUA=; b=ajidGXnSWBaH/GwIEMI1Hm9V2A2yedWl6ac4SRt4Lp3/DDRy3or7BijxgKTel4Qz8m F8LYry1WtlSkgOBbzXbc+pV/2iUa3Zgra6xbAEWbdNz2O71IPC1VqZrahbjdnPKtzgzQ u7l8D5mmjWRTdWtv6AvXZHDE5EruJJ04JFWypV8Hle5HaKtevvQG+y3ElJBwKTTBz2CF d6BCrzQRDQIEyMtqGcvfFMmf0K8lKTLMi6/70XEMYyQ0BpS5GeLPsnjSlwJ69PBM8a+G JqWaMLjF8CzwWOCQN/JMWzvGEw+BgE4rtBrAU7RWUwEYfmhaDFOsHRgVDAJedVXrWZiQ RkQg== 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=E70J8HSNM80vAgu3Ao3Q8OgYv6xE4YCHtBCrJzU2WUA=; b=fEAe0V0jbrFR/KL8ogcV3CWdjnomSzmRBYJ7f4Bnrc6rSMq2TD+NWY9Y/Ex7/v98ZK I7uLB6WrZVXkVSGf2rA+bZVDuOwEtGJv+KALU/Vjxi0TLPhdQyRa4igCd3oIXtZVh263 DYxswEKLbaigZK5o+X0hE8ZlHmmMX1MeObMDdqrnEoAPTKyKBYZui2UzuTSlw4kBO6Mu ftJVCAgDCMA9bE00b1xNXzHMybypvQFhoAnmzrERg/KOw3iqzWsgMa+CYdtMG7INGta7 LYRiuOWaZjBmg+A8E9GTRUka0QKPBR72KJbBcYB0U4yKTGrFdvTqqf7MCLWyiT/cWnfe Cdew== X-Gm-Message-State: AOAM532cb0DcJF5HBF6nE2OlfYHGAn7qME8Wk/ZGpWKhjxVaN/RuIVz+ akWBPe/pC1xZKbh+drynvwd7WbeeVUArVA== X-Google-Smtp-Source: ABdhPJzXySGpZPVLjP7vOorjlMkpNhGQPAJfx5GEt8rwqFzqZ+hUAwqIIr2Oe8jg0FFtKSqjOzjtLw== X-Received: by 2002:a9d:7618:: with SMTP id k24mr3225209otl.34.1599166881283; Thu, 03 Sep 2020 14:01:21 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id 68sm771492otw.3.2020.09.03.14.01.19 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:20 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 73/77] iotests/028: Add test for cross-base-EOF reads Date: Thu, 3 Sep 2020 15:59:31 -0500 Message-Id: <20200903205935.27832-74-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=flukshun@gmail.com; helo=mail-ot1-x332.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Max Reitz Signed-off-by: Max Reitz Message-Id: <20200728120806.265916-3-mreitz@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy Tested-by: Vladimir Sementsov-Ogievskiy Tested-by: Claudio Fontana (cherry picked from commit ae159450e161b3e1e2c5b815d19632abbbbcd1a1) Signed-off-by: Michael Roth --- tests/qemu-iotests/028 | 19 +++++++++++++++++++ tests/qemu-iotests/028.out | 11 +++++++++++ 2 files changed, 30 insertions(+) diff --git a/tests/qemu-iotests/028 b/tests/qemu-iotests/028 index 797dae5350..1e52986b74 100755 --- a/tests/qemu-iotests/028 +++ b/tests/qemu-iotests/028 @@ -142,6 +142,25 @@ TEST_IMG="${TEST_IMG}.copy" io_zero readv $(( offset + 32 * 1024 )) 512 1024 32 _check_test_img +echo +echo '=== Reading across backing EOF in one operation ===' +echo + +# Use a cluster boundary as the base end here +base_size=$((3 * 1024 * 1024 * 1024)) + +TEST_IMG="$TEST_IMG.base" _make_test_img $base_size +_make_test_img -b "$TEST_IMG.base" -F $IMGFMT $image_size + +# Write 16 times 42 at the end of the base image +$QEMU_IO -c "write -P 42 $((base_size - 16)) 16" "$TEST_IMG.base" \ + | _filter_qemu_io + +# Read 32 bytes across the base EOF from the top; +# should be 16 times 0x2a, then 16 times 0x00 +$QEMU_IO -c "read -v $((base_size - 16)) 32" "$TEST_IMG" \ + | _filter_qemu_io + # success, all done echo "*** done" rm -f $seq.full diff --git a/tests/qemu-iotests/028.out b/tests/qemu-iotests/028.out index 37aed84436..51ae06d38f 100644 --- a/tests/qemu-iotests/028.out +++ b/tests/qemu-iotests/028.out @@ -730,4 +730,15 @@ read 512/512 bytes at offset 3221257728 read 512/512 bytes at offset 3221258752 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) No errors were found on the image. + +=== Reading across backing EOF in one operation === + +Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=3221225472 +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294968832 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT +wrote 16/16 bytes at offset 3221225456 +16 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +bffffff0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ................ +c0000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +read 32/32 bytes at offset 3221225456 +32 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) *** done From patchwork Thu Sep 3 20:59:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306260 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 06442C433E2 for ; Thu, 3 Sep 2020 21:36:22 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B9F0D20665 for ; Thu, 3 Sep 2020 21:36:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ePb5m9dl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9F0D20665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:38736 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDwu4-0005B4-RL for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:36:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59754) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMI-0005Iv-MA; Thu, 03 Sep 2020 17:01:26 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:37276) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMG-0007vO-LQ; Thu, 03 Sep 2020 17:01:26 -0400 Received: by mail-ot1-x333.google.com with SMTP id 37so4025703oto.4; Thu, 03 Sep 2020 14:01:23 -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=JAH928Qnnsu2tDkDklCgu+9iEjldTCiX63xa+JPkWRQ=; b=ePb5m9dlRBPpA2JY/NHJt/ygzSjENB1Tptyn6Y1auHksrimzBwICqB57RaMQm8E9Bq qalsYwEHSvlESi4ZIAbgeG2m5OzB+JY3e625b7KZvLgrXY2A6/QoTbYSKG6h0uHzHcXR 8vDkBBOCtS0kNoDCDkcGMXRssdnvqsMONzrnSSRONFO/e1tVYOaS+z/60SIMKIgTyB2v /UG+YOmwUNl/DfhbTfNwORHKM/g0Xb9a7Swd3Y/c2DtIRcKVsSAwIQDztgsJNRPmtWOu E9VOcZa6W4jL+kINcrhbyLUh3iQVNSc1I4oAF5FPJsFhNLuGMyNASxjKb8MjFC2a8Xss 6dZA== 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=JAH928Qnnsu2tDkDklCgu+9iEjldTCiX63xa+JPkWRQ=; b=GlXLr2ijMauHpzw4/zSqYS1IUvQYF2/nywmurrGoopTTVWa3prPjxGUzw/iaqkFnTa NSSImx9Qd0q3CwEY6a+HdW1vkupS+KPR6KbHyaIKVCtJlmPsClGeQkVrYlmzCppSYR0U 972Hw3YLXzImCZ1L5ntboV0uhtXncutwROLc1Q2Umk4tCoY7S7aChK6hIFlXZFS6rFnf XaXsht92c2koXPRGdVQhRXSW11W/5JXfOzjGeZR+InYJnstMm5X9e3cTmmcwNAAl0ww2 racIxoYeZHWuLfuJ/oQ03vFgb6UrifDQDIkChm38zWMkZy6NlulCkIQMx1ucd5GclRj7 A8OA== X-Gm-Message-State: AOAM5313+ixlZseq6LzarKI0i3Jq3JXztkY8EXfdZP2J/RVIRsCgan8T 5EG76I9w+wqaHsMmPCmyDX4Eu3ihUIaPGg== X-Google-Smtp-Source: ABdhPJzHOzj28XTF1ohpba1t7iotP8fR1XnvsjUuRryK87lOOZHSE28M9mgP3tgxTy1pBTGCW7X2uQ== X-Received: by 2002:a9d:6f05:: with SMTP id n5mr3219530otq.346.1599166882786; Thu, 03 Sep 2020 14:01:22 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id q15sm830950ooh.44.2020.09.03.14.01.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:22 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 74/77] nbd: Fix large trim/zero requests Date: Thu, 3 Sep 2020 15:59:32 -0500 Message-Id: <20200903205935.27832-75-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=flukshun@gmail.com; helo=mail-ot1-x333.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Eric Blake Although qemu as NBD client limits requests to <2G, the NBD protocol allows clients to send requests almost all the way up to 4G. But because our block layer is not yet 64-bit clean, we accidentally wrap such requests into a negative size, and fail with EIO instead of performing the intended operation. The bug is visible in modern systems with something as simple as: $ qemu-img create -f qcow2 /tmp/image.img 5G $ sudo qemu-nbd --connect=/dev/nbd0 /tmp/image.img $ sudo blkdiscard /dev/nbd0 or with user-space only: $ truncate --size=3G file $ qemu-nbd -f raw file $ nbdsh -u nbd://localhost:10809 -c 'h.trim(3*1024*1024*1024,0)' Although both blk_co_pdiscard and blk_pwrite_zeroes currently return 0 on success, this is also a good time to fix our code to a more robust paradigm that treats all non-negative values as success. Alas, our iotests do not currently make it easy to add external dependencies on blkdiscard or nbdsh, so we have to rely on manual testing for now. This patch can be reverted when we later improve the overall block layer to be 64-bit clean, but for now, a minimal fix was deemed less risky prior to release. CC: qemu-stable@nongnu.org Fixes: 1f4d6d18ed Fixes: 1c6c4bb7f0 Fixes: https://github.com/systemd/systemd/issues/16242 Signed-off-by: Eric Blake Message-Id: <20200722212231.535072-1-eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy [eblake: rework success tests to use >=0] (cherry picked from commit 890cbccb089db9e646cc1baea3be9dc060e3917b) Signed-off-by: Michael Roth --- nbd/server.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index 20754e9ebc..0918173c1b 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -2365,8 +2365,17 @@ static coroutine_fn int nbd_handle_request(NBDClient *client, if (request->flags & NBD_CMD_FLAG_FAST_ZERO) { flags |= BDRV_REQ_NO_FALLBACK; } - ret = blk_pwrite_zeroes(exp->blk, request->from + exp->dev_offset, - request->len, flags); + ret = 0; + /* FIXME simplify this when blk_pwrite_zeroes switches to 64-bit */ + while (ret >= 0 && request->len) { + int align = client->check_align ?: 1; + int len = MIN(request->len, QEMU_ALIGN_DOWN(BDRV_REQUEST_MAX_BYTES, + align)); + ret = blk_pwrite_zeroes(exp->blk, request->from + exp->dev_offset, + len, flags); + request->len -= len; + request->from += len; + } return nbd_send_generic_reply(client, request->handle, ret, "writing to file failed", errp); @@ -2380,9 +2389,18 @@ static coroutine_fn int nbd_handle_request(NBDClient *client, "flush failed", errp); case NBD_CMD_TRIM: - ret = blk_co_pdiscard(exp->blk, request->from + exp->dev_offset, - request->len); - if (ret == 0 && request->flags & NBD_CMD_FLAG_FUA) { + ret = 0; + /* FIXME simplify this when blk_co_pdiscard switches to 64-bit */ + while (ret >= 0 && request->len) { + int align = client->check_align ?: 1; + int len = MIN(request->len, QEMU_ALIGN_DOWN(BDRV_REQUEST_MAX_BYTES, + align)); + ret = blk_co_pdiscard(exp->blk, request->from + exp->dev_offset, + len); + request->len -= len; + request->from += len; + } + if (ret >= 0 && request->flags & NBD_CMD_FLAG_FUA) { ret = blk_co_flush(exp->blk); } return nbd_send_generic_reply(client, request->handle, ret, From patchwork Thu Sep 3 20:59:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 306242 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF03FC10DAA for ; Thu, 3 Sep 2020 21:58:37 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 637EB20678 for ; Thu, 3 Sep 2020 21:58:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WEoSrUV/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 637EB20678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxFc-0003Pt-9b for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:58:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59784) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMK-0005N5-66; Thu, 03 Sep 2020 17:01:28 -0400 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]:46537) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMH-0007va-UX; Thu, 03 Sep 2020 17:01:27 -0400 Received: by mail-ot1-x342.google.com with SMTP id c10so3976922otm.13; Thu, 03 Sep 2020 14:01: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=xAeCy0dkrFXli/MZ20SoEmseBhxRBmTMNlsNI00ND14=; b=WEoSrUV/LzAYl33ehfkdIN86+C4rVusYx4wewIllU8ElcV4YrtStVmYiGVvMyC23az e9P/8G0Y5Uh2vRXPdvTzjVEzFeR751XcONMtLiOU0NgqWQDU6yaN0wz/7ccBRcouvgs5 OFLTeq2C1yt8q9bLnNr3yygyi7S3yBRgPdE+HEn1CNe80cC4IviIDqaH3clfP3kpjKEG w9X7h63J2wkhcuta2/yLIO2bBf2YAHnGRg3Sqqz8Z2plENrEMLX7Y8bAI4OncGhHaIoB Vzqpu0Oks+fB7l9vy8qWB6uyJBUiZyno5Zn/biS0pNo0EC0CNnHEE2vsQBHHEg7s0TXP KIvQ== 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=xAeCy0dkrFXli/MZ20SoEmseBhxRBmTMNlsNI00ND14=; b=W4RUlvkJFlsuqYxKIhgjPaUGj5nOVuYAbS+b6h0WiZwxq01N02L1qIXJ+4/OsT1bAZ lmww64aBRo2GQAK+4rFMWgWHrz9zzhweJ2SIEenh9xP58ZSjn/E0BT63m/j1hb7n3BN4 qbOPjTyzzZdWr2gx3/CuMbmGauf7S27xZXHh+ecqXd/ZO5Y3CltnN1XqIC6meyHSJiyp zYc0q/hVNsHDdeGe6CDU99aDps5S0WvO+64xHlrGR6X4ygCiqopR44Z2UOKPhb2g/9a1 c98JcPk8qlEXO0AZVgkVRHBBy2pGNxe7hZThA4uGJU1srKdir2rhM6D/uZ3oN/jFE439 z4Ag== X-Gm-Message-State: AOAM531bL6M1fNBhNxdVLqRWZlFzAmmgpExQUGDqnaIilX7bxWtSv4v6 ytAT40KbbTFNAs6az2zuwFJutDEsFATsWQ== X-Google-Smtp-Source: ABdhPJzwTbCsl+Lytgoj2z8kHwkjguW6nV3JVs+HNrcQ/RMCz466MkpnxiQYgkQnz5rRU09YZbXfNg== X-Received: by 2002:a9d:d35:: with SMTP id 50mr3064963oti.166.1599166884190; Thu, 03 Sep 2020 14:01:24 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id m21sm787351otr.36.2020.09.03.14.01.23 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:23 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 75/77] virtio-net: align RSC fields with updated virtio-net header Date: Thu, 3 Sep 2020 15:59:33 -0500 Message-Id: <20200903205935.27832-76-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::342; envelope-from=flukshun@gmail.com; helo=mail-ot1-x342.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yuri Benditovich , Jason Wang , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Yuri Benditovich Removal of duplicated RSC definitions. Changing names of the fields to ones defined in the Linux header. Signed-off-by: Yuri Benditovich Signed-off-by: Jason Wang (cherry picked from commit dd3d85e89123c907be7628957457af3d03e3b85b) Conflicts: hw/net/virtio-net.c *drop context dep. on 590790297c0 Signed-off-by: Michael Roth --- hw/net/virtio-net.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index e7e2c2acdb..6cb1448310 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -77,25 +77,6 @@ tso/gso/gro 'off'. */ #define VIRTIO_NET_RSC_DEFAULT_INTERVAL 300000 -/* temporary until standard header include it */ -#if !defined(VIRTIO_NET_HDR_F_RSC_INFO) - -#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc_ext data in csum_ fields */ -#define VIRTIO_NET_F_RSC_EXT 61 - -static inline __virtio16 *virtio_net_rsc_ext_num_packets( - struct virtio_net_hdr *hdr) -{ - return &hdr->csum_start; -} - -static inline __virtio16 *virtio_net_rsc_ext_num_dupacks( - struct virtio_net_hdr *hdr) -{ - return &hdr->csum_offset; -} - -#endif static VirtIOFeature feature_sizes[] = { {.flags = 1ULL << VIRTIO_NET_F_MAC, @@ -1539,15 +1520,15 @@ static size_t virtio_net_rsc_drain_seg(VirtioNetRscChain *chain, VirtioNetRscSeg *seg) { int ret; - struct virtio_net_hdr *h; + struct virtio_net_hdr_v1 *h; - h = (struct virtio_net_hdr *)seg->buf; + h = (struct virtio_net_hdr_v1 *)seg->buf; h->flags = 0; h->gso_type = VIRTIO_NET_HDR_GSO_NONE; if (seg->is_coalesced) { - *virtio_net_rsc_ext_num_packets(h) = seg->packets; - *virtio_net_rsc_ext_num_dupacks(h) = seg->dup_ack; + h->rsc.segments = seg->packets; + h->rsc.dup_acks = seg->dup_ack; h->flags = VIRTIO_NET_HDR_F_RSC_INFO; if (chain->proto == ETH_P_IP) { h->gso_type = VIRTIO_NET_HDR_GSO_TCPV4; From patchwork Thu Sep 3 20:59:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274578 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0FF1C43461 for ; Thu, 3 Sep 2020 21:58:36 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6BA5E20678 for ; Thu, 3 Sep 2020 21:58:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EUCGFniQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BA5E20678 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDxFb-0003MV-HR for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:58:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwML-0005Ov-2E; Thu, 03 Sep 2020 17:01:29 -0400 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]:46539) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMJ-0007vm-CE; Thu, 03 Sep 2020 17:01:28 -0400 Received: by mail-ot1-x344.google.com with SMTP id c10so3976986otm.13; Thu, 03 Sep 2020 14:01: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 :mime-version:content-transfer-encoding; bh=ukiMnU2Ka9CilWgAW2sSo5sQypISiGu+XOTOgn0j23Q=; b=EUCGFniQXNizA5SYD5PkHcdWgwJn+49NwLtLVyQFwft/kWN11w3Ls7K8tUaFkMw42A 9/wws5PNQVxB3V/4hD8vS+ojTNZq8N++M6EPbR0ETxQ645u16fHRojhD+yrcR4qWzH4z /jUQT+/uSVCRPEzrEuMRxeFNI6C4DpWlofEG5RZKXI5FeXMlqYDr627JSsnrf0xvEb9P 5EyKsI3viZotUyqt+poFpfl9MMCpPEJQJeYAPZnloUNGxW55uzNQYUy+pilj6mNTOJVU IZURk+eRV9ngU3UxWZxPbij5pwxpDmdePVgxQUGfsHvgzUH8Bb+hx1INeYUyhx5ev7Of VM1w== 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=ukiMnU2Ka9CilWgAW2sSo5sQypISiGu+XOTOgn0j23Q=; b=h/qz+sM5284+m9mEY0EYuOVJ1T7n4zNmQdECGvkE4r36cB/CIRxlvqMi+1fsnnHuwo kRrnXvEu+RAOv+q0RyZ2UQQzCAZjLsgFFTtfG5PfngLRBtwhGlUxDMCxqFW4N+kVYPYp 0soJ6r1E3cgR4BTF9VA3Qcwcp7oMI+2MoCBSa3AC4I00Fz2XDRaVw5GhtjfknIe2IbTO LBVKoz4PcADaENvnTjrUR/XQBr0gTnwrlnor0WaGzuqMfQtjaSV1e4Qe591JmGbX5pVw 0j2ljnA4TFVAkJcz4nslyA1tTvjAjvW1jpD69OrhM/fUn769YMaMOGZG/8Of7oWL/F7z Ybgw== X-Gm-Message-State: AOAM533RKODU/K4G3AU5td0T5mFy6zeB7A3zCRN/ABMJESlB6MKYI0aj uaciZCwCD7ffGNcBf6L6Nt0Y6xnrJP7tYA== X-Google-Smtp-Source: ABdhPJz8pRPBwG8xRM1knu8gsqApuT1ZW9/ewO5C+peXCXPcSQb2bt5OVOvxr6bERYp7cFyv/I7JQg== X-Received: by 2002:a05:6830:1c61:: with SMTP id s1mr2941421otg.149.1599166885564; Thu, 03 Sep 2020 14:01:25 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id w13sm740900oiw.50.2020.09.03.14.01.24 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:25 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 76/77] hw/arm/sbsa-ref: fix typo breaking PCIe IRQs Date: Thu, 3 Sep 2020 15:59:34 -0500 Message-Id: <20200903205935.27832-77-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::344; envelope-from=flukshun@gmail.com; helo=mail-ot1-x344.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Graeme Gregory , Peter Maydell , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Graeme Gregory Fixing a typo in a previous patch that translated an "i" to a 1 and therefore breaking the allocation of PCIe interrupts. This was discovered when virtio-net-pci devices ceased to function correctly. Cc: qemu-stable@nongnu.org Fixes: 48ba18e6d3f3 ("hw/arm/sbsa-ref: Simplify by moving the gic in the machine state") Signed-off-by: Graeme Gregory Reviewed-by: Philippe Mathieu-Daudé Message-id: 20200821083853.356490-1-graeme@nuviainc.com Signed-off-by: Peter Maydell (cherry picked from commit 870f0051b4ada9a361f7454f833432ae8c06c095) Signed-off-by: Michael Roth --- hw/arm/sbsa-ref.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c index 8409ba853d..0b32084dc0 100644 --- a/hw/arm/sbsa-ref.c +++ b/hw/arm/sbsa-ref.c @@ -555,7 +555,7 @@ static void create_pcie(SBSAMachineState *sms) for (i = 0; i < GPEX_NUM_IRQS; i++) { sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, - qdev_get_gpio_in(sms->gic, irq + 1)); + qdev_get_gpio_in(sms->gic, irq + i)); gpex_set_irq_num(GPEX_HOST(dev), i, irq + i); } From patchwork Thu Sep 3 20:59:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Roth X-Patchwork-Id: 274584 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F141AC433E2 for ; Thu, 3 Sep 2020 21:50:05 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AEC6320639 for ; Thu, 3 Sep 2020 21:50:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k6xOby3t" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AEC6320639 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:44538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kDx7M-0005Yz-R3 for qemu-devel@archiver.kernel.org; Thu, 03 Sep 2020 17:50:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59804) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kDwMM-0005RQ-4e; Thu, 03 Sep 2020 17:01:30 -0400 Received: from mail-oi1-x244.google.com ([2607:f8b0:4864:20::244]:45218) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kDwMK-0007wA-D1; Thu, 03 Sep 2020 17:01:29 -0400 Received: by mail-oi1-x244.google.com with SMTP id d189so4481960oig.12; Thu, 03 Sep 2020 14:01: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=yJG4bmyAfe4onsh//+ldhVr9OuPhOmvC3Rda7LK2uCg=; b=k6xOby3thIRRJDddVQLvw+z8lV4QE2aD9x/EsyTbu+ghwGLGlJVyrhLxRrPiaNbKZ1 Dcso8v6iTgu2aFSxPr8nzYftgA0ZCbCF97uNLI3p29opJKHsH3X7fgtpdyc4Lx7ULNMv ruZ4ildZnd6XUZcoFQJUN7ZnSIClBaze5P3ncBdYMXqmefVLYvwwtL4mI9ziVFlNH3cu Vzl7GDbX4nTznbgXl7A5SJCFLOulHkM8/v2BPoSbS2LtxE8+fcuxXaescTYcjg4FjFM3 +ZHx/mJc052FVLg0KWkPmc44rZ4HxNxpXzKHeyHJO5NPEFbKkgUL4/3Mb/QQFCiXKt7n nXJw== 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=yJG4bmyAfe4onsh//+ldhVr9OuPhOmvC3Rda7LK2uCg=; b=F474/gaPJ3kSU9GI0GZQt5KZ9+wrqM9FJTotEq/+rYiDnMB1bKBQ1h6bUQ/b0ONffY 42KjkVxgPc3IiluOvxwYK6AHTRj8ZCYIeygTEt9MsvUJZjBxfK5l+yYqFkE2VO0xJO3X oqSGuKRTi2+mk53MbmiACuQ9x9aqt2ocjTY7sa0cv2J78ld/C2+4R1rcyaCHtK/qklw8 XfFpEj4sUSd6drDa3m1TvwUUeUsQOvPFt0oBzYK/92LKXqRUUwrdz+0zozl6S2inCKIH lMrnatOOkmsuiTx3n+dU+43VVWVLPctpBlZaU4AvcYu3s/4YDVpPg3Zdm5vj4+9rR2KD T2Lg== X-Gm-Message-State: AOAM53077Kpi5oA2lZIm/HJ8taO++5mllnbTPiivQkDxhU3K2EXmCOuo t9WQakRH8poF8dpZOOkr5gzW16KW6UMPKQ== X-Google-Smtp-Source: ABdhPJwI5FZOom6VdQLObxT/oi/6gDRd470470UysICywiKz7qDdueAXK9CfupJDhmn6+N4znDpRQA== X-Received: by 2002:aca:b705:: with SMTP id h5mr3203765oif.31.1599166886612; Thu, 03 Sep 2020 14:01:26 -0700 (PDT) Received: from localhost (76-251-165-188.lightspeed.austtx.sbcglobal.net. [76.251.165.188]) by smtp.gmail.com with ESMTPSA id d28sm121339ooa.7.2020.09.03.14.01.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 03 Sep 2020 14:01:26 -0700 (PDT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 77/77] usb: fix setup_len init (CVE-2020-14364) Date: Thu, 3 Sep 2020 15:59:35 -0500 Message-Id: <20200903205935.27832-78-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> References: <20200903205935.27832-1-mdroth@linux.vnet.ibm.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::244; envelope-from=flukshun@gmail.com; helo=mail-oi1-x244.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-stable@nongnu.org, Gerd Hoffmann Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Gerd Hoffmann Store calculated setup_len in a local variable, verify it, and only write it to the struct (USBDevice->setup_len) in case it passed the sanity checks. This prevents other code (do_token_{in,out} functions specifically) from working with invalid USBDevice->setup_len values and overrunning the USBDevice->setup_buf[] buffer. Fixes: CVE-2020-14364 Signed-off-by: Gerd Hoffmann Tested-by: Gonglei Reviewed-by: Li Qiang Message-id: 20200825053636.29648-1-kraxel@redhat.com (cherry picked from commit b946434f2659a182afc17e155be6791ebfb302eb) Signed-off-by: Michael Roth --- hw/usb/core.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/hw/usb/core.c b/hw/usb/core.c index 5abd128b6b..5234dcc73f 100644 --- a/hw/usb/core.c +++ b/hw/usb/core.c @@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream) static void do_token_setup(USBDevice *s, USBPacket *p) { int request, value, index; + unsigned int setup_len; if (p->iov.size != 8) { p->status = USB_RET_STALL; @@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p) usb_packet_copy(p, s->setup_buf, p->iov.size); s->setup_index = 0; p->actual_length = 0; - s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; - if (s->setup_len > sizeof(s->data_buf)) { + setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; + if (setup_len > sizeof(s->data_buf)) { fprintf(stderr, "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", - s->setup_len, sizeof(s->data_buf)); + setup_len, sizeof(s->data_buf)); p->status = USB_RET_STALL; return; } + s->setup_len = setup_len; request = (s->setup_buf[0] << 8) | s->setup_buf[1]; value = (s->setup_buf[3] << 8) | s->setup_buf[2]; @@ -259,26 +261,28 @@ static void do_token_out(USBDevice *s, USBPacket *p) static void do_parameter(USBDevice *s, USBPacket *p) { int i, request, value, index; + unsigned int setup_len; for (i = 0; i < 8; i++) { s->setup_buf[i] = p->parameter >> (i*8); } s->setup_state = SETUP_STATE_PARAM; - s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; s->setup_index = 0; request = (s->setup_buf[0] << 8) | s->setup_buf[1]; value = (s->setup_buf[3] << 8) | s->setup_buf[2]; index = (s->setup_buf[5] << 8) | s->setup_buf[4]; - if (s->setup_len > sizeof(s->data_buf)) { + setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; + if (setup_len > sizeof(s->data_buf)) { fprintf(stderr, "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", - s->setup_len, sizeof(s->data_buf)); + setup_len, sizeof(s->data_buf)); p->status = USB_RET_STALL; return; } + s->setup_len = setup_len; if (p->pid == USB_TOKEN_OUT) { usb_packet_copy(p, s->data_buf, s->setup_len);