From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 8EA142F7EE4; Tue, 7 Jul 2026 13:17:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783430244; cv=none; b=s3ra1zRxxBSYvHxBDU8xt+8TLwuJiq3R5KAp401Vxm3HlUqcDPGNS3+OolOTLNvoza821WWx6NXsXIByHa6SSwfrB/ZyAVtwLAwrMbRTt9ubA1VhhPoWxCRwsYsdQDZ6Cwb0wy7DzORNRx1YoLKEMrF/MLzqiqL0X1eMLjS8tQI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783430244; c=relaxed/simple; bh=iehbrl14TRc+Kjff+9ROhsGaGq3QFxCCMoT3iCo/cMI=; h=Date:Message-ID:From:To:Cc:Subject:In-Reply-To:References: MIME-Version:Content-Type; b=IU3q2Q9MklS16gNddEk6g3yw5MPg3r6ymy/wzMO710retsUZuf/otdMXbCf1KtJ1y3UT3arI8Zpc+kD13FjlnIFrz/KSshu+mu7eI/9O/rS1sEDt8gMcFPItCZUrmwcI4pD3MRrlbOPJ1hm4G89wB7C2AsJBg4GfJ6A1xouOEqs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W8Q6XN0c; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="W8Q6XN0c" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27A271F00A3A; Tue, 7 Jul 2026 13:17:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783430243; bh=Ut7j8uUsiPWCH4ATjtSnzZb1UmcGuUchxTeDr5VJ4gs=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=W8Q6XN0cKrAgfZuLhyOvpzIHKgENKKr+2kXw6lqG3JNpD5tM53hAz3e6rQK+MWQPw 8T5kRwlvFrAwT3PhPHOJRkmo4c9yMF7/YI+wL54ggPUSnHM2o3SQcpGDGP8s/48vn0 LACoI0J+H7BqcQwapvpjkecCksES1R+rEEKk8k6vkSnfgQEffGT4mNTNco/RA03Bx9 fsFQOYGxeXmQr+TY8AEzmT07Z7qqH865amzXK6wvAssD97T5K119VeNw6PBwFkm8s0 f5LFSg72RWqPOOUfyYi4w5+76nPm8H+f4ZbTjsbgTSZcd6X6t+E9z2GaFB22E9jvBr 1EVYUntbm/e6A== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wh5ft-00000002Q5g-1JPG; Tue, 07 Jul 2026 13:17:21 +0000 Date: Tue, 07 Jul 2026 14:17:20 +0100 Message-ID: <867bn7os67.wl-maz@kernel.org> From: Marc Zyngier To: Mark Brown Cc: Oliver Upton , Linux Kernel Mailing List , Linux Next Mailing List Subject: Re: linux-next: build warnings after merge of the kvm-arm-fixes tree In-Reply-To: References: User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: broonie@kernel.org, oupton@kernel.org, linux-kernel@vger.kernel.org, linux-next@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false On Tue, 07 Jul 2026 13:11:55 +0100, Mark Brown wrote: > > Hi all, > > After merging the kvm-arm-fixes tree, today's linux-next build > (arm64 defconfig) started generating warnings: > > In file included from /tmp/next/build/include/linux/limits.h:7, > from /tmp/next/build/include/linux/overflow.h:6, > from /tmp/next/build/include/linux/bits.h:32, > from /tmp/next/build/arch/arm64/include/asm/kvm_pgtable.h:10, > from /tmp/next/build/arch/arm64/kvm/hyp/pgtable.c:11: > /tmp/next/build/arch/arm64/kvm/hyp/pgtable.c: In function 'kvm_pgtable_stage2_relax_perms': > /tmp/next/build/include/vdso/limits.h:8:25: warning: overflow in conversion from 'int' to 's8' {aka 'signed char'} changes value from '2147483647' to '-1' [-Woverflow] > 8 | #define INT_MAX ((int)(~0U >> 1)) > | ^ > /tmp/next/build/arch/arm64/include/asm/tlbflush.h:131:33: note: in expansion of macro 'INT_MAX' > 131 | #define TLBI_TTL_UNKNOWN INT_MAX > | ^~~~~~~ > /tmp/next/build/arch/arm64/kvm/hyp/pgtable.c:1361:20: note: in expansion of macro 'TLBI_TTL_UNKNOWN' > 1361 | s8 level = TLBI_TTL_UNKNOWN; > | ^~~~~~~~~~~~~~~~ > In file included from /tmp/next/build/include/linux/limits.h:7, > from /tmp/next/build/include/linux/overflow.h:6, > from /tmp/next/build/include/linux/bits.h:32, > from /tmp/next/build/arch/arm64/include/asm/kvm_pgtable.h:10, > from /tmp/next/build/arch/arm64/kvm/hyp/nvhe/../pgtable.c:11: > /tmp/next/build/arch/arm64/kvm/hyp/nvhe/../pgtable.c: In function 'kvm_pgtable_stage2_relax_perms': > /tmp/next/build/include/vdso/limits.h:8:25: warning: overflow in conversion from 'int' to 's8' {aka 'signed char'} changes value from '2147483647' to '-1' [-Woverflow] > 8 | #define INT_MAX ((int)(~0U >> 1)) > | ^ > /tmp/next/build/arch/arm64/include/asm/tlbflush.h:131:33: note: in expansion of macro 'INT_MAX' > 131 | #define TLBI_TTL_UNKNOWN INT_MAX > | ^~~~~~~ > /tmp/next/build/arch/arm64/kvm/hyp/nvhe/../pgtable.c:1361:20: note: in expansion of macro 'TLBI_TTL_UNKNOWN' > 1361 | s8 level = TLBI_TTL_UNKNOWN; > | ^~~~~~~~~~~~~~~~ > > > Caused by commit > > 100baf0184896 (KVM: arm64: Ensure level is always initialized when relaxing perms) > > I imagine this will cause an allyesconfig build failure when I get to > that due to -Werror. Crap, I don't know how I missed that one! And the whole thing is pretty dodgy anyway: - level starts as s8 - passed to __kvm_tlb_flush_vmid_ipa_nsh() as int - passed to __tlbi_level() as u32 - compared to the value 3 The problem is that we are conflating the level of a descriptor and the TTL, which may or may not be related. I'm minded to queue something like this on top. Oliver? Thanks for the heads up, M. diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c index 8754c99c22f2f..70dceb20dfada 100644 --- a/arch/arm64/kvm/hyp/pgtable.c +++ b/arch/arm64/kvm/hyp/pgtable.c @@ -1356,7 +1356,7 @@ int kvm_pgtable_stage2_relax_perms(struct kvm_pgtable *pgt, u64 addr, enum kvm_pgtable_prot prot, enum kvm_pgtable_walk_flags flags) { kvm_pte_t xn = 0, set = 0, clr = 0; - s8 level = TLBI_TTL_UNKNOWN; + s8 level; int ret; if (prot & KVM_PTE_LEAF_ATTR_HI_SW) @@ -1379,7 +1379,8 @@ int kvm_pgtable_stage2_relax_perms(struct kvm_pgtable *pgt, u64 addr, ret = stage2_update_leaf_attrs(pgt, addr, 1, set, clr, NULL, &level, flags); if (!ret || ret == -EAGAIN) - kvm_call_hyp(__kvm_tlb_flush_vmid_ipa_nsh, pgt->mmu, addr, level); + kvm_call_hyp(__kvm_tlb_flush_vmid_ipa_nsh, pgt->mmu, addr, + (ret == -EAGAIN) ? TLBI_TTL_UNKNOWN : level); return ret; } -- Without deviation from the norm, progress is not possible.