From patchwork Wed Feb 8 21:12:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54620 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3692593wrn; Wed, 8 Feb 2023 13:18:47 -0800 (PST) X-Google-Smtp-Source: AK7set8gHyk5bQNgiPTC+ecuIvsWluo09b3qQdKyfB1CNYYfQyvfW6KKPmoVr0O9t56ThvTCI/Bv X-Received: by 2002:a17:906:51cd:b0:88d:a8e5:bfc3 with SMTP id v13-20020a17090651cd00b0088da8e5bfc3mr8540235ejk.5.1675891127150; Wed, 08 Feb 2023 13:18:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891127; cv=none; d=google.com; s=arc-20160816; b=SuzO6Q7Pv6QWYTEkwHcwIPJCQt7AEA7FzE124yJJWTdlE4wIe1qp39qBb/qZF4szQO 2w6EjV/+LL/koGSbaYUmkFXBt9hJpXYfXKEn3cu7CHEhyw3toyVi4k3Y+np3jCBwr4XU t8gWqKv7iNZ06DycIM3E6n3ciS/Iawj86tW820DkZXpdtPEmY6T+OqF3WUy23Ss6+l+B UyALB5SVjI7TP2q4hSckCGXMb5mKfhg1GWbiKD2A4Npx5NZhtxZJrti3ErIwKEbPFN8U NPz9OCdu/a0IpD4Dfz37z4fWvLWYnK4X7VcUmfuv//WPiw9rRHReX7lTifVWBGW03TXb YQ7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=KzSKUxDk47sMRBv2cjoG8jtVyH/AAlQtGJYA+OBG4Yw=; b=WIwbg5PQgpzzhCSsToQ6K1MZ899x7puRCZcU0DcR0Jo0m5xXjqZtzLgV3NNnw3J5Di RDQCOGMt+zFG2X4tuRJZBknI9sMdeGjRSSThlfcLZuWon0PwCSZJf6yNl0zNh3eUT50m FAsYxFXG1eeoH/bZa4+TPofamXja/dEJs+3azqOKSSHDbCJ/J2XnVHmjA1ZBDcI4QvmL dnwjQBW7o1Oa06165SRgC3eaET73XeooddiJpJRxHQ2jzxkIpLIeMfabb07Wo0BIOvh/ fdc4MaOKtYC7XiDYsE7RkIXHSkS1PZC/c3PmQZFOIKWXfW3b+U2z726Vyi/78Hw+Dfy0 E89Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GAVnKHZa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ge13-20020a170907908d00b008aabf4cebc6si6601370ejb.466.2023.02.08.13.18.17; Wed, 08 Feb 2023 13:18:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GAVnKHZa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231828AbjBHVN1 (ORCPT + 99 others); Wed, 8 Feb 2023 16:13:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230171AbjBHVNY (ORCPT ); Wed, 8 Feb 2023 16:13:24 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 963562DE79 for ; Wed, 8 Feb 2023 13:12:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890756; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KzSKUxDk47sMRBv2cjoG8jtVyH/AAlQtGJYA+OBG4Yw=; b=GAVnKHZa666QmvmnydYJqliQ4SIUtz2XuoDJedJEoHoZv/XBJ6ndk4yEcfSdIcc3Z0L1JB 94CIBJ9AOHLy8k3FioSIkIsY818oPs1FA1HWN43kGU/fQSylnJcMt9PzPOTLNq6fYyrP6w jkzGnAI2uTXwp4rVZi0o8GIFgYLGZpY= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-552-f3KspE66NG2cu5Dy_GML1A-1; Wed, 08 Feb 2023 16:12:35 -0500 X-MC-Unique: f3KspE66NG2cu5Dy_GML1A-1 Received: by mail-wm1-f70.google.com with SMTP id bi10-20020a05600c3d8a00b003dd1b5d2a36so1237273wmb.1 for ; Wed, 08 Feb 2023 13:12:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KzSKUxDk47sMRBv2cjoG8jtVyH/AAlQtGJYA+OBG4Yw=; b=IDEUL5QLmeIQul84Dm0HbpvQc9mqryaikqJ1bm6ZWa8ihm4EIktlDibctwmNGscrfw k0fpPg4yV8z9280QhvMMCuq7ZHx40NVDDazC535s7L541lqtFmqHPX1Tyqz0yrV75YRc 2nW6MHor6YB+Xsw7vk+Ni8IRn4de1BR/NI2czmQa/kmu1toLct/RqiTIMsXagBBbdqyc eNn9GotHzPgGeWSQCiFAbugt8ZA+W2nl6SARawWQt2qBRcKgjUMuEKwkJZwIzwXbwb8c Jx1StTekd2NAfexxx2EFXDzL1PFG+WIpKYsCkqlUdANyVjdkWjuCbUTbg73tXjMUTNg6 LWdw== X-Gm-Message-State: AO0yUKXewfThjnxerU9CWzsS4Uj5D3SLgND3HFiRN+wTZ2HsvtLFfe+9 HI6F6QB2CjEq0pFb9iVKin08My/pK1PJGIMB70FdPg9YjpDD28cdU698VgjpA5zqS/Q480TKsNP nQBdnElURdhvk1q9Lr6GdxGmT X-Received: by 2002:a05:600c:44c9:b0:3df:f9e9:7600 with SMTP id f9-20020a05600c44c900b003dff9e97600mr7887365wmo.25.1675890751710; Wed, 08 Feb 2023 13:12:31 -0800 (PST) X-Received: by 2002:a05:600c:44c9:b0:3df:f9e9:7600 with SMTP id f9-20020a05600c44c900b003dff9e97600mr7887353wmo.25.1675890751469; Wed, 08 Feb 2023 13:12:31 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id w13-20020a05600c474d00b003e001afa274sm3292429wmo.2.2023.02.08.13.12.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:30 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:27 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Sergio Lopez , Marcel Apfelbaum , Eduardo Habkost Subject: [PATCH RFC 1/7] Revert "x86: don't let decompressed kernel image clobber setup_data" Message-ID: <20230208211212.41951-2-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299214676617395?= X-GMAIL-MSGID: =?utf-8?q?1757299214676617395?= This reverts commit eac7a7791bb6d719233deed750034042318ffd56. Fixes: eac7a7791b ("x86: don't let decompressed kernel image clobber setup_data") Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrangé --- include/hw/i386/microvm.h | 5 ++-- include/hw/nvram/fw_cfg.h | 9 ------- hw/i386/microvm.c | 15 ++++------- hw/i386/x86.c | 52 ++++++++++++++++++--------------------- hw/nvram/fw_cfg.c | 9 ------- 5 files changed, 31 insertions(+), 59 deletions(-) diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h index e8af61f194..fad97a891d 100644 --- a/include/hw/i386/microvm.h +++ b/include/hw/i386/microvm.h @@ -50,9 +50,8 @@ */ /* Platform virtio definitions */ -#define VIRTIO_MMIO_BASE 0xfeb00000 -#define VIRTIO_CMDLINE_MAXLEN 64 -#define VIRTIO_CMDLINE_TOTAL_MAX_LEN ((VIRTIO_CMDLINE_MAXLEN + 1) * 16) +#define VIRTIO_MMIO_BASE 0xfeb00000 +#define VIRTIO_CMDLINE_MAXLEN 64 #define GED_MMIO_BASE 0xfea00000 #define GED_MMIO_BASE_MEMHP (GED_MMIO_BASE + 0x100) diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h index 990dcdbb2e..2e503904dc 100644 --- a/include/hw/nvram/fw_cfg.h +++ b/include/hw/nvram/fw_cfg.h @@ -139,15 +139,6 @@ void fw_cfg_add_bytes_callback(FWCfgState *s, uint16_t key, void *data, size_t len, bool read_only); -/** - * fw_cfg_read_bytes_ptr: - * @s: fw_cfg device being modified - * @key: selector key value for new fw_cfg item - * - * Reads an existing fw_cfg data pointer. - */ -void *fw_cfg_read_bytes_ptr(FWCfgState *s, uint16_t key); - /** * fw_cfg_add_string: * @s: fw_cfg device being modified diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 29f30dd6d3..170a331e3f 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -378,8 +378,7 @@ static void microvm_fix_kernel_cmdline(MachineState *machine) MicrovmMachineState *mms = MICROVM_MACHINE(machine); BusState *bus; BusChild *kid; - char *cmdline, *existing_cmdline; - size_t len; + char *cmdline; /* * Find MMIO transports with attached devices, and add them to the kernel @@ -388,8 +387,7 @@ static void microvm_fix_kernel_cmdline(MachineState *machine) * Yes, this is a hack, but one that heavily improves the UX without * introducing any significant issues. */ - existing_cmdline = fw_cfg_read_bytes_ptr(x86ms->fw_cfg, FW_CFG_CMDLINE_DATA); - cmdline = g_strdup(existing_cmdline); + cmdline = g_strdup(machine->kernel_cmdline); bus = sysbus_get_default(); QTAILQ_FOREACH(kid, &bus->children, sibling) { DeviceState *dev = kid->child; @@ -413,12 +411,9 @@ static void microvm_fix_kernel_cmdline(MachineState *machine) } } - len = strlen(cmdline); - if (len > VIRTIO_CMDLINE_TOTAL_MAX_LEN + strlen(existing_cmdline)) { - fprintf(stderr, "qemu: virtio mmio cmdline too large, skipping\n"); - } else { - memcpy(existing_cmdline, cmdline, len + 1); - } + fw_cfg_modify_i32(x86ms->fw_cfg, FW_CFG_CMDLINE_SIZE, strlen(cmdline) + 1); + fw_cfg_modify_string(x86ms->fw_cfg, FW_CFG_CMDLINE_DATA, cmdline); + g_free(cmdline); } diff --git a/hw/i386/x86.c b/hw/i386/x86.c index eaff4227bd..78cc131926 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -50,7 +50,6 @@ #include "hw/intc/i8259.h" #include "hw/rtc/mc146818rtc.h" #include "target/i386/sev.h" -#include "hw/i386/microvm.h" #include "hw/acpi/cpu_hotplug.h" #include "hw/irq.h" @@ -814,18 +813,12 @@ void x86_load_linux(X86MachineState *x86ms, const char *kernel_filename = machine->kernel_filename; const char *initrd_filename = machine->initrd_filename; const char *dtb_filename = machine->dtb; - char *kernel_cmdline; + const char *kernel_cmdline = machine->kernel_cmdline; SevKernelLoaderContext sev_load_ctx = {}; enum { RNG_SEED_LENGTH = 32 }; - /* - * Add the NUL terminator, some padding for the microvm cmdline fiddling - * hack, and then align to 16 bytes as a paranoia measure - */ - cmdline_size = (strlen(machine->kernel_cmdline) + 1 + - VIRTIO_CMDLINE_TOTAL_MAX_LEN + 16) & ~15; - /* Make a copy, since we might append arbitrary bytes to it later. */ - kernel_cmdline = g_strndup(machine->kernel_cmdline, cmdline_size); + /* Align to 16 bytes as a paranoia measure */ + cmdline_size = (strlen(kernel_cmdline) + 16) & ~15; /* load the kernel header */ f = fopen(kernel_filename, "rb"); @@ -966,6 +959,12 @@ void x86_load_linux(X86MachineState *x86ms, initrd_max = x86ms->below_4g_mem_size - acpi_data_size - 1; } + fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_ADDR, cmdline_addr); + fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, strlen(kernel_cmdline) + 1); + fw_cfg_add_string(fw_cfg, FW_CFG_CMDLINE_DATA, kernel_cmdline); + sev_load_ctx.cmdline_data = (char *)kernel_cmdline; + sev_load_ctx.cmdline_size = strlen(kernel_cmdline) + 1; + if (protocol >= 0x202) { stl_p(header + 0x228, cmdline_addr); } else { @@ -1092,24 +1091,27 @@ void x86_load_linux(X86MachineState *x86ms, exit(1); } - setup_data_offset = cmdline_size; - cmdline_size += sizeof(SetupData) + dtb_size; - kernel_cmdline = g_realloc(kernel_cmdline, cmdline_size); - setup_data = (void *)kernel_cmdline + setup_data_offset; + setup_data_offset = QEMU_ALIGN_UP(kernel_size, 16); + kernel_size = setup_data_offset + sizeof(SetupData) + dtb_size; + kernel = g_realloc(kernel, kernel_size); + + + setup_data = (SetupData *)(kernel + setup_data_offset); setup_data->next = cpu_to_le64(first_setup_data); - first_setup_data = cmdline_addr + setup_data_offset; + first_setup_data = prot_addr + setup_data_offset; setup_data->type = cpu_to_le32(SETUP_DTB); setup_data->len = cpu_to_le32(dtb_size); + load_image_size(dtb_filename, setup_data->data, dtb_size); } - if (!legacy_no_rng_seed && protocol >= 0x209) { - setup_data_offset = cmdline_size; - cmdline_size += sizeof(SetupData) + RNG_SEED_LENGTH; - kernel_cmdline = g_realloc(kernel_cmdline, cmdline_size); - setup_data = (void *)kernel_cmdline + setup_data_offset; + if (!legacy_no_rng_seed) { + setup_data_offset = QEMU_ALIGN_UP(kernel_size, 16); + kernel_size = setup_data_offset + sizeof(SetupData) + RNG_SEED_LENGTH; + kernel = g_realloc(kernel, kernel_size); + setup_data = (SetupData *)(kernel + setup_data_offset); setup_data->next = cpu_to_le64(first_setup_data); - first_setup_data = cmdline_addr + setup_data_offset; + first_setup_data = prot_addr + setup_data_offset; setup_data->type = cpu_to_le32(SETUP_RNG_SEED); setup_data->len = cpu_to_le32(RNG_SEED_LENGTH); qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); @@ -1120,12 +1122,6 @@ void x86_load_linux(X86MachineState *x86ms, fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, kernel, kernel_size); } - fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_ADDR, cmdline_addr); - fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_SIZE, cmdline_size); - fw_cfg_add_bytes(fw_cfg, FW_CFG_CMDLINE_DATA, kernel_cmdline, cmdline_size); - sev_load_ctx.cmdline_data = (char *)kernel_cmdline; - sev_load_ctx.cmdline_size = cmdline_size; - fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); sev_load_ctx.kernel_data = (char *)kernel; @@ -1138,7 +1134,7 @@ void x86_load_linux(X86MachineState *x86ms, * kernel on the other side of the fw_cfg interface matches the hash of the * file the user passed in. */ - if (!sev_enabled() && first_setup_data) { + if (!sev_enabled()) { SetupDataFixup *fixup = g_malloc(sizeof(*fixup)); memcpy(setup, header, MIN(sizeof(header), setup_size)); diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 432754eda4..a00881bc64 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -741,15 +741,6 @@ void fw_cfg_add_bytes(FWCfgState *s, uint16_t key, void *data, size_t len) fw_cfg_add_bytes_callback(s, key, NULL, NULL, NULL, data, len, true); } -void *fw_cfg_read_bytes_ptr(FWCfgState *s, uint16_t key) -{ - int arch = !!(key & FW_CFG_ARCH_LOCAL); - - key &= FW_CFG_ENTRY_MASK; - assert(key < fw_cfg_max_entry(s)); - return s->entries[arch][key].data; -} - void fw_cfg_add_string(FWCfgState *s, uint16_t key, const char *value) { size_t sz = strlen(value) + 1; From patchwork Wed Feb 8 21:12:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54621 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3692857wrn; Wed, 8 Feb 2023 13:19:25 -0800 (PST) X-Google-Smtp-Source: AK7set+fj+w2buIFAoWT/au5tk1aMcIIcPIgLfSz3q8/RYvqd5SRpxnBm3fRsyz2jMaHPQVxHCD3 X-Received: by 2002:a17:906:19b:b0:8ae:a4db:ba6e with SMTP id 27-20020a170906019b00b008aea4dbba6emr3116660ejb.2.1675891164890; Wed, 08 Feb 2023 13:19:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891164; cv=none; d=google.com; s=arc-20160816; b=xyufXNJyngGpAfWM3+JjXLCHuAN3Joe41jttj+vcg1wj+XjkFjLUQ1U+uKGupN11QL G6TE3pRWcQm1VdGURQNWXbjO6amY+OIvXOonzBue6U0meFHPBAWbCAKAKg7/ffisiCh5 jIkW27mocO8c76Psu6BpYQTPtIBGfAFS0uQdoz028XbfmlcHBR0q+l/gQQQ/rIiVsa1B mE9dqwMj+fLlwfo7M8ebEvs9vagtnXnX2nXVeUWpaJMxsiAjVC/5eIHbCVu/7gG8b6ZT ZrQ53GIZKhLKMa2GaDeWBj3HZE90yJYZcb1lgAfnHn1HbF6EmOJ+mffc3IjeLXKykS0J ejFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=pyB2eX4BrxplsV/cU4fgKDTd3hh497IDhiUSXuPJBb8=; b=ZKcmaDATHLRIwyp4hUkdyCHrhTlzVogHJxiexsHIZyY98A6D9FZbyF4Tdpro6WCiMh ntvRdmgPVq+aMm6zxe0yJzKy4EHBqEZCuVbWxL4VFzq2MtsZJd8uktCMPtb14/rCZmKR phU+gUvpAL9gF+gvPrg8vYrZSHtmk1N4aTBf05McWXNqmSDRJfAj33VuaZGJyfIuNvF+ I31wVpAMIxHIHkHRPb6HAsn+uWxoBF5fk1LARGIfikplf406LHX9l4PcbgCiFxKoUWrO oCWpH/s8whkuefnrxOEVwkvYvDvpqU1fs/2vq5uK2lm9DqbFAeTp1+qrmrexN2FvP8v9 76eQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Ugj6qnVL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bp14-20020a170907918e00b0089657789a83si15267407ejb.132.2023.02.08.13.18.32; Wed, 08 Feb 2023 13:19:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Ugj6qnVL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231629AbjBHVNa (ORCPT + 99 others); Wed, 8 Feb 2023 16:13:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230450AbjBHVNY (ORCPT ); Wed, 8 Feb 2023 16:13:24 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9315630B04 for ; Wed, 8 Feb 2023 13:12:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pyB2eX4BrxplsV/cU4fgKDTd3hh497IDhiUSXuPJBb8=; b=Ugj6qnVLa+IipSd36ANBCW2XgNIORtB+n+0VfHI4197zdlI1Rg9rXgwssrfDjqPTT/YHvQ vMpWnFeNnL0rKvfYBU35TVADVopwiEJ0MsWcQO3W7HvTwAZXyCCkbUOvbF7mmNVkBKmyrQ oEdGKtdRUZHtAvXTf4TPruBLW3NG2CE= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-460-UuMKYDssMVGdqKWtgVT25g-1; Wed, 08 Feb 2023 16:12:39 -0500 X-MC-Unique: UuMKYDssMVGdqKWtgVT25g-1 Received: by mail-wm1-f71.google.com with SMTP id n4-20020a05600c3b8400b003dfe223de49so1743231wms.5 for ; Wed, 08 Feb 2023 13:12:39 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=pyB2eX4BrxplsV/cU4fgKDTd3hh497IDhiUSXuPJBb8=; b=FDY1sz/WRDvGck50seO46AsRqY7OBgxN2dEbNCFk+NTcQ84ppAPeSVyP5Pvg3g/R3u UQ51YjTBwf48T2K42EGb2YlsmvrEHBcp9GdmyLWgV0efPiRyhTNmrwpFCh1IQJVbVfyy z1oQZtPTAFFkzhgFdgIKxcwOVWQYkTPM7h/uSBR2Q1vMT+ozlGpNLRI5+WNyrAxS0KVg yxpYMV5RCNP0FEh6SnSkr5pu2j/ecZ2NVG8WHDkXN+HuVXbUEWvB63PBs03WDB2noLYC xnNpHZtHF0VbE2YNTnD6uA2KEH7LOtQmasKpKEODA3s8dG8rSvBSoPtP5w7mrX0dIaMG T4Yg== X-Gm-Message-State: AO0yUKU3R8DPYA9hhp3z0u2hxgkABk4fE7ESTPKQe56A7hpUvdP0wBou RxDYxVz4J1fQ+kQzrW27YhEOuYKlbxUdMkCyxV8v+0qgRrPe+ra78MZT625o7bXqDmNthLbo/rO uU7PZhG8iR9RdHKJb9FovLot6 X-Received: by 2002:adf:e607:0:b0:2c4:5de:2d3e with SMTP id p7-20020adfe607000000b002c405de2d3emr1747033wrm.41.1675890757388; Wed, 08 Feb 2023 13:12:37 -0800 (PST) X-Received: by 2002:adf:e607:0:b0:2c4:5de:2d3e with SMTP id p7-20020adfe607000000b002c405de2d3emr1747022wrm.41.1675890757189; Wed, 08 Feb 2023 13:12:37 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id y5-20020adfee05000000b002c3f6d7d5fesm4398119wrn.44.2023.02.08.13.12.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:36 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:31 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Eduardo Habkost , Marcel Apfelbaum Subject: [PATCH RFC 2/7] Revert "x86: do not re-randomize RNG seed on snapshot load" Message-ID: <20230208211212.41951-3-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299254284063132?= X-GMAIL-MSGID: =?utf-8?q?1757299254284063132?= This reverts commit 14b29fea742034186403914b4d013d0e83f19e78. Signed-off-by: Michael S. Tsirkin Fixes: 14b29fea74 ("x86: do not re-randomize RNG seed on snapshot load") Reviewed-by: Daniel P. Berrangé --- hw/i386/x86.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 78cc131926..7984f65352 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1115,7 +1115,7 @@ void x86_load_linux(X86MachineState *x86ms, setup_data->type = cpu_to_le32(SETUP_RNG_SEED); setup_data->len = cpu_to_le32(RNG_SEED_LENGTH); qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); - qemu_register_reset_nosnapshotload(reset_rng_seed, setup_data); + qemu_register_reset(reset_rng_seed, setup_data); fw_cfg_add_bytes_callback(fw_cfg, FW_CFG_KERNEL_DATA, reset_rng_seed, NULL, setup_data, kernel, kernel_size, true); } else { From patchwork Wed Feb 8 21:12:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54625 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3693750wrn; Wed, 8 Feb 2023 13:21:35 -0800 (PST) X-Google-Smtp-Source: AK7set9zBPFsIb/OHHa3D7lcgxur+7qokooT13uEZOXe6E/YygkAVUDqbwiMqUI1EblawiP0DHup X-Received: by 2002:a17:906:d0:b0:878:5fa4:7443 with SMTP id 16-20020a17090600d000b008785fa47443mr8652514eji.3.1675891295649; Wed, 08 Feb 2023 13:21:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891295; cv=none; d=google.com; s=arc-20160816; b=GiFQA1c9rcV6CZl0fV/e4gb/yz5a5F/Vi2Eow95wr3/ZqQ87+8lEyuqYC+Xk1W30zT lMBbUCY3io1yVo7EWt7e+DhiLTKJup+vJR8eKglVu55FKgp8yiScN9jUjRtKaIq7yDUP EOIdUV70fv/vha4uiW4WjbWAhZc5JihXr+xtx1SdxljIjKgBZM2+djLrx1UdG2dGwbrg HGDVbnWGBPEgY6JfIapJvh9asG6PienyC1ioQ24YgbrYQKTagxMVwp+bRfewIyNLAi9T E3ccYx/8lxT5TVMnh90zM+p/PVKkXk+NWAa3waj7peG0OfMyGu80PYv3KArh+nPesYfD iS3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=NERecKdHLUqwMZWLwJADWmbTJLbslnFnPSfMbqlvP3U=; b=UGEKc5Ao+Ez11orApxmeyDqkKEOD7SE+i7DLNmm+7UUC6Nt25UEgl7gERVm74TxcfW uLRprL5ZFKR0OvYquxABrYqX8lIodjsRh60SSUYHb5QXElSC1bg7GSvpbux2ZMDuI4b3 P+lbRDLM2085nmAjESMEPtbnABNMwGrnl2BTDARHyTv17pmu1RbSNWE1oNlGvN6LiiPm daRCvTkCaT4i4wJbbTBKouvgAimb9qJi4ZQsw7PBVxFORJ8kerWEt8fRI76ao6L8wYBV SE0eP9SlR1ie8hckabubVsAvdOzr8zmfk5x1gNjfb6FdWlOQCh6vxFcYcZmfGesUxKV4 lGeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=UePe9jeu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id aa21-20020a170907355500b0088baf3b2a19si2932943ejc.495.2023.02.08.13.20.54; Wed, 08 Feb 2023 13:21:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=UePe9jeu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231402AbjBHVNk (ORCPT + 99 others); Wed, 8 Feb 2023 16:13:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231158AbjBHVNa (ORCPT ); Wed, 8 Feb 2023 16:13:30 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7DC630E9C for ; Wed, 8 Feb 2023 13:12:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890765; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NERecKdHLUqwMZWLwJADWmbTJLbslnFnPSfMbqlvP3U=; b=UePe9jeuleEU13xO8pLyOB0TvKEjaZXL5FcaG2tL0PFzS6rDSowyuwcxnfTa0grFF2XX5A PeckehzsxVQu9DHi3IUdvInkkLC4OJxhrADselCuXc6Ke4YN9OhjCUS7TcdTjaqmalwQcg 3sMPR9LJJfUUpH0XimlQhD/P7IJzt1A= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-201-8F-1UlcFMu6oaa2V0_A1LQ-1; Wed, 08 Feb 2023 16:12:43 -0500 X-MC-Unique: 8F-1UlcFMu6oaa2V0_A1LQ-1 Received: by mail-wr1-f70.google.com with SMTP id e9-20020a5d6d09000000b002c172f173a9so3268984wrq.17 for ; Wed, 08 Feb 2023 13:12:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NERecKdHLUqwMZWLwJADWmbTJLbslnFnPSfMbqlvP3U=; b=x5+s/XiAImCOLkxReoumqV5hbMatTNz9KsmBzWfwMfsqNBVee+8SSgCpu9Pyzins7P D09VWndXYDpsNxCJ/LxmZFpo8tPmymD8HjsD0uH83+DnAGoNRikSNVXvohoCY6WJ+Pev D7v1kb5329vF6WClSfHaA4la3kl1S1ffJj8WY/IzdSBlLXjm92qZZVuSs9+tVn178bcB zkqknH0r0vXpMN18GfT+CNMto8QOpxBbh/DsIERrUMZJi5GNmg8tkZBLi/L/NHzHsLbf LU3FQmXj4bVfy0f9nQCjzcxgLJYrhZlUwdtto3Ar8uiF1CoScuKe3gRHSo5MI6c2DzKm JsbQ== X-Gm-Message-State: AO0yUKXxK5deWuo1wi2zdKXFcSnGo21yw01XYv6m2UVSyZv/fRWprxLL 09LW4ZduCFuDmsGvsp9w5a+O1cRfFJd97Rp5X+eEwvYT1zyvbYbZ/PJe5JbCpmagwuGJZoU4XbV Qx0mAtEGDnpPUc00xe4oaT6ru X-Received: by 2002:a05:6000:1d1:b0:2c3:ba99:44bc with SMTP id t17-20020a05600001d100b002c3ba9944bcmr8345841wrx.68.1675890762534; Wed, 08 Feb 2023 13:12:42 -0800 (PST) X-Received: by 2002:a05:6000:1d1:b0:2c3:ba99:44bc with SMTP id t17-20020a05600001d100b002c3ba9944bcmr8345830wrx.68.1675890762340; Wed, 08 Feb 2023 13:12:42 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id c12-20020a5d4ccc000000b002bddac15b3dsm14220412wrt.33.2023.02.08.13.12.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:41 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:37 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Marcel Apfelbaum , Eduardo Habkost Subject: [PATCH RFC 3/7] Revert "x86: re-initialize RNG seed when selecting kernel" Message-ID: <20230208211212.41951-4-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299390840778868?= X-GMAIL-MSGID: =?utf-8?q?1757299390840778868?= This reverts commit cc63374a5a7c240b7d3be734ef589dabbefc7527. Fixes: cc63374a5a ("x86: re-initialize RNG seed when selecting kernel") Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrangé --- hw/i386/x86.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 7984f65352..e1a5f244a9 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1116,14 +1116,11 @@ void x86_load_linux(X86MachineState *x86ms, setup_data->len = cpu_to_le32(RNG_SEED_LENGTH); qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); qemu_register_reset(reset_rng_seed, setup_data); - fw_cfg_add_bytes_callback(fw_cfg, FW_CFG_KERNEL_DATA, reset_rng_seed, NULL, - setup_data, kernel, kernel_size, true); - } else { - fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, kernel, kernel_size); } fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); + fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, kernel, kernel_size); sev_load_ctx.kernel_data = (char *)kernel; sev_load_ctx.kernel_size = kernel_size; From patchwork Wed Feb 8 21:12:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54622 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3692955wrn; Wed, 8 Feb 2023 13:19:37 -0800 (PST) X-Google-Smtp-Source: AK7set9+0qMBkQ2qx3bwMBzzzha7zF3fHU72mIgQldEIsiR/VFyXqYRWNjjt50dGHc45it5f9lb+ X-Received: by 2002:a17:906:d0:b0:882:bffc:f2d2 with SMTP id 16-20020a17090600d000b00882bffcf2d2mr8372111eji.2.1675891177667; Wed, 08 Feb 2023 13:19:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891177; cv=none; d=google.com; s=arc-20160816; b=jntTCeL/lF6rcFBcTr/5ApmB0BK+3cnNq+TmzyLqaedETrlVFeVWKBw+9SCKi0Q9Dk j0YFUvfoz1SrruGmG59dzDo76aIH+0yhZgiGEWXrhLUTFgQnyyd/3nwsGibGRjxOeKne GE9JOHJKy6LHcRKtga/GenLwrLFi8z1BrmZRz6GnswtY9FXwRUsfu/SA8hue0iGq00P1 Uczvr9eafq5oBdGx1baqJOred2z4OcPiYEuHlOJpyiqwz2q0Tv86mUIbkL3EDjSPUMNx B6m/ckakV3VL+HjCo9jS8pXY/QWfwakfR2grTnfs+GDHB+8QIbKH3JhDMJwsJfxqzjgk Y3Vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=tkQ9oa8tr+jHC1q9KvAdYJxLnDHRifzn1f10j1QSqk4=; b=ulAeqZHdXUnyoO3H5gEL2KqHKqDqzpYeDCdevXrx18QqPVc8uEygk6jteylrhCZ9hO EPdCVD+opV4RGwfRvv23rIJM1l3Q8gzxHlC4b3I1XH65apu5qHffxN81IV1PhctfqBlH 65xj7yy1AoaOozn+OxeDNlOquTeybEh+6PtKbzUwJFTmucJhY5S4z46nMu3UgDcoEL7A x26IEJmZzFtPU+ISlgwT1PdQKSW0DTdlkrNghj3KD1f/lidxq5WPI/pvvG23IJO/WXxr PIvi0ePKsCqS0L8krBHv8MgMSHyMCYNln3gAsKR/I714tdGQlg9mOadnFa/PJJdMBCCk DKiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Bug832Dr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 19-20020a170906011300b0088458045d9fsi3785566eje.673.2023.02.08.13.19.05; Wed, 08 Feb 2023 13:19:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Bug832Dr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232202AbjBHVNr (ORCPT + 99 others); Wed, 8 Feb 2023 16:13:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231688AbjBHVNi (ORCPT ); Wed, 8 Feb 2023 16:13:38 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAB902DE50 for ; Wed, 8 Feb 2023 13:12:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=tkQ9oa8tr+jHC1q9KvAdYJxLnDHRifzn1f10j1QSqk4=; b=Bug832DrRjZTvP1h7B2hT8f+Lf6NN9OUB+kY9VFeGiDxDwLLPRl4AEt7UOXFObJl76fhL+ Y3km8kjKFbqLFrrQvDIZynN6b6S9H2hN3WKZA5ZlvNsYfA/lzsHfd+bDKOiAikuqJU0F8y k25UEHqVFAry/UHpxG3IeuBnnyj+yhA= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-664-Kt2HPE9iOiCDF5rdjAp8Cg-1; Wed, 08 Feb 2023 16:12:48 -0500 X-MC-Unique: Kt2HPE9iOiCDF5rdjAp8Cg-1 Received: by mail-wr1-f71.google.com with SMTP id b9-20020adfc749000000b002c3dede475cso2355654wrh.6 for ; Wed, 08 Feb 2023 13:12:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tkQ9oa8tr+jHC1q9KvAdYJxLnDHRifzn1f10j1QSqk4=; b=5TEN3/EI5t2kDIhDqsf+1QGIKeJJ/NBLi/bCrVZq2Z6S5Hk5a1dRlPV4R6uMfdMSRo h5WdZZfD4eAqy5MPZe5uhF6H3gihGLFNqQFN/Ag3Q2eEo+53Rf+zGp2HCQFZRukyo1hD IstQWRLdW91QLs7O/TtUyUtXC1aZZwJ2s7CKdiHdv3A2zl1fQ/QlZok0Ji0dXGtoielv EI4Xromhlj2YXE3n6N8/PJ9JIb/4kKVRnvS0v46GrJhgYMI4eNT5gVB7MdWxIZlmLgJV ommXuMwXYRWBbtRYHRkCEuz9QIeFDZtaGJ3K/UOfxASTwuBj++5FyIzSuVfwhJK+Cvv/ z/Yw== X-Gm-Message-State: AO0yUKVFNAghTpTbg1bOoBsHzVwa0poaXlgABimhH8dLRtSZAT4Qgy+L Nn3GaT8x1oR8PxT6/ndbUh8Nfw8TJ5CREee+hQAmq6Ue77RInlpnfLUgRZE5RCcFWpH7c4NI7Ci W3PuFPPZHHlaDMuiny7fH3iAWG/PfX4MG X-Received: by 2002:a05:600c:3596:b0:3df:d431:cf64 with SMTP id p22-20020a05600c359600b003dfd431cf64mr7731433wmq.39.1675890766782; Wed, 08 Feb 2023 13:12:46 -0800 (PST) X-Received: by 2002:a05:600c:3596:b0:3df:d431:cf64 with SMTP id p22-20020a05600c359600b003dfd431cf64mr7731407wmq.39.1675890766594; Wed, 08 Feb 2023 13:12:46 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id p24-20020a05600c1d9800b003dd1bd0b915sm2916208wms.22.2023.02.08.13.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:46 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:42 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Eduardo Habkost , Marcel Apfelbaum Subject: [PATCH RFC 4/7] Revert "x86: reinitialize RNG seed on system reboot" Message-ID: <20230208211212.41951-5-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299267328191985?= X-GMAIL-MSGID: =?utf-8?q?1757299267328191985?= This reverts commit 763a2828bf313ed55878b09759dc435355035f2e. Fixes: 763a2828bf ("x86: reinitialize RNG seed on system reboot") Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrangé --- hw/i386/x86.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index e1a5f244a9..32f37ab7c2 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -787,12 +787,6 @@ static void reset_setup_data(void *opaque) stq_p(fixup->pos, fixup->orig_val); } -static void reset_rng_seed(void *opaque) -{ - SetupData *setup_data = opaque; - qemu_guest_getrandom_nofail(setup_data->data, le32_to_cpu(setup_data->len)); -} - void x86_load_linux(X86MachineState *x86ms, FWCfgState *fw_cfg, int acpi_data_size, @@ -1115,7 +1109,6 @@ void x86_load_linux(X86MachineState *x86ms, setup_data->type = cpu_to_le32(SETUP_RNG_SEED); setup_data->len = cpu_to_le32(RNG_SEED_LENGTH); qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); - qemu_register_reset(reset_rng_seed, setup_data); } fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); From patchwork Wed Feb 8 21:12:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54624 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3693134wrn; Wed, 8 Feb 2023 13:20:05 -0800 (PST) X-Google-Smtp-Source: AK7set/8yLJwp2O6lcrzN2QiOs5a1rgqC9SkTi1mrJUivFVAhqbNOgXuxuUHGmDU/AQ7g+aVn+ax X-Received: by 2002:a17:906:283:b0:878:4bda:2011 with SMTP id 3-20020a170906028300b008784bda2011mr8145852ejf.4.1675891204990; Wed, 08 Feb 2023 13:20:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891204; cv=none; d=google.com; s=arc-20160816; b=Oo6wwKZAU6VMi/Zk3HfhZhlTCxunDyL73hs9PeV4Y5AZCd3B3iCkSDVhQ0SWHy86QZ 17zZ+gQ8IHtreuI7fQfrxuC52fyv/neKeLihKexexFX1eU8o+/1mlM8GXD5E4e8eMJ55 zaXg/NycgF1fMYa2Kjah2JtseoC/DC1C6dHWh5OYCk0hCxbUqKmoDFe8W+x5IDeeFtuE UAR4em+f2kXv0R7n8F/17uMu8HY8ls1mMPpSkBlWgwC0feRcZuxhbYOfeMzgxbK4jMwL gRD8VJ+wxJ2c2WaxCn9cGGmbPGXmdjwCP/6ccgVBbEPN1xKjsYgMJycnAwCtb/wz2I6F VuYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=tS9+7/8O/6fAFa8QO010Xn8p8THh7DB9ISxGEslYQs4=; b=Uc5phPcjj5JzyYaFCgtpQSpuTarh3F+S4R7Glgkc40MoedQxxaIlEKERa6gYzU00GC ENiKFd9SNhNaVwoI9cqFGg9O2vaUofHE4HjwAYCDLrA++v6oQPzGEG5SD8li1D1Y2nx0 0EmbWpxluYwJO2qJSxfEk8+HV8PLOrQRvG+ydnYAL+/KWIMkue6pAC+aX9qsV+qFzc3C UIoPOs8E7yDg3Vay4BBDmrw3SPujCfKWveGPQQwV/vX6fPEhX/uuCczzeAgleamPw1Vx q1tE1PookEOJfyzfJCAPrfemB9rvb0BTUba4xaKi4NeiZF2XeJlAV4ZSs80jcyGp+4Fm YPxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=T2bEJyuv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ft29-20020a170907801d00b00871a4e8d7bfsi1841568ejc.230.2023.02.08.13.19.40; Wed, 08 Feb 2023 13:20:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=T2bEJyuv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231549AbjBHVOF (ORCPT + 99 others); Wed, 8 Feb 2023 16:14:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230259AbjBHVNt (ORCPT ); Wed, 8 Feb 2023 16:13:49 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D9A1C2D159 for ; Wed, 8 Feb 2023 13:13:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=tS9+7/8O/6fAFa8QO010Xn8p8THh7DB9ISxGEslYQs4=; b=T2bEJyuvcDla8+rK6h4vuekQ7ep62zSEnsJfPslF+MOn/koF0C4uq9hlZmPFgeltYMPGLS Q6Ft12z0BK6TAP1Q+pbStxC5f4LvhtUDRKlvUF5ZZUtbw1WbWiQntpO2dNgv/l5TWQDRFF r3cp0Zs+51VoO85TD2dBfgnQR9IfX48= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-117-Dja7HQCmMc-KA8tftd840Q-1; Wed, 08 Feb 2023 16:12:52 -0500 X-MC-Unique: Dja7HQCmMc-KA8tftd840Q-1 Received: by mail-wr1-f69.google.com with SMTP id t3-20020adff043000000b002bfd38027fcso3228385wro.9 for ; Wed, 08 Feb 2023 13:12:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tS9+7/8O/6fAFa8QO010Xn8p8THh7DB9ISxGEslYQs4=; b=Txx2+VuAgUHHt5IdoMQfCIWbeLcVr/YUzUGnx9+27s6I0qTQwQa4AbMS7yWTg+PrD6 xozZTFr42BjX8ZG5s3jLvhnAEyoWZ5uFlrFb4nYbP2qkr58nKpQDqydPl+cpYg3CV298 KxUijPIWIERsZOO8LnUZQtfasx6DSsUoBSK0Hpa/stXsvhZX9NS9ToSv4JlE8eL2xq11 OAcFhQad2fOm6XsmlOHsl4HsOGaJ3X3PGDdtA36K3iiI+1bxwbYnauGeJRy/bDuqlFvQ xd15TnzSY+cq7ULNJ99XYePI2aC9WbbQtc43MlRI9O/gX0ZTIfUXaeNv/MBOtSlaF6LE /wAA== X-Gm-Message-State: AO0yUKVwa27tl390EtWOWEPje1/o+GT//Cvewk6bCF6Xv5Ip76XeTH/q IAp4xEqmmpS+SVRHBOpfKxFdiR8dAtLtnDgkOnFvAb6vrxkJjGulRG7whhLClZQqlY+AKWasdG4 MGWORjA7qXSBKEaTOWvUCCWoa X-Received: by 2002:a05:600c:747:b0:3dc:438a:c381 with SMTP id j7-20020a05600c074700b003dc438ac381mr7510794wmn.28.1675890770887; Wed, 08 Feb 2023 13:12:50 -0800 (PST) X-Received: by 2002:a05:600c:747:b0:3dc:438a:c381 with SMTP id j7-20020a05600c074700b003dc438ac381mr7510779wmn.28.1675890770641; Wed, 08 Feb 2023 13:12:50 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id j37-20020a05600c1c2500b003daf6e3bc2fsm7197641wms.1.2023.02.08.13.12.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:50 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:46 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Eduardo Habkost , Marcel Apfelbaum Subject: [PATCH RFC 5/7] Revert "x86: use typedef for SetupData struct" Message-ID: <20230208211212.41951-6-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299295984173858?= X-GMAIL-MSGID: =?utf-8?q?1757299295984173858?= This reverts commit eebb38a5633a77f5fa79d6486d5b2fcf8fbe3c07. Fixes: eebb38a563 ("x86: use typedef for SetupData struct") Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrangé --- hw/i386/x86.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 32f37ab7c2..76b12108b4 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -657,12 +657,12 @@ DeviceState *ioapic_init_secondary(GSIState *gsi_state) return dev; } -typedef struct SetupData { +struct setup_data { uint64_t next; uint32_t type; uint32_t len; uint8_t data[]; -} __attribute__((packed)) SetupData; +} __attribute__((packed)); /* @@ -803,7 +803,7 @@ void x86_load_linux(X86MachineState *x86ms, FILE *f; char *vmode; MachineState *machine = MACHINE(x86ms); - SetupData *setup_data; + struct setup_data *setup_data; const char *kernel_filename = machine->kernel_filename; const char *initrd_filename = machine->initrd_filename; const char *dtb_filename = machine->dtb; @@ -1086,11 +1086,11 @@ void x86_load_linux(X86MachineState *x86ms, } setup_data_offset = QEMU_ALIGN_UP(kernel_size, 16); - kernel_size = setup_data_offset + sizeof(SetupData) + dtb_size; + kernel_size = setup_data_offset + sizeof(struct setup_data) + dtb_size; kernel = g_realloc(kernel, kernel_size); - setup_data = (SetupData *)(kernel + setup_data_offset); + setup_data = (struct setup_data *)(kernel + setup_data_offset); setup_data->next = cpu_to_le64(first_setup_data); first_setup_data = prot_addr + setup_data_offset; setup_data->type = cpu_to_le32(SETUP_DTB); @@ -1101,9 +1101,9 @@ void x86_load_linux(X86MachineState *x86ms, if (!legacy_no_rng_seed) { setup_data_offset = QEMU_ALIGN_UP(kernel_size, 16); - kernel_size = setup_data_offset + sizeof(SetupData) + RNG_SEED_LENGTH; + kernel_size = setup_data_offset + sizeof(struct setup_data) + RNG_SEED_LENGTH; kernel = g_realloc(kernel, kernel_size); - setup_data = (SetupData *)(kernel + setup_data_offset); + setup_data = (struct setup_data *)(kernel + setup_data_offset); setup_data->next = cpu_to_le64(first_setup_data); first_setup_data = prot_addr + setup_data_offset; setup_data->type = cpu_to_le32(SETUP_RNG_SEED); From patchwork Wed Feb 8 21:12:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54623 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3692996wrn; Wed, 8 Feb 2023 13:19:44 -0800 (PST) X-Google-Smtp-Source: AK7set/zuXwiEwKhilmP7bfWPcoySGvSDOqEAK/GengFAdll+ojSllXDUEREX0mEOFHoMNrlYevu X-Received: by 2002:a05:6a20:8e04:b0:bc:ba3e:48e7 with SMTP id y4-20020a056a208e0400b000bcba3e48e7mr11374467pzj.2.1675891183870; Wed, 08 Feb 2023 13:19:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891183; cv=none; d=google.com; s=arc-20160816; b=wh1RUpFF5zQxb6F32GP+srkoIfJOfqnJFxHMW9Ik36Gw4DzubdtJsjUSzRp0uU/3B5 RfL4/k5xzAoBPShFEJJUejnBhMkzrYO0D6aALI+289ULPPYF74V7y2Ga3ETpKeDiZixx RHX269vvRWvi4JQq5cchKABtijyTZovttq+lhPiP6/zvT6WYZRFelVqmlBfRHJ+9dAiz Mf7kDRA01Qt7z0vA2KT8xBVjhUnyULZTkAiWMOGjn+s7qPW4y7qTYx8rVpSgbMWuze0T Q/bBsghIJdmuludYe2XZJHQEZPsuoJQFuJpuaGYrPTI8NYhcrCpLpLD3SMnix471by/8 4WfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=d88wFZ2mo/0imCYZRYbYiUssCRrNIVVmiSofCMtgJ24=; b=p88f8NVkDLIKbhRQNloTXLzaOTyI+5kfXWLHQ2ouvJc9Nek9i+r0BZONYQpvm7g+f+ f53jDGN/5WgMAm5X9NQYr5wbqwp+emuY3ftZkPs7GDB3a4gPCdoCRZZLnloQPIixD32d WlClHcpRzJUn4ec/szgx6iqpvxcplXAmhJvsLYYZvSGorhhxiNCImqVKzlpzZgfgiDY+ YQmPDvZ0ZI8/fEHYHBCsiCuV0JIKMXxQOAigAAgYs0+XPeqlweb0Uv01EofYsWpd0cRo 5//aXXHUNHYb8riMe7VNxypPD1xD39vX3F0C7j6swgKZnyCph2XCCzt+zykdJPxEnsKV tLxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=i+Dte1+K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h193-20020a636cca000000b004da538f8991si20002714pgc.442.2023.02.08.13.19.07; Wed, 08 Feb 2023 13:19:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=i+Dte1+K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231658AbjBHVNy (ORCPT + 99 others); Wed, 8 Feb 2023 16:13:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232064AbjBHVNp (ORCPT ); Wed, 8 Feb 2023 16:13:45 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 710312E0F7 for ; Wed, 8 Feb 2023 13:12:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=d88wFZ2mo/0imCYZRYbYiUssCRrNIVVmiSofCMtgJ24=; b=i+Dte1+KTwDdiVjZh9bsFTzyMcF6DSJO94CUvdhx8Rtf4u8b4UIut0kONJO0OCIMD6yB7T OVsMRnO0GpQugbJlFD/rkg64wTDEwjvH5dVFsq+QiEO/dNiCbkbIbucR8OH+L7P519ZM1I EcOkMfT0qdFeXMSBaVYCkV2ebsQ5lcs= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-665-JAe0YzGfNqin1YcRCfktvw-1; Wed, 08 Feb 2023 16:12:57 -0500 X-MC-Unique: JAe0YzGfNqin1YcRCfktvw-1 Received: by mail-wm1-f69.google.com with SMTP id b19-20020a05600c4e1300b003e10d3e1c23so1396837wmq.1 for ; Wed, 08 Feb 2023 13:12:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=d88wFZ2mo/0imCYZRYbYiUssCRrNIVVmiSofCMtgJ24=; b=BVMtc3vUkWXaK2pFaQ9wRIBbOU3WUk9JLMWmk5RyLHCJzFxKHQhvURYr5SJyghy2r4 Rzk6KlS0k7B9T8mPqYuHfeG5ezZ6zziBJyEWWZNIiTdsu03X/+GAVF45eKmUp9+Dbl3C OrS/BvZqNqoTZaN3uZesWPF/yzxPc3c6K/WLS8iM1K9G37uO4Kx/lT0kLBxrMcT+NqUT Mi8qmxfImbvswkX1E49QDjxLx3ukrKDUhia6i5iEOB9XTid8DLzzGz8UwK7rSTkLrrJV N+8blizobsksjsRo6Phox2OvLalZa9Z9fq2zs2gQuMCNGFLpATAUOHpxy5P1QkCzzQdg 9+dw== X-Gm-Message-State: AO0yUKVO10enNF0GXFYscPcKI6tOLyYX6WqUp73ywTb7j5wsocHXllsB wJP7W+hXTLwgaZ/8FG9atouu1eVfiuga71P4972kewKVqjGGhlqSQyVZUN4sOeyHvDhpbfD5w5t zymNuZXHbtWK7qU68pqy+VjYt X-Received: by 2002:a5d:488b:0:b0:2c3:daf1:ec3 with SMTP id g11-20020a5d488b000000b002c3daf10ec3mr8376236wrq.61.1675890775881; Wed, 08 Feb 2023 13:12:55 -0800 (PST) X-Received: by 2002:a5d:488b:0:b0:2c3:daf1:ec3 with SMTP id g11-20020a5d488b000000b002c3daf10ec3mr8376226wrq.61.1675890775626; Wed, 08 Feb 2023 13:12:55 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id c12-20020adffb4c000000b002b6bcc0b64dsm14397944wrs.4.2023.02.08.13.12.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:55 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:51 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Marcel Apfelbaum , Eduardo Habkost Subject: [PATCH RFC 6/7] Revert "x86: return modified setup_data only if read as memory, not as file" Message-ID: <20230208211212.41951-7-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299274195612150?= X-GMAIL-MSGID: =?utf-8?q?1757299274195612150?= This reverts commit e935b735085dfa61d8e6d276b6f9e7687796a3c7. Fixes: e935b73508 ("x86: return modified setup_data only if read as memory, not as file") Signed-off-by: Michael S. Tsirkin Reviewed-by: Daniel P. Berrangé --- include/hw/nvram/fw_cfg.h | 22 ------------------- hw/i386/x86.c | 46 +++++++++------------------------------ hw/nvram/fw_cfg.c | 12 +++++----- 3 files changed, 16 insertions(+), 64 deletions(-) diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h index 2e503904dc..c1f81a5f13 100644 --- a/include/hw/nvram/fw_cfg.h +++ b/include/hw/nvram/fw_cfg.h @@ -117,28 +117,6 @@ struct FWCfgMemState { */ void fw_cfg_add_bytes(FWCfgState *s, uint16_t key, void *data, size_t len); -/** - * fw_cfg_add_bytes_callback: - * @s: fw_cfg device being modified - * @key: selector key value for new fw_cfg item - * @select_cb: callback function when selecting - * @write_cb: callback function after a write - * @callback_opaque: argument to be passed into callback function - * @data: pointer to start of item data - * @len: size of item data - * @read_only: is file read only - * - * Add a new fw_cfg item, available by selecting the given key, as a raw - * "blob" of the given size. The data referenced by the starting pointer - * is only linked, NOT copied, into the data structure of the fw_cfg device. - */ -void fw_cfg_add_bytes_callback(FWCfgState *s, uint16_t key, - FWCfgCallback select_cb, - FWCfgWriteCallback write_cb, - void *callback_opaque, - void *data, size_t len, - bool read_only); - /** * fw_cfg_add_string: * @s: fw_cfg device being modified diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 76b12108b4..4831193c86 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -37,7 +37,6 @@ #include "sysemu/whpx.h" #include "sysemu/numa.h" #include "sysemu/replay.h" -#include "sysemu/reset.h" #include "sysemu/sysemu.h" #include "sysemu/cpu-timers.h" #include "sysemu/xen.h" @@ -769,24 +768,6 @@ static bool load_elfboot(const char *kernel_filename, return true; } -typedef struct SetupDataFixup { - void *pos; - hwaddr orig_val, new_val; - uint32_t addr; -} SetupDataFixup; - -static void fixup_setup_data(void *opaque) -{ - SetupDataFixup *fixup = opaque; - stq_p(fixup->pos, fixup->new_val); -} - -static void reset_setup_data(void *opaque) -{ - SetupDataFixup *fixup = opaque; - stq_p(fixup->pos, fixup->orig_val); -} - void x86_load_linux(X86MachineState *x86ms, FWCfgState *fw_cfg, int acpi_data_size, @@ -1111,11 +1092,8 @@ void x86_load_linux(X86MachineState *x86ms, qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); } - fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); - fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); - fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, kernel, kernel_size); - sev_load_ctx.kernel_data = (char *)kernel; - sev_load_ctx.kernel_size = kernel_size; + /* Offset 0x250 is a pointer to the first setup_data link. */ + stq_p(header + 0x250, first_setup_data); /* * If we're starting an encrypted VM, it will be OVMF based, which uses the @@ -1125,20 +1103,16 @@ void x86_load_linux(X86MachineState *x86ms, * file the user passed in. */ if (!sev_enabled()) { - SetupDataFixup *fixup = g_malloc(sizeof(*fixup)); - memcpy(setup, header, MIN(sizeof(header), setup_size)); - /* Offset 0x250 is a pointer to the first setup_data link. */ - fixup->pos = setup + 0x250; - fixup->orig_val = ldq_p(fixup->pos); - fixup->new_val = first_setup_data; - fixup->addr = cpu_to_le32(real_addr); - fw_cfg_add_bytes_callback(fw_cfg, FW_CFG_SETUP_ADDR, fixup_setup_data, NULL, - fixup, &fixup->addr, sizeof(fixup->addr), true); - qemu_register_reset(reset_setup_data, fixup); - } else { - fw_cfg_add_i32(fw_cfg, FW_CFG_SETUP_ADDR, real_addr); } + + fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_ADDR, prot_addr); + fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size); + fw_cfg_add_bytes(fw_cfg, FW_CFG_KERNEL_DATA, kernel, kernel_size); + sev_load_ctx.kernel_data = (char *)kernel; + sev_load_ctx.kernel_size = kernel_size; + + fw_cfg_add_i32(fw_cfg, FW_CFG_SETUP_ADDR, real_addr); fw_cfg_add_i32(fw_cfg, FW_CFG_SETUP_SIZE, setup_size); fw_cfg_add_bytes(fw_cfg, FW_CFG_SETUP_DATA, setup, setup_size); sev_load_ctx.setup_data = (char *)setup; diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index a00881bc64..29a5bef1d5 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -693,12 +693,12 @@ static const VMStateDescription vmstate_fw_cfg = { } }; -void fw_cfg_add_bytes_callback(FWCfgState *s, uint16_t key, - FWCfgCallback select_cb, - FWCfgWriteCallback write_cb, - void *callback_opaque, - void *data, size_t len, - bool read_only) +static void fw_cfg_add_bytes_callback(FWCfgState *s, uint16_t key, + FWCfgCallback select_cb, + FWCfgWriteCallback write_cb, + void *callback_opaque, + void *data, size_t len, + bool read_only) { int arch = !!(key & FW_CFG_ARCH_LOCAL); From patchwork Wed Feb 8 21:12:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 54627 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3694432wrn; Wed, 8 Feb 2023 13:23:22 -0800 (PST) X-Google-Smtp-Source: AK7set/2TDW+NDqhU9ECR/RW4ShMaE1g0eykZFTudTg17gtSGIA+NtIqLQ7JWokk3OR2Y+GFLqmK X-Received: by 2002:a17:906:283:b0:89a:8238:3323 with SMTP id 3-20020a170906028300b0089a82383323mr8311093ejf.6.1675891402482; Wed, 08 Feb 2023 13:23:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675891402; cv=none; d=google.com; s=arc-20160816; b=XAGCvNvZi6ykXcqwYDDvgobe3PX2EDOxFIpO6Y+hERWygDAT6K3slk4U33/Pj2I0X1 vlu5ToYF3vGiVSaYUF0PKw8ZiAxsrct6e2FIT8jD+41fh+FD4bD/Nv//B2RoOLpnRyqq +HyNsXb/hTpFG0oKIqAeHFHubfuap6KjGvxHSanverqair1xx+52qxjE75LU3hzGAYtc hibwsJdIKf5XPfdvVw1ShtxlGjtspoeYAv9vqmx+984rVjtkSPiomH8D0Gdkqdu4ouo1 ixpCAZGk+imxhC/C6bRMy4WzSkRPpyO7pwNfsVqsDTipGEUclG31rdgMOygrKJKbTgPK odFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=PNuoFqEU8CsrXUJPO1lJsWHLekxhHoR3bU0ec0vwJOA=; b=yBbdDRqMYnKanQiMel6SqBQKwm4WEkamFFsNuMgoRTT47nLgzUz4Xb08CwDNv8qlCA NnkNvyp8ogvnWpNrxPbXamOWY81hUC+I/RVqdYcWY6Bi96u91lDcAf16d4QcvXoQioe2 BXJQWgDq2aijSJtofXCvpQ5vuUCDKpszlTYTC0TdiFJyis4L3ltSc5Ed7j4ip1JFv7iK ZId6B1kSncvb7xXgmlI8b15stFIfR9WWifOHAL4jYi9NIOMjZzfvRvSfnMcMXMlndUUY T6bMjzBv/PZIVJjRTgPpx6SBetYFDNBRGQM83y1BeDKAsevWcikeVBj0Xirq1GWaN5SP quSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=H7UUwiIA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id eq5-20020a170907290500b008893db958e5si20565769ejc.546.2023.02.08.13.22.59; Wed, 08 Feb 2023 13:23:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=H7UUwiIA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232039AbjBHVOI (ORCPT + 99 others); Wed, 8 Feb 2023 16:14:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232174AbjBHVNx (ORCPT ); Wed, 8 Feb 2023 16:13:53 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 153FC2E800 for ; Wed, 8 Feb 2023 13:13:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675890784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=PNuoFqEU8CsrXUJPO1lJsWHLekxhHoR3bU0ec0vwJOA=; b=H7UUwiIAzedjK2OjLAnW8q59xKJCEp5UmHaJK/SI9Cy8sBk1mc4iotIIaWgtuvb4ou28fg mMX/FvTxeXiI85RmhZ9yQmjXN/f21JGfg3hFMTx3lR+koWa4B8aP37L1h0sr3h1kDfjV29 Y9ql4cRk0putt0AZJLdVHK0TzrzidJg= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-329-bd3SzOw3MDu7fVpJWljE9Q-1; Wed, 08 Feb 2023 16:13:02 -0500 X-MC-Unique: bd3SzOw3MDu7fVpJWljE9Q-1 Received: by mail-wm1-f69.google.com with SMTP id n4-20020a05600c3b8400b003dfe223de49so1743525wms.5 for ; Wed, 08 Feb 2023 13:13:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PNuoFqEU8CsrXUJPO1lJsWHLekxhHoR3bU0ec0vwJOA=; b=YI9erAdjFxERTUKEF65rntFJWcQ5VCxS9F6E2EJ7VWfluubGjinOvMXxXgWZBm61XB +2nuoX9NZTsVk9ALC6gd1aBz6NCGyTb/8ddgvSMrqTczvhyMULDUeiy9UzLW7mhukCNj 2QTx/ar8/D8d68ZFM6GEynBHc2M0ZeCdlNuV0JQT/vbT6nSn2/9DC5Zptn4BVc1UyHTB yVuOfOIPUgw+9a3Sqs6yypRwCIwl4XenSMu8gzHklXqrO29LCPwY1TNqbb2ukEnyRvJu ARw33LVFyakxS77cMBQ5nW42Syn7JHF37eSUizuOE3NeN/SNFJv6jIZp8ZZTJ0u93SwL Irng== X-Gm-Message-State: AO0yUKW3GQ/KNbVuP+4ZTevxEo16hkEX/yveCVR3lLqFurUtndhT8ZC3 7J19k3bjS5HtFSIIU4T7wv4ly1w4Du8Rny/H142EFbnJuVO2gaT+IQM1ldnWLeHXDy3ojZ1b+9q Q+t3at3I5zgS17vWUobVEygXb X-Received: by 2002:a05:600c:30d3:b0:3dc:2137:d67d with SMTP id h19-20020a05600c30d300b003dc2137d67dmr7657601wmn.16.1675890780411; Wed, 08 Feb 2023 13:13:00 -0800 (PST) X-Received: by 2002:a05:600c:30d3:b0:3dc:2137:d67d with SMTP id h19-20020a05600c30d300b003dc2137d67dmr7657585wmn.16.1675890780166; Wed, 08 Feb 2023 13:13:00 -0800 (PST) Received: from redhat.com ([2.52.132.212]) by smtp.gmail.com with ESMTPSA id b18-20020a05600c4e1200b003e00c453447sm3072740wmq.48.2023.02.08.13.12.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 13:12:59 -0800 (PST) Date: Wed, 8 Feb 2023 16:12:56 -0500 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org, "Jason A. Donenfeld" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Dov Murik , Tom Lendacky , Gerd Hoffmann , Daniel P =?utf-8?b?LiBCZXJyYW5nw6k=?= , Paolo Bonzini , Richard Henderson , "H . Peter Anvin" , Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= , Nathan Chancellor , Borislav Petkov , Eric Biggers , Sergio Lopez , Marcel Apfelbaum , Eduardo Habkost Subject: [PATCH RFC 7/7] Revert "hw/i386: pass RNG seed via setup_data entry" Message-ID: <20230208211212.41951-8-mst@redhat.com> References: <20230208211212.41951-1-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230208211212.41951-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757299503096100639?= X-GMAIL-MSGID: =?utf-8?q?1757299503096100639?= This reverts commit 67f7e426e53833a5db75b0d813e8d537b8a75bd2. Fixes: 67f7e426e5 ("hw/i386: pass RNG seed via setup_data entry") Signed-off-by: Michael S. Tsirkin --- include/hw/i386/pc.h | 3 --- include/hw/i386/x86.h | 3 +-- hw/i386/microvm.c | 2 +- hw/i386/pc.c | 4 ++-- hw/i386/pc_piix.c | 2 -- hw/i386/pc_q35.c | 2 -- hw/i386/x86.c | 26 ++++---------------------- 7 files changed, 8 insertions(+), 34 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 66e3d059ef..44b08554fa 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -127,9 +127,6 @@ struct PCMachineClass { /* create kvmclock device even when KVM PV features are not exposed */ bool kvmclock_create_always; - - /* skip passing an rng seed for legacy machines */ - bool legacy_no_rng_seed; }; #define TYPE_PC_MACHINE "generic-pc-machine" diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 62fa5774f8..df82c5fd42 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -126,8 +126,7 @@ void x86_bios_rom_init(MachineState *ms, const char *default_firmware, void x86_load_linux(X86MachineState *x86ms, FWCfgState *fw_cfg, int acpi_data_size, - bool pvh_enabled, - bool legacy_no_rng_seed); + bool pvh_enabled); bool x86_machine_is_smm_enabled(const X86MachineState *x86ms); bool x86_machine_is_acpi_enabled(const X86MachineState *x86ms); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 170a331e3f..b231ceda9a 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -330,7 +330,7 @@ static void microvm_memory_init(MicrovmMachineState *mms) rom_set_fw(fw_cfg); if (machine->kernel_filename != NULL) { - x86_load_linux(x86ms, fw_cfg, 0, true, false); + x86_load_linux(x86ms, fw_cfg, 0, true); } if (mms->option_roms) { diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 6e592bd969..2c5f675ba4 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -804,7 +804,7 @@ void xen_load_linux(PCMachineState *pcms) rom_set_fw(fw_cfg); x86_load_linux(x86ms, fw_cfg, pcmc->acpi_data_size, - pcmc->pvh_enabled, pcmc->legacy_no_rng_seed); + pcmc->pvh_enabled); for (i = 0; i < nb_option_roms; i++) { assert(!strcmp(option_rom[i].name, "linuxboot.bin") || !strcmp(option_rom[i].name, "linuxboot_dma.bin") || @@ -1124,7 +1124,7 @@ void pc_memory_init(PCMachineState *pcms, if (linux_boot) { x86_load_linux(x86ms, fw_cfg, pcmc->acpi_data_size, - pcmc->pvh_enabled, pcmc->legacy_no_rng_seed); + pcmc->pvh_enabled); } for (i = 0; i < nb_option_roms; i++) { diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index df64dd8dcc..839bd65df5 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -476,9 +476,7 @@ DEFINE_I440FX_MACHINE(v7_2, "pc-i440fx-7.2", NULL, static void pc_i440fx_7_1_machine_options(MachineClass *m) { - PCMachineClass *pcmc = PC_MACHINE_CLASS(m); pc_i440fx_7_2_machine_options(m); - pcmc->legacy_no_rng_seed = true; compat_props_add(m->compat_props, hw_compat_7_1, hw_compat_7_1_len); compat_props_add(m->compat_props, pc_compat_7_1, pc_compat_7_1_len); } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 66cd718b70..e6e3966262 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -395,9 +395,7 @@ DEFINE_Q35_MACHINE(v7_2, "pc-q35-7.2", NULL, static void pc_q35_7_1_machine_options(MachineClass *m) { - PCMachineClass *pcmc = PC_MACHINE_CLASS(m); pc_q35_7_2_machine_options(m); - pcmc->legacy_no_rng_seed = true; compat_props_add(m->compat_props, hw_compat_7_1, hw_compat_7_1_len); compat_props_add(m->compat_props, pc_compat_7_1, pc_compat_7_1_len); } diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 4831193c86..80be3032cc 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -26,7 +26,6 @@ #include "qemu/cutils.h" #include "qemu/units.h" #include "qemu/datadir.h" -#include "qemu/guest-random.h" #include "qapi/error.h" #include "qapi/qmp/qerror.h" #include "qapi/qapi-visit-common.h" @@ -771,8 +770,7 @@ static bool load_elfboot(const char *kernel_filename, void x86_load_linux(X86MachineState *x86ms, FWCfgState *fw_cfg, int acpi_data_size, - bool pvh_enabled, - bool legacy_no_rng_seed) + bool pvh_enabled) { bool linuxboot_dma_enabled = X86_MACHINE_GET_CLASS(x86ms)->fwcfg_dma_enabled; uint16_t protocol; @@ -780,7 +778,7 @@ void x86_load_linux(X86MachineState *x86ms, int dtb_size, setup_data_offset; uint32_t initrd_max; uint8_t header[8192], *setup, *kernel; - hwaddr real_addr, prot_addr, cmdline_addr, initrd_addr = 0, first_setup_data = 0; + hwaddr real_addr, prot_addr, cmdline_addr, initrd_addr = 0; FILE *f; char *vmode; MachineState *machine = MACHINE(x86ms); @@ -790,7 +788,6 @@ void x86_load_linux(X86MachineState *x86ms, const char *dtb_filename = machine->dtb; const char *kernel_cmdline = machine->kernel_cmdline; SevKernelLoaderContext sev_load_ctx = {}; - enum { RNG_SEED_LENGTH = 32 }; /* Align to 16 bytes as a paranoia measure */ cmdline_size = (strlen(kernel_cmdline) + 16) & ~15; @@ -1070,31 +1067,16 @@ void x86_load_linux(X86MachineState *x86ms, kernel_size = setup_data_offset + sizeof(struct setup_data) + dtb_size; kernel = g_realloc(kernel, kernel_size); + stq_p(header + 0x250, prot_addr + setup_data_offset); setup_data = (struct setup_data *)(kernel + setup_data_offset); - setup_data->next = cpu_to_le64(first_setup_data); - first_setup_data = prot_addr + setup_data_offset; + setup_data->next = 0; setup_data->type = cpu_to_le32(SETUP_DTB); setup_data->len = cpu_to_le32(dtb_size); load_image_size(dtb_filename, setup_data->data, dtb_size); } - if (!legacy_no_rng_seed) { - setup_data_offset = QEMU_ALIGN_UP(kernel_size, 16); - kernel_size = setup_data_offset + sizeof(struct setup_data) + RNG_SEED_LENGTH; - kernel = g_realloc(kernel, kernel_size); - setup_data = (struct setup_data *)(kernel + setup_data_offset); - setup_data->next = cpu_to_le64(first_setup_data); - first_setup_data = prot_addr + setup_data_offset; - setup_data->type = cpu_to_le32(SETUP_RNG_SEED); - setup_data->len = cpu_to_le32(RNG_SEED_LENGTH); - qemu_guest_getrandom_nofail(setup_data->data, RNG_SEED_LENGTH); - } - - /* Offset 0x250 is a pointer to the first setup_data link. */ - stq_p(header + 0x250, first_setup_data); - /* * If we're starting an encrypted VM, it will be OVMF based, which uses the * efi stub for booting and doesn't require any values to be placed in the