The fix introduced by e4decc90 to fix the UP case for 32bit x86, however
that broke the SMP case that was working previously. Add ifdef so the dummy
function only show up for 32bit UP case only.
Fix: e4decc90 mm,x86: native_pud_clear missing on i386 build
Reported-by: Alexander Kapshuk <[email protected]>
Signed-off-by: Dave Jiang <[email protected]>
---
arch/x86/include/asm/pgtable-3level.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
index 50d35e3..8f50fb3 100644
--- a/arch/x86/include/asm/pgtable-3level.h
+++ b/arch/x86/include/asm/pgtable-3level.h
@@ -121,9 +121,11 @@ static inline void native_pmd_clear(pmd_t *pmd)
*(tmp + 1) = 0;
}
+#ifndef CONFIG_SMP
static inline void native_pud_clear(pud_t *pudp)
{
}
+#endif
static inline void pud_clear(pud_t *pudp)
{
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
On 02/15/2017 12:31 PM, Dave Jiang wrote:
> The fix introduced by e4decc90 to fix the UP case for 32bit x86, however
> that broke the SMP case that was working previously. Add ifdef so the dummy
> function only show up for 32bit UP case only.
Could you elaborate a bit on how it broke things?
> Fix: e4decc90 mm,x86: native_pud_clear missing on i386 build
Which tree is that in, btw?
On 02/16/2017 08:42 AM, Dave Hansen wrote:
> On 02/15/2017 12:31 PM, Dave Jiang wrote:
>> The fix introduced by e4decc90 to fix the UP case for 32bit x86, however
>> that broke the SMP case that was working previously. Add ifdef so the dummy
>> function only show up for 32bit UP case only.
>
> Could you elaborate a bit on how it broke things?
So originally 0-day build found that commit a10a1701 (mm, x86: add
support for PUD-sized transparent hugepages) is breaking 32bit x86 UP
config because native_pud_clear() was missing to satisfy
arch/x86/include/asm/pgtable.h. I added a dummy function to satisfy that
with commit e4decc90 (mm,x86: native_pud_clear missing on i386 build).
However in the process of doing that, I broke the 32bit x86 SMP config
that was working before.
>
>> Fix: e4decc90 mm,x86: native_pud_clear missing on i386 build
>
> Which tree is that in, btw?
>
linux-next-20170214 I believe
On 02/15/2017 12:31 PM, Dave Jiang wrote:
> The fix introduced by e4decc90 to fix the UP case for 32bit x86, however
> that broke the SMP case that was working previously. Add ifdef so the dummy
> function only show up for 32bit UP case only.
>
> Fix: e4decc90 mm,x86: native_pud_clear missing on i386 build
>
> Reported-by: Alexander Kapshuk <[email protected]>
> Signed-off-by: Dave Jiang <[email protected]>
> ---
> arch/x86/include/asm/pgtable-3level.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
> index 50d35e3..8f50fb3 100644
> --- a/arch/x86/include/asm/pgtable-3level.h
> +++ b/arch/x86/include/asm/pgtable-3level.h
> @@ -121,9 +121,11 @@ static inline void native_pmd_clear(pmd_t *pmd)
> *(tmp + 1) = 0;
> }
>
> +#ifndef CONFIG_SMP
> static inline void native_pud_clear(pud_t *pudp)
> {
> }
> +#endif
>
> static inline void pud_clear(pud_t *pudp)
> {
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to [email protected]. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
>
This breaks one of the Fedora configurations as of
e5d56efc97f8240d0b5d66c03949382b6d7e5570
In file included from ./include/linux/mm.h:68:0,
from ./include/linux/highmem.h:7,
from ./include/linux/bio.h:21,
from ./include/linux/writeback.h:205,
from ./include/linux/memcontrol.h:30,
from ./include/linux/swap.h:8,
from ./include/linux/suspend.h:4,
from arch/x86/kernel/asm-offsets.c:12:
./arch/x86/include/asm/pgtable.h: In function 'native_local_pudp_get_and_clear':
./arch/x86/include/asm/pgtable.h:888:2: error: implicit declaration of function 'native_pud_clear';did you mean 'native_pmd_clear'? [-Werror=implicit-function-declaration]
native_pud_clear(pudp);
^~~~~~~~~~~~~~~~
Kernel configuration attached. I'm probably just going to revert
this part unless someone sends me a better fix.
Thanks,
Laura