Message ID | 20240214101557.2900512-5-kernel@xen0n.name |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp1121858dyb; Wed, 14 Feb 2024 02:43:00 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXPXgK8aaMVJ1LlbmWFYlgbCI3150KO3oP4ePaaKOZJT4bpNnVdGxtNg3eCEDQvY/pi3u6ZzbuHo4DnfGv+G4LdQihaJA== X-Google-Smtp-Source: AGHT+IHHinfbBnqZZqyfliCuyYO5niwA4qvNJWCNh2GSpSPXrME6I3LuOe1qUig5ak9MOUch8vYe X-Received: by 2002:aa7:9d0c:0:b0:6e0:6c0d:f55a with SMTP id k12-20020aa79d0c000000b006e06c0df55amr1997768pfp.8.1707907380680; Wed, 14 Feb 2024 02:43:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707907380; cv=pass; d=google.com; s=arc-20160816; b=lg7qh9dW0wBGWpn0BKnPczQatsvZOcg5t7GDl+aQpYZRXMcuXtcml7eS7joRyPoA/0 DFzBJq1dRlQva5tfnEHc7u5jGYL/I48KxFiXeCmtrUEyjNefTtrkuUOFLW1WkZDQBxp9 ouxEg+7GQgDRLMfL4Cnj3uOqEIQ7BtCvDKVHyIVpYl1Gnt7cmp56THFuh4uZtFkGlYwN A76QpUFTPdP+yReAgWnSg9MRcxtotDZ4B9WcZzi+LZDvbZ9Y4UmDbVvbiiuHox/m5BAx vhFMX54CUktuGGvaS1D/dRR9DDKQclTtzU/y3h8zZ45vuIZznuNt4svZadf0du6bfAlZ AqeQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=RHNnlWo/dTC6sjCkmLRk2kkdbF0UW6ee+nmiFsRx7Fw=; fh=B49GbIh5ek5sTKfhpR9Vtje8P0F2zl16rPmec+16Lyc=; b=VMqS5aWi7PtH2CfzQ0gP9VMuZx7UqjA3XqJei5Q6e4f7ALxW+KL7c80uuKbtyTjr9E xCcWA+CUByjvIdrtLb2xFBGOEm/D12FATaxmdRrRgP5pVCfpF6Lu2sTQGUFTirt7Plp/ MbfDiFHlzdUpUEKQovEOR22h7UQ4SFu4z1yGXiKZWvpZ+NYDNuvVAJ5qDZPmqAhLFf3t SALyIaVUpZzKUctAfhk5vN/13bpyHmqJ3T+Bma5d7rCIJoUpuWoVRntpt3dQ0JuF38af zP9BdFEg26Dd6WL13c6Ut3cTkD3Pm7HCW1gSwfjiOyHCb8YQFOGbwRaOi71eb2nLIWku 9DrQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=cOXRPrNH; arc=pass (i=1 spf=pass spfdomain=xen0n.name dkim=pass dkdomain=xen0n.name); spf=pass (google.com: domain of linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org" X-Forwarded-Encrypted: i=2; AJvYcCUbS+vMtsNm/PBSLTQLEEpaksQorRVL6VoJbF3go6VEJo36hKXltPQ375nWKigH98gQam2xAyCsYXn2zYYOPSTf5+mIsQ== Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id r9-20020aa79ec9000000b006e03e373076si8215320pfq.25.2024.02.14.02.43.00 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Feb 2024 02:43:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=cOXRPrNH; arc=pass (i=1 spf=pass spfdomain=xen0n.name dkim=pass dkdomain=xen0n.name); spf=pass (google.com: domain of linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65044-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id EE938B27F1A for <ouuuleilei@gmail.com>; Wed, 14 Feb 2024 10:25:43 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 02F7F1B964; Wed, 14 Feb 2024 10:24:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=xen0n.name header.i=@xen0n.name header.b="cOXRPrNH" Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A31C17580; Wed, 14 Feb 2024 10:24:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.28.160.31 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707906251; cv=none; b=Qf1eM5pBlmM4diWjd0xnMZTc3II49uzoy/QGSwRmoUXPwncFQHXJoFl/PS9RwVShM5dhrZAn19tHmVAmdMFjD6fbyPzle5SCEiM4Skv09G3vC2hXhreYsUK8b4dIXiGQkUu0fNMISBms+8AefoDuOkS712vBZr9FMgyJVkld0cE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707906251; c=relaxed/simple; bh=UEF3EtzASKcetwcq4bXXyQ5NmYXr4KVcBieRDjHk7ok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AmF+v2zuuLJ+cZXvpiGtgGFjtsOdQ3BrWdjiYCtA4X3BKb6Dhuth1CaUnnzfxtsYpApDVILM/9nMkCaLHMWi1YLa5neZSkVHz/fgldzO9dQWPeKdQ7vl4eOzbVsoQnsQrkL/EdSDCwN8QMrWUSiB1HSbMhBu2k5pKdH6+I9h1WU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xen0n.name; spf=pass smtp.mailfrom=xen0n.name; dkim=pass (1024-bit key) header.d=xen0n.name header.i=@xen0n.name header.b=cOXRPrNH; arc=none smtp.client-ip=115.28.160.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xen0n.name Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xen0n.name DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1707905768; bh=UEF3EtzASKcetwcq4bXXyQ5NmYXr4KVcBieRDjHk7ok=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cOXRPrNHUvE8DHxSgDP4KOW6f/OrLuGnwlp5dJvrkprvNZtiBseCBWzy34+S2cOTV dKjfN/r4Z98QKBWNK3waITUgB5aV9t5UEheqlf46SUTbg2tDX5NboTSAp6G3iaD3Xv rGeZl+8u96PemsRIQ8TRmwxJnF7t4DD5z+er+/dM= Received: from ld50.lan (unknown [IPv6:240e:388:8d00:6500:5531:eef6:1274:cebe]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id A1FE5601C6; Wed, 14 Feb 2024 18:16:08 +0800 (CST) From: WANG Xuerui <kernel@xen0n.name> To: Paolo Bonzini <pbonzini@redhat.com>, Huacai Chen <chenhuacai@kernel.org> Cc: Tianrui Zhao <zhaotianrui@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, kvm@vger.kernel.org, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui <git@xen0n.name> Subject: [PATCH for-6.8 4/5] KVM: LoongArch: Streamline control flow of kvm_check_cpucfg Date: Wed, 14 Feb 2024 18:15:56 +0800 Message-ID: <20240214101557.2900512-5-kernel@xen0n.name> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240214101557.2900512-1-kernel@xen0n.name> References: <20240214101557.2900512-1-kernel@xen0n.name> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790870689410020062 X-GMAIL-MSGID: 1790870689410020062 |
Series |
KVM: LoongArch: Fix wrong CPUCFG ID handling
|
|
Commit Message
WANG Xuerui
Feb. 14, 2024, 10:15 a.m. UTC
From: WANG Xuerui <git@xen0n.name> All the checks currently done in kvm_check_cpucfg can be realized with early returns, so just do that to avoid extra cognitive burden related to the return value handling. The default branch is unreachable because of the earlier validation by _kvm_get_cpucfg_mask, so mark it as such too to make things clearer. Signed-off-by: WANG Xuerui <git@xen0n.name> --- arch/loongarch/kvm/vcpu.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-)
Comments
Hi, Xuerui, On Wed, Feb 14, 2024 at 6:16 PM WANG Xuerui <kernel@xen0n.name> wrote: > > From: WANG Xuerui <git@xen0n.name> > > All the checks currently done in kvm_check_cpucfg can be realized with > early returns, so just do that to avoid extra cognitive burden related > to the return value handling. > > The default branch is unreachable because of the earlier validation by > _kvm_get_cpucfg_mask, so mark it as such too to make things clearer. > > Signed-off-by: WANG Xuerui <git@xen0n.name> > --- > arch/loongarch/kvm/vcpu.c | 23 +++++++++++------------ > 1 file changed, 11 insertions(+), 12 deletions(-) > > diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c > index e973500611b4..9e108ffaba30 100644 > --- a/arch/loongarch/kvm/vcpu.c > +++ b/arch/loongarch/kvm/vcpu.c > @@ -339,24 +339,23 @@ static int kvm_check_cpucfg(int id, u64 val) > /* CPUCFG2 features checking */ > if (val & ~mask) > /* The unsupported features should not be set */ > - ret = -EINVAL; > - else if (!(val & CPUCFG2_LLFTP)) > + return -EINVAL; > + if (!(val & CPUCFG2_LLFTP)) > /* The LLFTP must be set, as guest must has a constant timer */ > - ret = -EINVAL; > - else if ((val & CPUCFG2_FP) && (!(val & CPUCFG2_FPSP) || !(val & CPUCFG2_FPDP))) > + return -EINVAL; > + if ((val & CPUCFG2_FP) && (!(val & CPUCFG2_FPSP) || !(val & CPUCFG2_FPDP))) > /* Single and double float point must both be set when enable FP */ > - ret = -EINVAL; > - else if ((val & CPUCFG2_LSX) && !(val & CPUCFG2_FP)) > + return -EINVAL; > + if ((val & CPUCFG2_LSX) && !(val & CPUCFG2_FP)) > /* FP should be set when enable LSX */ > - ret = -EINVAL; > - else if ((val & CPUCFG2_LASX) && !(val & CPUCFG2_LSX)) > + return -EINVAL; > + if ((val & CPUCFG2_LASX) && !(val & CPUCFG2_LSX)) > /* LSX, FP should be set when enable LASX, and FP has been checked before. */ > - ret = -EINVAL; > - break; > + return -EINVAL; > + return 0; > default: > - break; > + unreachable(); Maybe BUG() is better than unreachable()? Huacai > } > - return ret; > } > > static int kvm_get_one_reg(struct kvm_vcpu *vcpu, > -- > 2.43.0 >
diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c index e973500611b4..9e108ffaba30 100644 --- a/arch/loongarch/kvm/vcpu.c +++ b/arch/loongarch/kvm/vcpu.c @@ -339,24 +339,23 @@ static int kvm_check_cpucfg(int id, u64 val) /* CPUCFG2 features checking */ if (val & ~mask) /* The unsupported features should not be set */ - ret = -EINVAL; - else if (!(val & CPUCFG2_LLFTP)) + return -EINVAL; + if (!(val & CPUCFG2_LLFTP)) /* The LLFTP must be set, as guest must has a constant timer */ - ret = -EINVAL; - else if ((val & CPUCFG2_FP) && (!(val & CPUCFG2_FPSP) || !(val & CPUCFG2_FPDP))) + return -EINVAL; + if ((val & CPUCFG2_FP) && (!(val & CPUCFG2_FPSP) || !(val & CPUCFG2_FPDP))) /* Single and double float point must both be set when enable FP */ - ret = -EINVAL; - else if ((val & CPUCFG2_LSX) && !(val & CPUCFG2_FP)) + return -EINVAL; + if ((val & CPUCFG2_LSX) && !(val & CPUCFG2_FP)) /* FP should be set when enable LSX */ - ret = -EINVAL; - else if ((val & CPUCFG2_LASX) && !(val & CPUCFG2_LSX)) + return -EINVAL; + if ((val & CPUCFG2_LASX) && !(val & CPUCFG2_LSX)) /* LSX, FP should be set when enable LASX, and FP has been checked before. */ - ret = -EINVAL; - break; + return -EINVAL; + return 0; default: - break; + unreachable(); } - return ret; } static int kvm_get_one_reg(struct kvm_vcpu *vcpu,