[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<SJ0PR07MB8631E1C88FEE6F377581BE48D18DA@SJ0PR07MB8631.namprd07.prod.outlook.com>
Date: Fri, 16 Jan 2026 17:59:09 +0000
From: William Tambe <williamt@...ence.com>
To: Andrew Morton <akpm@...ux-foundation.org>
CC: "linux-mm@...ck.org" <linux-mm@...ck.org>,
"linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>,
"jcmvbkbc@...il.com" <jcmvbkbc@...il.com>
Subject: RE: [PATCH] mm/highmem: fix __kmap_to_page() build error
> -----Original Message-----
> From: Andrew Morton <akpm@...ux-foundation.org>
> Sent: Friday, January 16, 2026 11:48 AM
> To: William Tambe <williamt@...ence.com>
> Cc: linux-mm@...ck.org; linux-kernel@...r.kernel.org; jcmvbkbc@...il.com
> Subject: Re: [PATCH] mm/highmem: fix __kmap_to_page() build error
>
> EXTERNAL MAIL
>
>
> On Fri, 16 Jan 2026 17:18:21 +0000 William Tambe <williamt@...ence.com>
> wrote:
>
> > >From 706fa431358390713c47667f6bcaecce56d071cc Mon Sep 17
> 00:00:00 2001
> > From: William Tambe <williamt@...ence.com>
> > Date: Thu, 11 Dec 2025 12:38:19 -0800
> > Subject: [PATCH] mm/highmem: fix __kmap_to_page() build error
> >
> > This changes fixes following build error which is probably a miss from:
> > ef6e06b2ef87 highmem: fix kmap_to_page() for kmap_local_page()
> addresses
> >
> > mm/highmem.c:184:66: error: 'pteval' undeclared (first use in this
> > function); did you mean 'pte_val'?
> > 184 | idx = arch_kmap_local_map_idx(i, pte_pfn(pteval));
> >
> > In __kmap_to_page(), pteval is used but does not exist in the function.
> >
> > ...
> >
> > --- a/mm/highmem.c
> > +++ b/mm/highmem.c
> > @@ -180,12 +180,13 @@ struct page *__kmap_to_page(void *vaddr)
> > for (i = 0; i < kctrl->idx; i++) {
> > unsigned long base_addr;
> > int idx;
> > + pte_t pteval = kctrl->pteval[i];
> >
> > idx = arch_kmap_local_map_idx(i, pte_pfn(pteval));
> > base_addr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
> >
> > if (base_addr == base)
> > - return pte_page(kctrl->pteval[i]);
> > + return pte_page(pteval);
> > }
> > }
>
> lgtm, thanks. Seems to affect only xtensa?
>
> I wonder why it took three years to find this.
It occurs in configurations with aliased cache.
Most people probably built with cores that don't have cache aliasing.
In that case involved macros just drop the undefined argument hiding breakage.
There is a description of cache aliasing in:
arch/xtensa/include/asm/page.h
Powered by blists - more mailing lists