From patchwork Thu Sep 14 06:33:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang, Weijiang" X-Patchwork-Id: 139971 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp743493vqi; Thu, 14 Sep 2023 18:50:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG8MH9R9nyWgX9x+vifXb6fhRu15gySBfYkmUazOaGQi5qymvhPzD3txIkEYWCciIs9Y8nu X-Received: by 2002:a05:6a20:6a1a:b0:137:a08b:8bef with SMTP id p26-20020a056a206a1a00b00137a08b8befmr502536pzk.44.1694742655786; Thu, 14 Sep 2023 18:50:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694742655; cv=none; d=google.com; s=arc-20160816; b=A+GByDQFQWroe/AzVYfB33hcdmZqj4LDVdQchmLB6wD5rNI9BiqgWSJ/sM0sUEhy+c feZxqqS3/GUnGU2fd1xzClDP1cz17wJXjfLfK9zaqUBCYRetujZsQSvDYFoPdSm1iIlW HCSJQypTm3Uwrug/I10cgDM8gvksnKTPLsgR20sGfigK2o498OBlfqdy09+2Kqx122SE cuyDx6rXauq/BGFynxzoMHAWKQKPuhdqllJgMNlzHHRyWxkzVYl6F0cMEdbr9zdhLpF5 rbxgzCKKmmy4gwXVxkhFQt7MZBkqPOOrGEP0UrNhU1tD6OZXFGKlwhGWmp8fJb5Ng/eP LrPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=iwiP92oyn2ceCRI1LOdxG4MZKS9G4C55pN90o87BauE=; fh=jQqUhNQZPAXcZ44u72Wu3jv2pQizzn2Be2T8mkd1RwU=; b=hKK6n8D/Gj2Mee9+KakUZzq0JDGE2GhEPL8uuzSJkfRjDS8GFvIdgXLNlloyrV+5tK 0njCBce9uy8aeigGyIuy/oXOnlCx9ZVTDZ3y62+QXLwiKAEPGq6ct2mpYq6OiMdBs5aG Ue4pWsOecTtpXAJFGqWU1tfzYIVrq1eTsPRxaMv6kOHlr7c3aRAdiWlkx4NkRGD/MN1S qV2zG8/V5uqqNYwUPAKQbRFXqMHp7Ftd5wKnwGLwkRhvwg6YalL8hCGtnk0P8+h/89qL 97vjw1wwIg1UZU3uqTXAIeJStrEqr/msjQscer+6viUqi2oCHbIDVhKG/x7eBprsoaAJ YdLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cDIdwRKu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id s17-20020a170903201100b001c3976e2307si2382529pla.502.2023.09.14.18.50.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Sep 2023 18:50:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=cDIdwRKu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 6EA778239DF5; Thu, 14 Sep 2023 02:38:29 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237303AbjINJi2 (ORCPT + 35 others); Thu, 14 Sep 2023 05:38:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40120 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235604AbjINJiU (ORCPT ); Thu, 14 Sep 2023 05:38:20 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 769FB83; Thu, 14 Sep 2023 02:38:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1694684296; x=1726220296; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GCpk9GKZRRCMIQFL0D0NzM82+1bNcf1kwTMzwzthcgA=; b=cDIdwRKuoPTGI/WjCaaxW/Olk3zhTefEYBrEPNYRlQZmO1e5XXntAdO9 gHXyXLX6rc1YCtV3lxQ3IiCvRiaYpZHA8R8/W516ufKvtDabcKJWo5pmy 7w/3RuhjH/JWG54Wj7qKuxLliNvQv1s/5DdxwOh1VZbOCq/QnaCx5CGEa sLKynkOMKRtX1SdkltkQowdEpZ4EDg+pzO1idyiJSdfoZaNucm5fNUxh1 TMYsIpcIa74EYC+riVLEfX+1ulBUTY+OBN0X5isXBOsxr4lGe03tr1/FR Zh+cwwTJgb0DIeKoJC/Rcly/cpfoI1dgmQB76OqzaTJ7Xq2DbkP/B9gBy Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="409857313" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="409857313" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2023 02:38:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="747656212" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="747656212" Received: from embargo.jf.intel.com ([10.165.9.183]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2023 02:38:15 -0700 From: Yang Weijiang To: seanjc@google.com, pbonzini@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: dave.hansen@intel.com, peterz@infradead.org, chao.gao@intel.com, rick.p.edgecombe@intel.com, weijiang.yang@intel.com, john.allen@amd.com Subject: [PATCH v6 02/25] x86/fpu/xstate: Fix guest fpstate allocation size calculation Date: Thu, 14 Sep 2023 02:33:02 -0400 Message-Id: <20230914063325.85503-3-weijiang.yang@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230914063325.85503-1-weijiang.yang@intel.com> References: <20230914063325.85503-1-weijiang.yang@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 14 Sep 2023 02:38:29 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777058939819866230 X-GMAIL-MSGID: 1777066475192191688 Fix guest xsave area allocation size from fpu_user_cfg.default_size to fpu_kernel_cfg.default_size so that the xsave area size is consistent with fpstate->size set in __fpstate_reset(). With the fix, guest fpstate size is sufficient for KVM supported guest xfeatures. Signed-off-by: Yang Weijiang --- arch/x86/kernel/fpu/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c index a86d37052a64..a42d8ad26ce6 100644 --- a/arch/x86/kernel/fpu/core.c +++ b/arch/x86/kernel/fpu/core.c @@ -220,7 +220,9 @@ bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu) struct fpstate *fpstate; unsigned int size; - size = fpu_user_cfg.default_size + ALIGN(offsetof(struct fpstate, regs), 64); + size = fpu_kernel_cfg.default_size + + ALIGN(offsetof(struct fpstate, regs), 64); + fpstate = vzalloc(size); if (!fpstate) return false;