[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240919090407.30c30759@canb.auug.org.au>
Date: Thu, 19 Sep 2024 09:04:07 +1000
From: Stephen Rothwell <sfr@...b.auug.org.au>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Kees Cook <kees@...nel.org>, Jeff Xu <jeffxu@...omium.org>, Linux Kernel
Mailing List <linux-kernel@...r.kernel.org>, Linux Next Mailing List
<linux-next@...r.kernel.org>, Yu Zhao <yuzhao@...gle.com>
Subject: Re: linux-next: manual merge of the execve tree with the mm tree
Hi all,
On Mon, 9 Sep 2024 17:18:43 +1000 Stephen Rothwell <sfr@...b.auug.org.au> wrote:
>
> Today's linux-next merge of the execve tree got a conflict in:
>
> include/linux/mm.h
>
> between commits:
>
> 99ab6f0a6854 ("mm/codetag: fix pgalloc_tag_split()")
> 4d42ecdbd2fb ("mm/codetag: add pgalloc_tag_copy()")
>
> from the mm-unstable branch of the mm tree and commit:
>
> 44f65d900698 ("binfmt_elf: mseal address zero")
>
> from the execve tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> diff --cc include/linux/mm.h
> index 79d69e998649,a178c15812eb..000000000000
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@@ -4148,61 -4201,14 +4148,71 @@@ void vma_pgtable_walk_end(struct vm_are
>
> int reserve_mem_find_by_name(const char *name, phys_addr_t *start, phys_addr_t *size);
>
> +#ifdef CONFIG_MEM_ALLOC_PROFILING
> +static inline void pgalloc_tag_split(struct folio *folio, int old_order, int new_order)
> +{
> + int i;
> + struct alloc_tag *tag;
> + unsigned int nr_pages = 1 << new_order;
> +
> + if (!mem_alloc_profiling_enabled())
> + return;
> +
> + tag = pgalloc_tag_get(&folio->page);
> + if (!tag)
> + return;
> +
> + for (i = nr_pages; i < (1 << old_order); i += nr_pages) {
> + union codetag_ref *ref = get_page_tag_ref(folio_page(folio, i));
> +
> + if (ref) {
> + /* Set new reference to point to the original tag */
> + alloc_tag_ref_set(ref, tag);
> + put_page_tag_ref(ref);
> + }
> + }
> +}
> +
> +static inline void pgalloc_tag_copy(struct folio *new, struct folio *old)
> +{
> + struct alloc_tag *tag;
> + union codetag_ref *ref;
> +
> + tag = pgalloc_tag_get(&old->page);
> + if (!tag)
> + return;
> +
> + ref = get_page_tag_ref(&new->page);
> + if (!ref)
> + return;
> +
> + /* Clear the old ref to the original allocation tag. */
> + clear_page_tag_ref(&old->page);
> + /* Decrement the counters of the tag on get_new_folio. */
> + alloc_tag_sub(ref, folio_nr_pages(new));
> +
> + __alloc_tag_ref_set(ref, tag);
> +
> + put_page_tag_ref(ref);
> +}
> +#else /* !CONFIG_MEM_ALLOC_PROFILING */
> +static inline void pgalloc_tag_split(struct folio *folio, int old_order, int new_order)
> +{
> +}
> +
> +static inline void pgalloc_tag_copy(struct folio *new, struct folio *old)
> +{
> +}
> +#endif /* CONFIG_MEM_ALLOC_PROFILING */
> +
> + #ifdef CONFIG_64BIT
> + int do_mseal(unsigned long start, size_t len_in, unsigned long flags);
> + #else
> + static inline int do_mseal(unsigned long start, size_t len_in, unsigned long flags)
> + {
> + /* noop on 32 bit */
> + return 0;
> + }
> + #endif
> +
> #endif /* _LINUX_MM_H */
This is now a conflict between the mm-stable tree and Linus' tree.
--
Cheers,
Stephen Rothwell
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists