include/asm-generic/5level-fixup.h: fix variable 'p4d' set but not used
A compiler throws a warning on an arm64 system since commit 9849a5697d
("arch, mm: convert all architectures to use 5level-fixup.h"),
  mm/kasan/init.c: In function 'kasan_free_p4d':
  mm/kasan/init.c:344:9: warning: variable 'p4d' set but not used [-Wunused-but-set-variable]
   p4d_t *p4d;
          ^~~
because p4d_none() in "5level-fixup.h" is compiled away while it is a
static inline function in "pgtable-nopud.h".
However, if converted p4d_none() to a static inline there, powerpc would
be unhappy as it reads those in assembler language in
"arch/powerpc/include/asm/book3s/64/pgtable.h", so it needs to skip
assembly include for the static inline C function.
While at it, converted a few similar functions to be consistent with the
ones in "pgtable-nopud.h".
Link: http://lkml.kernel.org/r/20190806232917.881-1-cai@lca.pw
Signed-off-by: Qian Cai <cai@lca.pw>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									6a2aeab59e
								
							
						
					
					
						commit
						0cfaee2af3
					
				| @ -19,9 +19,24 @@ | ||||
| 
 | ||||
| #define p4d_alloc(mm, pgd, address)	(pgd) | ||||
| #define p4d_offset(pgd, start)		(pgd) | ||||
| #define p4d_none(p4d)			0 | ||||
| #define p4d_bad(p4d)			0 | ||||
| #define p4d_present(p4d)		1 | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| static inline int p4d_none(p4d_t p4d) | ||||
| { | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static inline int p4d_bad(p4d_t p4d) | ||||
| { | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static inline int p4d_present(p4d_t p4d) | ||||
| { | ||||
| 	return 1; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #define p4d_ERROR(p4d)			do { } while (0) | ||||
| #define p4d_clear(p4d)			pgd_clear(p4d) | ||||
| #define p4d_val(p4d)			pgd_val(p4d) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user