[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJuCfpGgqmdM27KUkH2Yf3pPkwxgktDpzYkOMrW=Xc96cxPfXA@mail.gmail.com>
Date: Tue, 19 Nov 2024 17:43:18 -0800
From: Suren Baghdasaryan <surenb@...gle.com>
To: Stephen Rothwell <sfr@...b.auug.org.au>
Cc: Andrew Morton <akpm@...ux-foundation.org>, Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>, Mark Brown <broonie@...nel.org>
Subject: Re: linux-next: manual merge of the arm64 tree with the mm tree
On Tue, Nov 19, 2024 at 5:09 PM Suren Baghdasaryan <surenb@...gle.com> wrote:
>
> On Tue, Nov 19, 2024 at 5:01 PM Stephen Rothwell <sfr@...b.auug.org.au> wrote:
> >
> > Hi all,
> >
> > On Mon, 28 Oct 2024 11:10:58 +1100 Stephen Rothwell <sfr@...b.auug.org.au> wrote:
> > >
> > > Today's linux-next merge of the arm64 tree got a conflict in:
> > >
> > > include/linux/mm.h
> > >
> > > between commit:
> > >
> > > e87ec503cf2e ("mm/codetag: uninline and move pgalloc_tag_copy and pgalloc_tag_split")
> > >
> > > from the mm-unstable branch of the mm tree and commit:
> > >
> > > 91e102e79740 ("prctl: arch-agnostic prctl for shadow stack")
> > >
> > > from the arm64 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.
> > >
> > > --
> > > Cheers,
> > > Stephen Rothwell
> > >
> > > diff --cc include/linux/mm.h
> > > index 086ba524d3ba,8852c39c7695..000000000000
> > > --- a/include/linux/mm.h
> > > +++ b/include/linux/mm.h
> > > @@@ -4166,4 -4174,65 +4178,8 @@@ static inline int do_mseal(unsigned lon
> > > }
> > > #endif
> > >
> > > -#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 */
> > > -
> > > + int arch_get_shadow_stack_status(struct task_struct *t, unsigned long __user *status);
> > > + int arch_set_shadow_stack_status(struct task_struct *t, unsigned long status);
> > > + int arch_lock_shadow_stack_status(struct task_struct *t, unsigned long status);
> > > +
> > > #endif /* _LINUX_MM_H */
> >
> > This is now a conflict between the mm-stable tree and Linus' tree.
>
> Let me try to manually apply it to Linus' ToT and will send a replacement patch.
Attached patch should apply to Linus' tree but please make sure the
following two patches from mm-stable are merged before this one
because there are dependencies between them:
ed265529d39a mm/codetag: fix arg in pgalloc_tag_copy alloc_tag_sub
42895a861244 alloc_tag: introduce pgtag_ref_handle to abstract page
tag references
>
> >
> > --
> > Cheers,
> > Stephen Rothwell
View attachment "0001-mm-codetag-uninline-and-move-pgalloc_tag_copy-and-pg.patch" of type "text/x-patch" (5954 bytes)
Powered by blists - more mailing lists