tree: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/resource head: 77b15942fccf15e4e2733a16408c570995fa49ca commit: eb18a3a645978f8f8f0febb36c66ef7ebd1c3957 [6/10] powerpc: Implement ioremap_wt() for PPC32 config: powerpc-lite5200b_defconfig (attached as .config) compiler: powerpc-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout eb18a3a645978f8f8f0febb36c66ef7ebd1c3957 # save the attached .config to linux build tree make.cross ARCH=powerpc All error/warnings (new ones prefixed by >>): In file included from arch/powerpc/include/asm/book3s/32/pgtable.h:94:0, from arch/powerpc/include/asm/book3s/pgtable.h:7, from arch/powerpc/include/asm/pgtable.h:16, from include/linux/mm.h:68, from arch/powerpc/mm/pgtable_32.c:25: >> arch/powerpc/include/asm/io.h:758:45: error: expected declaration specifiers or '...' before '(' token #define ioremap_nocache(addr, size) ioremap((addr), (size)) ^ >> include/asm-generic/iomap.h:78:20: note: in expansion of macro 'ioremap_nocache' #define ioremap_wt ioremap_nocache ^~~~~~~~~~~~~~~ >> arch/powerpc/mm/pgtable_32.c:92:1: note: in expansion of macro 'ioremap_wt' ioremap_wt(phys_addr_t addr, unsigned long size) ^~~~~~~~~~ arch/powerpc/include/asm/io.h:758:53: error: expected declaration specifiers or '...' before '(' token #define ioremap_nocache(addr, size) ioremap((addr), (size)) ^ >> include/asm-generic/iomap.h:78:20: note: in expansion of macro 'ioremap_nocache' #define ioremap_wt ioremap_nocache ^~~~~~~~~~~~~~~ >> arch/powerpc/mm/pgtable_32.c:92:1: note: in expansion of macro 'ioremap_wt' ioremap_wt(phys_addr_t addr, unsigned long size) ^~~~~~~~~~ In file included from include/linux/linkage.h:6:0, from include/linux/kernel.h:6, from arch/powerpc/mm/pgtable_32.c:22: >> include/asm-generic/iomap.h:78:20: error: 'ioremap_nocache' undeclared here (not in a function) #define ioremap_wt ioremap_nocache ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ >> arch/powerpc/mm/pgtable_32.c:97:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(ioremap_wt); ^~~~~~~~~~~~~ arch/powerpc/mm/pgtable_32.c:97:15: note: in expansion of macro 'ioremap_wt' EXPORT_SYMBOL(ioremap_wt); ^~~~~~~~~~ vim +/ioremap_wt +92 arch/powerpc/mm/pgtable_32.c 16 * modify it under the terms of the GNU General Public License 17 * as published by the Free Software Foundation; either version 18 * 2 of the License, or (at your option) any later version. 19 * 20 */ 21 > 22 #include <linux/kernel.h> 23 #include <linux/module.h> 24 #include <linux/types.h> > 25 #include <linux/mm.h> 26 #include <linux/vmalloc.h> 27 #include <linux/init.h> 28 #include <linux/highmem.h> 29 #include <linux/memblock.h> 30 #include <linux/slab.h> 31 32 #include <asm/pgtable.h> 33 #include <asm/pgalloc.h> 34 #include <asm/fixmap.h> 35 #include <asm/io.h> 36 #include <asm/setup.h> 37 38 #include "mmu_decl.h" 39 40 unsigned long ioremap_bot; 41 EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */ 42 43 extern char etext[], _stext[], _sinittext[], _einittext[]; 44 45 __ref pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) 46 { 47 pte_t *pte; 48 49 if (slab_is_available()) { 50 pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO); 51 } else { 52 pte = __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE)); 53 if (pte) 54 clear_page(pte); 55 } 56 return pte; 57 } 58 59 pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) 60 { 61 struct page *ptepage; 62 63 gfp_t flags = GFP_KERNEL | __GFP_ZERO; 64 65 ptepage = alloc_pages(flags, 0); 66 if (!ptepage) 67 return NULL; 68 if (!pgtable_page_ctor(ptepage)) { 69 __free_page(ptepage); 70 return NULL; 71 } 72 return ptepage; 73 } 74 75 void __iomem * 76 ioremap(phys_addr_t addr, unsigned long size) 77 { 78 return __ioremap_caller(addr, size, _PAGE_NO_CACHE | _PAGE_GUARDED, 79 __builtin_return_address(0)); 80 } 81 EXPORT_SYMBOL(ioremap); 82 83 void __iomem * 84 ioremap_wc(phys_addr_t addr, unsigned long size) 85 { 86 return __ioremap_caller(addr, size, _PAGE_NO_CACHE, 87 __builtin_return_address(0)); 88 } 89 EXPORT_SYMBOL(ioremap_wc); 90 91 void __iomem * > 92 ioremap_wt(phys_addr_t addr, unsigned long size) 93 { 94 return __ioremap_caller(addr, size, _PAGE_WRITETHRU, 95 __builtin_return_address(0)); 96 } > 97 EXPORT_SYMBOL(ioremap_wt); 98 99 void __iomem * 100 ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags) --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip