From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BD98B2FDC41 for ; Wed, 10 Dec 2025 12:29:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765369779; cv=none; b=rTb6z4nD6AuEQxNNN1Ympp1WB4mg0mWjq/h/r3RdYMHPmEvKYp/16JNvAwVavDENBNdBuUsZ0k805YyDIzux6/KZXXIkSPOuPIm8n6A6NuS0HJ83COAW7sv5yD02PfTtEJCRbk30bqU8EisU77pxmeHt4pe2QMWmv5EovldBJPs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765369779; c=relaxed/simple; bh=Iwjv7VBt0p2bJmgkCxGmHetf59S7PSq3PKGUDdFo1hw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=FWpuQUBcLR95cDrvh7f0i0c40NUO809BDSl6w7Mc1nXBVEdHKkGBWulgIlSbL8/6df/tFPj72oVNUXLHmmXMq8NiM5uk6G1NxdcYhHyJTG/tvIz/6uYIuKTq1iFKhaOYYVVCLZI8IklRFKCntUI7pTxWcZTyCFDhW3QD/ts36yI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8C2FE153B; Wed, 10 Dec 2025 04:29:29 -0800 (PST) Received: from [10.57.90.205] (unknown [10.57.90.205]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1FA123F73B; Wed, 10 Dec 2025 04:29:34 -0800 (PST) Message-ID: Date: Wed, 10 Dec 2025 12:29:33 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 00/10] arm64: Replace TLB invalidation preprocessor macros with C functions Content-Language: en-GB To: Will Deacon , linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , Catalin Marinas , Mark Rutland , Linus Torvalds , Oliver Upton , Marc Zyngier References: <20250711161732.384-1-will@kernel.org> From: Ryan Roberts In-Reply-To: <20250711161732.384-1-will@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/07/2025 17:17, Will Deacon wrote: > Hi all, > > I cooked this series following a complaint from Linus back in March > about our range-based TLB invalidation macro after we fixed an > over-invalidation bug thanks to incorrect handling of its arguments: > > https://lore.kernel.org/all/CAHk-=wgiX0q0WCL+SFwVCYtG7JR3=2Rshse-5J3AO2Y4AgT7Jw@mail.gmail.com/ > > Once I started trying to rework the range macro into a C function, I > spotted a few other opportunities for cleanup and so I've ended up with > this series. > > Testing and feedback welcome. Hi Will, Did this go anywhere/are you planning to post a new version? There are a couple of other cleanups I'd like to do in this area, and also I'd like to add tlbip support. But I don't want to spend time on it if the baseline is going to drastically change. If you're not planning a v2, perhaps I could have a go then extend for the extras I want to do? Thanks, Ryan > > Cheers, > > Will > > Cc: Ard Biesheuvel > Cc: Catalin Marinas > Cc: Ryan Roberts > Cc: Mark Rutland > Cc: Linus Torvalds > Cc: Oliver Upton > Cc: Marc Zyngier > > --->8 > > Will Deacon (10): > arm64: mm: Introduce a C wrapper for by-level TLB invalidation helpers > arm64: mm: Introduce a C wrapper for by-range TLB invalidation helpers > arm64: mm: Implicitly invalidate user ASID based on TLBI operation > arm64: mm: Remove unused 'tlbi_user' argument from > __flush_tlb_range_op() > arm64: mm: Re-implement the __tlbi_level macro in C > arm64: mm: Simplify __TLBI_RANGE_NUM() macro > arm64: mm: Push __TLBI_VADDR() into __tlbi_level() > arm64: mm: Inline __TLBI_VADDR_RANGE() into __tlbi_range() > arm64: mm: Simplify __flush_tlb_range_limit_excess() > arm64: mm: Re-implement the __flush_tlb_range_op macro in C > > arch/arm64/include/asm/tlbflush.h | 230 ++++++++++++++++++------------ > arch/arm64/kernel/sys_compat.c | 2 +- > arch/arm64/kvm/hyp/nvhe/mm.c | 2 +- > arch/arm64/kvm/hyp/pgtable.c | 4 +- > 4 files changed, 140 insertions(+), 98 deletions(-) >