mm,x86: fix SMP x86 32bit build for native_pud_clear()

Submitted by Dave Jiang on Feb. 15, 2017, 8:31 p.m.

Details

Message ID 148719066814.31111.3239231168815337012.stgit@djiang5-desk3.ch.intel.com
State New
Headers show

Commit Message

Dave Jiang Feb. 15, 2017, 8:31 p.m.
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 <alexander.kapshuk@gmail.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
 arch/x86/include/asm/pgtable-3level.h |    2 ++
 1 file changed, 2 insertions(+)

Comments

Dave Hansen Feb. 16, 2017, 3:42 p.m.
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?
Dave Jiang Feb. 16, 2017, 4:27 p.m.
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

Patch hide | download patch | download mbox

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