Re: linux-next: manual merge of the folio tree with the xfs tree

From: Darrick J. Wong
Date: Wed Aug 11 2021 - 10:44:49 EST


On Wed, Aug 11, 2021 at 07:43:45AM -0700, Darrick J. Wong wrote:
> On Wed, Aug 11, 2021 at 05:42:31PM +1000, Stephen Rothwell wrote:
> > Hi all,
> >
> > Today's linux-next merge of the folio tree got a conflict in:
> >
> > mm/util.c
> >
> > between commit:
> >
> > de2860f46362 ("mm: Add kvrealloc()")
> >
> > from the xfs tree and commit:
> >
> > 3bc0556bade4 ("mm: Add folio_raw_mapping()")
> >
> > from the folio 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.
>
> Hmmm. Seeing as krealloc lives in mm/slab_common.c anyway, I might just
> move this function there, and (hopefully) avoid this conflict.

Never mind, didn't work.

--D

>
> --D
>
> >
> > --
> > Cheers,
> > Stephen Rothwell
> >
> > diff --cc mm/util.c
> > index d06e48b28eec,e8fa30e48447..000000000000
> > --- a/mm/util.c
> > +++ b/mm/util.c
> > @@@ -660,31 -635,6 +660,21 @@@ void kvfree_sensitive(const void *addr
> > }
> > EXPORT_SYMBOL(kvfree_sensitive);
> >
> > +void *kvrealloc(const void *p, size_t oldsize, size_t newsize, gfp_t flags)
> > +{
> > + void *newp;
> > +
> > + if (oldsize >= newsize)
> > + return (void *)p;
> > + newp = kvmalloc(newsize, flags);
> > + if (!newp)
> > + return NULL;
> > + memcpy(newp, p, oldsize);
> > + kvfree(p);
> > + return newp;
> > +}
> > +EXPORT_SYMBOL(kvrealloc);
> > +
> > - static inline void *__page_rmapping(struct page *page)
> > - {
> > - unsigned long mapping;
> > -
> > - mapping = (unsigned long)page->mapping;
> > - mapping &= ~PAGE_MAPPING_FLAGS;
> > -
> > - return (void *)mapping;
> > - }
> > -
> > /* Neutral page->mapping pointer to address_space or anon_vma or other */
> > void *page_rmapping(struct page *page)
> > {
>
>