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

Andrew Morton
2020-05-08T02:08:10Z

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.

From: Andrew Morton <akpm@linux-foundation.org>
Subject: arch-kunmap-remove-duplicate-kunmap-implementations-fix

fix CONFIG_HIGHMEM=n build on various architectures

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)
{
}
_