From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753506AbdBDBfZ (ORCPT ); Fri, 3 Feb 2017 20:35:25 -0500 Received: from mga07.intel.com ([134.134.136.100]:54928 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753329AbdBDBfX (ORCPT ); Fri, 3 Feb 2017 20:35:23 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,331,1477983600"; d="gz'50?scan'50,208,50";a="60688947" Date: Sat, 4 Feb 2017 09:34:36 +0800 From: kbuild test robot To: Ingo Molnar Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org, tipbuild@zytor.com Subject: [tip:WIP.sched/core 144/144] arch/powerpc/lib/feature-fixups.c:178:16: error: '__start___mmu_ftr_fixup' undeclared Message-ID: <201702040932.iUl2hcd5%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="VS++wcV0S1rZb1Fb" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.sched/core head: f83f0b0647162b099f62e62c203b1cfb90b40239 commit: f83f0b0647162b099f62e62c203b1cfb90b40239 [144/144] sched/headers: Remove the dependency from config: powerpc-sam440ep_defconfig (attached as .config) compiler: powerpc-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout f83f0b0647162b099f62e62c203b1cfb90b40239 # save the attached .config to linux build tree make.cross ARCH=powerpc All errors (new ones prefixed by >>): In file included from arch/powerpc/lib/feature-fixups.c:24:0: arch/powerpc/lib/feature-fixups.c: In function 'apply_feature_fixups': >> arch/powerpc/lib/feature-fixups.c:178:16: error: '__start___mmu_ftr_fixup' undeclared (first use in this function) PTRRELOC(&__start___mmu_ftr_fixup), ^ arch/powerpc/include/asm/setup.h:22:30: note: in definition of macro 'PTRRELOC' #define PTRRELOC(x) ((typeof(x)) add_reloc_offset((unsigned long)(x))) ^ arch/powerpc/lib/feature-fixups.c:178:16: note: each undeclared identifier is reported only once for each function it appears in PTRRELOC(&__start___mmu_ftr_fixup), ^ arch/powerpc/include/asm/setup.h:22:30: note: in definition of macro 'PTRRELOC' #define PTRRELOC(x) ((typeof(x)) add_reloc_offset((unsigned long)(x))) ^ >> arch/powerpc/lib/feature-fixups.c:179:16: error: '__stop___mmu_ftr_fixup' undeclared (first use in this function) PTRRELOC(&__stop___mmu_ftr_fixup)); ^ arch/powerpc/include/asm/setup.h:22:30: note: in definition of macro 'PTRRELOC' #define PTRRELOC(x) ((typeof(x)) add_reloc_offset((unsigned long)(x))) ^ arch/powerpc/lib/feature-fixups.c: In function 'setup_feature_keys': >> arch/powerpc/lib/feature-fixups.c:202:2: error: implicit declaration of function 'mmu_feature_keys_init' [-Werror=implicit-function-declaration] mmu_feature_keys_init(); ^~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors vim +/__start___mmu_ftr_fixup +178 arch/powerpc/lib/feature-fixups.c 362e7701 Michael Ellerman 2008-06-24 18 #include 362e7701 Michael Ellerman 2008-06-24 19 #include 51c52e86 Michael Ellerman 2008-06-24 20 #include 51c52e86 Michael Ellerman 2008-06-24 21 #include d715e433 Anton Blanchard 2011-11-14 22 #include d715e433 Anton Blanchard 2011-11-14 23 #include 9402c684 Benjamin Herrenschmidt 2016-07-05 @24 #include 9402c684 Benjamin Herrenschmidt 2016-07-05 25 #include 51c52e86 Michael Ellerman 2008-06-24 26 51c52e86 Michael Ellerman 2008-06-24 27 struct fixup_entry { 51c52e86 Michael Ellerman 2008-06-24 28 unsigned long mask; 51c52e86 Michael Ellerman 2008-06-24 29 unsigned long value; 51c52e86 Michael Ellerman 2008-06-24 30 long start_off; 51c52e86 Michael Ellerman 2008-06-24 31 long end_off; fac23fe4 Michael Ellerman 2008-06-24 32 long alt_start_off; fac23fe4 Michael Ellerman 2008-06-24 33 long alt_end_off; 51c52e86 Michael Ellerman 2008-06-24 34 }; 51c52e86 Michael Ellerman 2008-06-24 35 9b1a735d Michael Ellerman 2008-06-24 36 static unsigned int *calc_addr(struct fixup_entry *fcur, long offset) 51c52e86 Michael Ellerman 2008-06-24 37 { 9b1a735d Michael Ellerman 2008-06-24 38 /* 9b1a735d Michael Ellerman 2008-06-24 39 * We store the offset to the code as a negative offset from 9b1a735d Michael Ellerman 2008-06-24 40 * the start of the alt_entry, to support the VDSO. This 9b1a735d Michael Ellerman 2008-06-24 41 * routine converts that back into an actual address. 9b1a735d Michael Ellerman 2008-06-24 42 */ 9b1a735d Michael Ellerman 2008-06-24 43 return (unsigned int *)((unsigned long)fcur + offset); 9b1a735d Michael Ellerman 2008-06-24 44 } 9b1a735d Michael Ellerman 2008-06-24 45 9b1a735d Michael Ellerman 2008-06-24 46 static int patch_alt_instruction(unsigned int *src, unsigned int *dest, 9b1a735d Michael Ellerman 2008-06-24 47 unsigned int *alt_start, unsigned int *alt_end) 9b1a735d Michael Ellerman 2008-06-24 48 { 9b1a735d Michael Ellerman 2008-06-24 49 unsigned int instr; 9b1a735d Michael Ellerman 2008-06-24 50 9b1a735d Michael Ellerman 2008-06-24 51 instr = *src; 9b1a735d Michael Ellerman 2008-06-24 52 9b1a735d Michael Ellerman 2008-06-24 53 if (instr_is_relative_branch(*src)) { 9b1a735d Michael Ellerman 2008-06-24 54 unsigned int *target = (unsigned int *)branch_target(src); 9b1a735d Michael Ellerman 2008-06-24 55 9b1a735d Michael Ellerman 2008-06-24 56 /* Branch within the section doesn't need translating */ 9b1a735d Michael Ellerman 2008-06-24 57 if (target < alt_start || target >= alt_end) { 9b1a735d Michael Ellerman 2008-06-24 58 instr = translate_branch(dest, src); 9b1a735d Michael Ellerman 2008-06-24 59 if (!instr) 9b1a735d Michael Ellerman 2008-06-24 60 return 1; 9b1a735d Michael Ellerman 2008-06-24 61 } 9b1a735d Michael Ellerman 2008-06-24 62 } 9b1a735d Michael Ellerman 2008-06-24 63 9b1a735d Michael Ellerman 2008-06-24 64 patch_instruction(dest, instr); 9b1a735d Michael Ellerman 2008-06-24 65 9b1a735d Michael Ellerman 2008-06-24 66 return 0; 9b1a735d Michael Ellerman 2008-06-24 67 } 9b1a735d Michael Ellerman 2008-06-24 68 9b1a735d Michael Ellerman 2008-06-24 69 static int patch_feature_section(unsigned long value, struct fixup_entry *fcur) 9b1a735d Michael Ellerman 2008-06-24 70 { 9b1a735d Michael Ellerman 2008-06-24 71 unsigned int *start, *end, *alt_start, *alt_end, *src, *dest; 9b1a735d Michael Ellerman 2008-06-24 72 9b1a735d Michael Ellerman 2008-06-24 73 start = calc_addr(fcur, fcur->start_off); 9b1a735d Michael Ellerman 2008-06-24 74 end = calc_addr(fcur, fcur->end_off); 9b1a735d Michael Ellerman 2008-06-24 75 alt_start = calc_addr(fcur, fcur->alt_start_off); 9b1a735d Michael Ellerman 2008-06-24 76 alt_end = calc_addr(fcur, fcur->alt_end_off); 9b1a735d Michael Ellerman 2008-06-24 77 9b1a735d Michael Ellerman 2008-06-24 78 if ((alt_end - alt_start) > (end - start)) 9b1a735d Michael Ellerman 2008-06-24 79 return 1; 51c52e86 Michael Ellerman 2008-06-24 80 51c52e86 Michael Ellerman 2008-06-24 81 if ((value & fcur->mask) == fcur->value) 9b1a735d Michael Ellerman 2008-06-24 82 return 0; 51c52e86 Michael Ellerman 2008-06-24 83 9b1a735d Michael Ellerman 2008-06-24 84 src = alt_start; 9b1a735d Michael Ellerman 2008-06-24 85 dest = start; 51c52e86 Michael Ellerman 2008-06-24 86 9b1a735d Michael Ellerman 2008-06-24 87 for (; src < alt_end; src++, dest++) { 9b1a735d Michael Ellerman 2008-06-24 88 if (patch_alt_instruction(src, dest, alt_start, alt_end)) 9b1a735d Michael Ellerman 2008-06-24 89 return 1; 51c52e86 Michael Ellerman 2008-06-24 90 } 9b1a735d Michael Ellerman 2008-06-24 91 9b1a735d Michael Ellerman 2008-06-24 92 for (; dest < end; dest++) 16c57b36 Kumar Gala 2009-02-10 93 patch_instruction(dest, PPC_INST_NOP); 9b1a735d Michael Ellerman 2008-06-24 94 9b1a735d Michael Ellerman 2008-06-24 95 return 0; 51c52e86 Michael Ellerman 2008-06-24 96 } 51c52e86 Michael Ellerman 2008-06-24 97 51c52e86 Michael Ellerman 2008-06-24 98 void do_feature_fixups(unsigned long value, void *fixup_start, void *fixup_end) 51c52e86 Michael Ellerman 2008-06-24 99 { 51c52e86 Michael Ellerman 2008-06-24 100 struct fixup_entry *fcur, *fend; 51c52e86 Michael Ellerman 2008-06-24 101 51c52e86 Michael Ellerman 2008-06-24 102 fcur = fixup_start; 51c52e86 Michael Ellerman 2008-06-24 103 fend = fixup_end; 51c52e86 Michael Ellerman 2008-06-24 104 9b1a735d Michael Ellerman 2008-06-24 105 for (; fcur < fend; fcur++) { 9b1a735d Michael Ellerman 2008-06-24 106 if (patch_feature_section(value, fcur)) { 1856c020 Michael Ellerman 2008-07-17 107 WARN_ON(1); 9b1a735d Michael Ellerman 2008-06-24 108 printk("Unable to patch feature section at %p - %p" \ 9b1a735d Michael Ellerman 2008-06-24 109 " with %p - %p\n", 9b1a735d Michael Ellerman 2008-06-24 110 calc_addr(fcur, fcur->start_off), 9b1a735d Michael Ellerman 2008-06-24 111 calc_addr(fcur, fcur->end_off), 9b1a735d Michael Ellerman 2008-06-24 112 calc_addr(fcur, fcur->alt_start_off), 9b1a735d Michael Ellerman 2008-06-24 113 calc_addr(fcur, fcur->alt_end_off)); 9b1a735d Michael Ellerman 2008-06-24 114 } 9b1a735d Michael Ellerman 2008-06-24 115 } 51c52e86 Michael Ellerman 2008-06-24 116 } 362e7701 Michael Ellerman 2008-06-24 117 2d1b2027 Kumar Gala 2008-07-02 118 void do_lwsync_fixups(unsigned long value, void *fixup_start, void *fixup_end) 2d1b2027 Kumar Gala 2008-07-02 119 { 3d98ffbf Benjamin Herrenschmidt 2010-02-26 120 long *start, *end; 3d98ffbf Benjamin Herrenschmidt 2010-02-26 121 unsigned int *dest; 2d1b2027 Kumar Gala 2008-07-02 122 2d1b2027 Kumar Gala 2008-07-02 123 if (!(value & CPU_FTR_LWSYNC)) 2d1b2027 Kumar Gala 2008-07-02 124 return ; 2d1b2027 Kumar Gala 2008-07-02 125 2d1b2027 Kumar Gala 2008-07-02 126 start = fixup_start; 2d1b2027 Kumar Gala 2008-07-02 127 end = fixup_end; 2d1b2027 Kumar Gala 2008-07-02 128 2d1b2027 Kumar Gala 2008-07-02 129 for (; start < end; start++) { 2d1b2027 Kumar Gala 2008-07-02 130 dest = (void *)start + *start; 16c57b36 Kumar Gala 2009-02-10 131 patch_instruction(dest, PPC_INST_LWSYNC); 2d1b2027 Kumar Gala 2008-07-02 132 } 2d1b2027 Kumar Gala 2008-07-02 133 } 2d1b2027 Kumar Gala 2008-07-02 134 9402c684 Benjamin Herrenschmidt 2016-07-05 135 static void do_final_fixups(void) d715e433 Anton Blanchard 2011-11-14 136 { d715e433 Anton Blanchard 2011-11-14 137 #if defined(CONFIG_PPC64) && defined(CONFIG_RELOCATABLE) d715e433 Anton Blanchard 2011-11-14 138 int *src, *dest; d715e433 Anton Blanchard 2011-11-14 139 unsigned long length; d715e433 Anton Blanchard 2011-11-14 140 d715e433 Anton Blanchard 2011-11-14 141 if (PHYSICAL_START == 0) d715e433 Anton Blanchard 2011-11-14 142 return; d715e433 Anton Blanchard 2011-11-14 143 d715e433 Anton Blanchard 2011-11-14 144 src = (int *)(KERNELBASE + PHYSICAL_START); d715e433 Anton Blanchard 2011-11-14 145 dest = (int *)KERNELBASE; d715e433 Anton Blanchard 2011-11-14 146 length = (__end_interrupts - _stext) / sizeof(int); d715e433 Anton Blanchard 2011-11-14 147 d715e433 Anton Blanchard 2011-11-14 148 while (length--) { d715e433 Anton Blanchard 2011-11-14 149 patch_instruction(dest, *src); d715e433 Anton Blanchard 2011-11-14 150 src++; d715e433 Anton Blanchard 2011-11-14 151 dest++; d715e433 Anton Blanchard 2011-11-14 152 } d715e433 Anton Blanchard 2011-11-14 153 #endif d715e433 Anton Blanchard 2011-11-14 154 } d715e433 Anton Blanchard 2011-11-14 155 a28e46f1 Michael Ellerman 2016-07-26 156 static unsigned long __initdata saved_cpu_features; a28e46f1 Michael Ellerman 2016-07-26 157 static unsigned int __initdata saved_mmu_features; a28e46f1 Michael Ellerman 2016-07-26 158 #ifdef CONFIG_PPC64 a28e46f1 Michael Ellerman 2016-07-26 159 static unsigned long __initdata saved_firmware_features; a28e46f1 Michael Ellerman 2016-07-26 160 #endif a28e46f1 Michael Ellerman 2016-07-26 161 a28e46f1 Michael Ellerman 2016-07-26 162 void __init apply_feature_fixups(void) 9402c684 Benjamin Herrenschmidt 2016-07-05 163 { 2c0f9951 Benjamin Herrenschmidt 2016-08-02 164 struct cpu_spec *spec = PTRRELOC(*PTRRELOC(&cur_cpu_spec)); 9402c684 Benjamin Herrenschmidt 2016-07-05 165 a28e46f1 Michael Ellerman 2016-07-26 166 *PTRRELOC(&saved_cpu_features) = spec->cpu_features; a28e46f1 Michael Ellerman 2016-07-26 167 *PTRRELOC(&saved_mmu_features) = spec->mmu_features; a28e46f1 Michael Ellerman 2016-07-26 168 9402c684 Benjamin Herrenschmidt 2016-07-05 169 /* 9402c684 Benjamin Herrenschmidt 2016-07-05 170 * Apply the CPU-specific and firmware specific fixups to kernel text 9402c684 Benjamin Herrenschmidt 2016-07-05 171 * (nop out sections not relevant to this CPU or this firmware). 9402c684 Benjamin Herrenschmidt 2016-07-05 172 */ 9402c684 Benjamin Herrenschmidt 2016-07-05 173 do_feature_fixups(spec->cpu_features, 9402c684 Benjamin Herrenschmidt 2016-07-05 174 PTRRELOC(&__start___ftr_fixup), 9402c684 Benjamin Herrenschmidt 2016-07-05 175 PTRRELOC(&__stop___ftr_fixup)); 9402c684 Benjamin Herrenschmidt 2016-07-05 176 9402c684 Benjamin Herrenschmidt 2016-07-05 177 do_feature_fixups(spec->mmu_features, 9402c684 Benjamin Herrenschmidt 2016-07-05 @178 PTRRELOC(&__start___mmu_ftr_fixup), 9402c684 Benjamin Herrenschmidt 2016-07-05 @179 PTRRELOC(&__stop___mmu_ftr_fixup)); 9402c684 Benjamin Herrenschmidt 2016-07-05 180 9402c684 Benjamin Herrenschmidt 2016-07-05 181 do_lwsync_fixups(spec->cpu_features, 9402c684 Benjamin Herrenschmidt 2016-07-05 182 PTRRELOC(&__start___lwsync_fixup), 9402c684 Benjamin Herrenschmidt 2016-07-05 183 PTRRELOC(&__stop___lwsync_fixup)); 9402c684 Benjamin Herrenschmidt 2016-07-05 184 9402c684 Benjamin Herrenschmidt 2016-07-05 185 #ifdef CONFIG_PPC64 a28e46f1 Michael Ellerman 2016-07-26 186 saved_firmware_features = powerpc_firmware_features; 9402c684 Benjamin Herrenschmidt 2016-07-05 187 do_feature_fixups(powerpc_firmware_features, 9402c684 Benjamin Herrenschmidt 2016-07-05 188 &__start___fw_ftr_fixup, &__stop___fw_ftr_fixup); 9402c684 Benjamin Herrenschmidt 2016-07-05 189 #endif 9402c684 Benjamin Herrenschmidt 2016-07-05 190 do_final_fixups(); 97f6e0cc Benjamin Herrenschmidt 2016-08-10 191 } 309b315b Aneesh Kumar K.V 2016-07-23 192 97f6e0cc Benjamin Herrenschmidt 2016-08-10 193 void __init setup_feature_keys(void) 97f6e0cc Benjamin Herrenschmidt 2016-08-10 194 { 309b315b Aneesh Kumar K.V 2016-07-23 195 /* 309b315b Aneesh Kumar K.V 2016-07-23 196 * Initialise jump label. This causes all the cpu/mmu_has_feature() 309b315b Aneesh Kumar K.V 2016-07-23 197 * checks to take on their correct polarity based on the current set of 309b315b Aneesh Kumar K.V 2016-07-23 198 * CPU/MMU features. 309b315b Aneesh Kumar K.V 2016-07-23 199 */ 309b315b Aneesh Kumar K.V 2016-07-23 200 jump_label_init(); 4db73271 Kevin Hao 2016-07-23 201 cpu_feature_keys_init(); c12e6f24 Kevin Hao 2016-07-23 @202 mmu_feature_keys_init(); 9402c684 Benjamin Herrenschmidt 2016-07-05 203 } 9402c684 Benjamin Herrenschmidt 2016-07-05 204 a28e46f1 Michael Ellerman 2016-07-26 205 static int __init check_features(void) :::::: The code at line 178 was first introduced by commit :::::: 9402c684613163888714df0955fa1f17142b08bf powerpc: Factor do_feature_fixup calls :::::: TO: Benjamin Herrenschmidt :::::: CC: Michael Ellerman --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --VS++wcV0S1rZb1Fb Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 AAA= --VS++wcV0S1rZb1Fb--