Re: linux-next: build failure after merge of the akpm-current tree

Ira Weiny
2020-05-08T14:51:25Z

On Thu, May 07, 2020 at 07:08:08PM -0700, Andrew Morton wrote:
> On Fri, 8 May 2020 11:43:38 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> > Hi all,
> >
> > On Thu, 7 May 2020 22:17:21 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > >
> > > After merging the akpm-current tree, today's linux-next build (arm
> > > collie_defconfig and many others) failed like this:
> > >
> > > arch/arm/mm/dma-mapping.c: In function 'dma_cache_maint_page':
> > > arch/arm/mm/dma-mapping.c:892:6: error: implicit declaration of function 'kunmap_high' [-Werror=implicit-function-declaration]
> > > kunmap_high(page);
> > > ^
> > > arch/arm/mm/flush.c: In function '__flush_dcache_page':
> > > arch/arm/mm/flush.c:221:6: error: implicit declaration of function 'kunmap_high' [-Werror=implicit-function-declaration]
> > > kunmap_high(page + i);
> > > ^
> > >
> > > Caused by commit
> > >
> > > 6b66ab470b4d ("arch/kunmap: remove duplicate kunmap implementations")
> > >
> > > kunmap_high() is now only declared when CONFIG_HIGHMEM is defined.
> >
> > Is there anything that can be done quickly about this as it broke a
> > large number of builds ...
>
> This? It's based on Ira's v3 series but should work.

Looks like arm is using kmap_high_get() internally which needs a
kunmap_high()...

>
>
> From: Andrew Morton <akpm@linux-foundation.org>
> Subject: arch-kunmap-remove-duplicate-kunmap-implementations-fix
>
> fix CONFIG_HIGHMEM=n build on various architectures
>

Reviewed-by: Ira Weiny <ira.weiny@intel.com>

This should probably be squashed into that patch though...

Andrew do you want a V3.1?

Ira

> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Cc: Ira Weiny <ira.weiny@intel.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> include/linux/highmem.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> --- a/include/linux/highmem.h~arch-kunmap-remove-duplicate-kunmap-implementations-fix
> +++ a/include/linux/highmem.h
> @@ -53,6 +53,7 @@ static inline void *kmap(struct page *pa
> }
>
> void kunmap_high(struct page *page);
> +
> static inline void kunmap(struct page *page)
> {
> might_sleep();
> @@ -111,6 +112,10 @@ static inline void *kmap(struct page *pa
> return page_address(page);
> }
>
> +static inline void kunmap_high(struct page *page)
> +{
> +}
> +
> static inline void kunmap(struct page *page)
> {
> }
> _
>