Received: by 2002:a05:7412:2a91:b0:fc:a2b0:25d7 with SMTP id u17csp471627rdh; Wed, 14 Feb 2024 02:24:57 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWAcEYR0YEbRORG/ojVd4hG176KHCZHay3zBtnZL+5jIQ8IvHCC3syFduiUd0Uq2wWgMiW5EbynkybT43zwmjA8N9qYUrEb7VAkebhFYA== X-Google-Smtp-Source: AGHT+IFqEJO7fsRwqHCp3CmpJcapjPFJjz1OlumTChGYkHKZquV9TefNntgSC1xq1QWD6WZyD+IZ X-Received: by 2002:ae9:f816:0:b0:783:afb3:d16 with SMTP id x22-20020ae9f816000000b00783afb30d16mr2018690qkh.30.1707906297341; Wed, 14 Feb 2024 02:24:57 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707906297; cv=pass; d=google.com; s=arc-20160816; b=CLIJ9bpWKPiRsCC+a1bUStruVPcxzl2RXza1M2GnQj0oxsmsrZF9+ldFCCrUb7hiAR Xv4JiXdyQM1JESjn57NMy6jNoqbEErT30o+zVU0KZecuZrYxxo/uQE7jVswdLrjDVns5 rm/RvnQEdhgO95kYUN3z4XnbbmVgjZkr3PmG2mKCibzGKFKe/jBwWeagpru/djS3VdvO jaLkyjaL8p3M0+VNsCJ5njcu0fg/xanA0zCcHjxgP8pVdl/xws76IW6COmV8Y2+NE3G9 sUQjikAXwVuXTZfjYWpoUsCK1clLMHxIw5/owjShxYx8e7C4+pkgCLNWusWNIRvTq05I /9FA== 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=FYby3TOesP6km9evjrbg/UBrl7ABmsNzGB4h8rSybA4=; b=tMIzMIw/vtAEodmTEPKt3qrTvmU2Y9T/Bb1LOJrsG559XzufnSlXF0xAm/hJTMH/2G R/lRsTNAqv9ussiwRTCWVnNRy7TN/KuMFwsNNmMTPNHoWKI9vTzYGJaNlnDI9qp2vmcf Ysf7bQl9L+JpWtUoGqkx0nzM4xFTewmbLg49DA5LZ7HsDebNe6ldY372AS31BRB/Ylj1 q6ahYQYMl9YeAsFkT57HFiNLu9MuFsJi3x8z+TeqWvpliQIJfcrPMwE08HIKih3d8du6 NqxK8jo/IBZLBoXy7fR/fbh5EFOcobP3pZVq16SqcfdDN8YIgdlZD/3C30O7hvSodL/g hpKA==; 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-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65044-linux.lists.archive=gmail.com@vger.kernel.org" X-Forwarded-Encrypted: i=2; AJvYcCVJnbjGqC10VPFa38XqeTPTalzFKBTStjdNUYA9436a11oeXezcp4h1yD/4XFdLLM9JDI3TyXSRMJjh/cuQoNxVktQ48kb4zSChrtn8ng== Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id b9-20020a05620a0cc900b007856e7734e9si3293976qkj.366.2024.02.14.02.24.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Feb 2024 02:24:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-65044-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; 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-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-65044-linux.lists.archive=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 1CCA31C26F19 for ; Wed, 14 Feb 2024 10:24:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4786118E1A; Wed, 14 Feb 2024 10:24:12 +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 To: Paolo Bonzini , Huacai Chen Cc: Tianrui Zhao , Bibo Mao , kvm@vger.kernel.org, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui 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: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: WANG Xuerui 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 --- 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(); } - return ret; } static int kvm_get_one_reg(struct kvm_vcpu *vcpu, -- 2.43.0