Subject: Re: linux-next: manual merge of the kvm tree with the arm64 tree

From: Catalin Marinas <[email-masked]>
Date: Mon, 28 Oct 2024 17:44:32 +0000

On Mon, Oct 28, 2024 at 05:03:10PM +1100, Stephen Rothwell wrote:
> Today's linux-next merge of the kvm tree got a conflict in:
> 
>   arch/arm64/kvm/guest.c
> 
> between commit:
> 
>   25c17c4b55de ("hugetlb: arm64: add mte support")
> 
> from the arm64 tree and commit:
> 
>   570d666c11af ("KVM: arm64: Use __gfn_to_page() when copying MTE tags to/from userspace")
> 
> from the kvm tree.
[...]
> diff --cc arch/arm64/kvm/guest.c
> index e738a353b20e,4cd7ffa76794..000000000000
> --- a/arch/arm64/kvm/guest.c
> +++ b/arch/arm64/kvm/guest.c
> @@@ -1051,13 -1051,11 +1051,12 @@@ int kvm_vm_ioctl_mte_copy_tags(struct k
>   	}
>   
>   	while (length > 0) {
> - 		kvm_pfn_t pfn = gfn_to_pfn_prot(kvm, gfn, write, NULL);
> + 		struct page *page = __gfn_to_page(kvm, gfn, write);
>   		void *maddr;
>   		unsigned long num_tags;
> - 		struct page *page;
>  +		struct folio *folio;
>   
> - 		if (is_error_noslot_pfn(pfn)) {
> + 		if (!page) {
>   			ret = -EFAULT;
>   			goto out;
>   		}
> @@@ -1099,12 -1090,8 +1097,12 @@@
>   			/* uaccess failed, don't leave stale tags */
>   			if (num_tags != MTE_GRANULES_PER_PAGE)
>   				mte_clear_page_tags(maddr);
>  -			set_page_mte_tagged(page);
>  +			if (folio_test_hugetlb(folio))
>  +				folio_set_hugetlb_mte_tagged(folio);
>  +			else
>  +				set_page_mte_tagged(page);
>  +
> - 			kvm_release_pfn_dirty(pfn);
> + 			kvm_release_page_dirty(page);
>   		}
>   
>   		if (num_tags != MTE_GRANULES_PER_PAGE) {

Thanks Stephen. The resolution looks fine and I'm happy to leave to
Linus to fix it up during the merging window.

To the KVM maintainers, if you prefer a conflict-free linux-next, feel
free to pull the arm64 for-next/mte branch with the above commit (and a
kselftest). The other way around is not something I'd suggest we do,
there are over 80 patches in that kvm series.

-- 
Catalin