arch/arm64/kvm/va_layout.c:188:6: warning: no previous prototype for 'kvm_patch_vector_branch'

From: kernel test robot
Date: Fri Sep 03 2021 - 07:15:52 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a9c9a6f741cdaa2fa9ba24a790db8d07295761e3
commit: 63b3f96e1a989846a5a521d4fbef4bc86406929d kvm: Select SCHED_INFO instead of TASK_DELAY_ACCT
date: 4 months ago
config: arm64-buildonly-randconfig-r006-20210902 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=63b3f96e1a989846a5a521d4fbef4bc86406929d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 63b3f96e1a989846a5a521d4fbef4bc86406929d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> arch/arm64/kvm/va_layout.c:188:6: warning: no previous prototype for 'kvm_patch_vector_branch' [-Wmissing-prototypes]
188 | void kvm_patch_vector_branch(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/va_layout.c:286:6: warning: no previous prototype for 'kvm_get_kimage_voffset' [-Wmissing-prototypes]
286 | void kvm_get_kimage_voffset(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/va_layout.c:292:6: warning: no previous prototype for 'kvm_compute_final_ctr_el0' [-Wmissing-prototypes]
292 | void kvm_compute_final_ctr_el0(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kvm/handle_exit.c:177:35: warning: initialized field overwritten [-Woverride-init]
177 | [ESR_ELx_EC_WFx] = kvm_handle_wfx,
| ^~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:177:35: note: (near initialization for 'arm_exit_handlers[1]')
arch/arm64/kvm/handle_exit.c:178:35: warning: initialized field overwritten [-Woverride-init]
178 | [ESR_ELx_EC_CP15_32] = kvm_handle_cp15_32,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:178:35: note: (near initialization for 'arm_exit_handlers[3]')
arch/arm64/kvm/handle_exit.c:179:35: warning: initialized field overwritten [-Woverride-init]
179 | [ESR_ELx_EC_CP15_64] = kvm_handle_cp15_64,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:179:35: note: (near initialization for 'arm_exit_handlers[4]')
arch/arm64/kvm/handle_exit.c:180:35: warning: initialized field overwritten [-Woverride-init]
180 | [ESR_ELx_EC_CP14_MR] = kvm_handle_cp14_32,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:180:35: note: (near initialization for 'arm_exit_handlers[5]')
arch/arm64/kvm/handle_exit.c:181:35: warning: initialized field overwritten [-Woverride-init]
181 | [ESR_ELx_EC_CP14_LS] = kvm_handle_cp14_load_store,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:181:35: note: (near initialization for 'arm_exit_handlers[6]')
arch/arm64/kvm/handle_exit.c:182:35: warning: initialized field overwritten [-Woverride-init]
182 | [ESR_ELx_EC_CP14_64] = kvm_handle_cp14_64,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:182:35: note: (near initialization for 'arm_exit_handlers[12]')
arch/arm64/kvm/handle_exit.c:183:35: warning: initialized field overwritten [-Woverride-init]
183 | [ESR_ELx_EC_HVC32] = handle_hvc,
| ^~~~~~~~~~
arch/arm64/kvm/handle_exit.c:183:35: note: (near initialization for 'arm_exit_handlers[18]')
arch/arm64/kvm/handle_exit.c:184:35: warning: initialized field overwritten [-Woverride-init]
184 | [ESR_ELx_EC_SMC32] = handle_smc,
| ^~~~~~~~~~
arch/arm64/kvm/handle_exit.c:184:35: note: (near initialization for 'arm_exit_handlers[19]')
arch/arm64/kvm/handle_exit.c:185:35: warning: initialized field overwritten [-Woverride-init]
185 | [ESR_ELx_EC_HVC64] = handle_hvc,
| ^~~~~~~~~~
arch/arm64/kvm/handle_exit.c:185:35: note: (near initialization for 'arm_exit_handlers[22]')
arch/arm64/kvm/handle_exit.c:186:35: warning: initialized field overwritten [-Woverride-init]
186 | [ESR_ELx_EC_SMC64] = handle_smc,
| ^~~~~~~~~~
arch/arm64/kvm/handle_exit.c:186:35: note: (near initialization for 'arm_exit_handlers[23]')
arch/arm64/kvm/handle_exit.c:187:35: warning: initialized field overwritten [-Woverride-init]
187 | [ESR_ELx_EC_SYS64] = kvm_handle_sys_reg,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:187:35: note: (near initialization for 'arm_exit_handlers[24]')
arch/arm64/kvm/handle_exit.c:188:35: warning: initialized field overwritten [-Woverride-init]
188 | [ESR_ELx_EC_SVE] = handle_sve,
| ^~~~~~~~~~
arch/arm64/kvm/handle_exit.c:188:35: note: (near initialization for 'arm_exit_handlers[25]')
arch/arm64/kvm/handle_exit.c:189:35: warning: initialized field overwritten [-Woverride-init]
189 | [ESR_ELx_EC_IABT_LOW] = kvm_handle_guest_abort,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:189:35: note: (near initialization for 'arm_exit_handlers[32]')
arch/arm64/kvm/handle_exit.c:190:35: warning: initialized field overwritten [-Woverride-init]
190 | [ESR_ELx_EC_DABT_LOW] = kvm_handle_guest_abort,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:190:35: note: (near initialization for 'arm_exit_handlers[36]')
arch/arm64/kvm/handle_exit.c:191:35: warning: initialized field overwritten [-Woverride-init]
191 | [ESR_ELx_EC_SOFTSTP_LOW]= kvm_handle_guest_debug,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:191:35: note: (near initialization for 'arm_exit_handlers[50]')
arch/arm64/kvm/handle_exit.c:192:35: warning: initialized field overwritten [-Woverride-init]
192 | [ESR_ELx_EC_WATCHPT_LOW]= kvm_handle_guest_debug,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:192:35: note: (near initialization for 'arm_exit_handlers[52]')
arch/arm64/kvm/handle_exit.c:193:35: warning: initialized field overwritten [-Woverride-init]
193 | [ESR_ELx_EC_BREAKPT_LOW]= kvm_handle_guest_debug,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:193:35: note: (near initialization for 'arm_exit_handlers[48]')
arch/arm64/kvm/handle_exit.c:194:35: warning: initialized field overwritten [-Woverride-init]
194 | [ESR_ELx_EC_BKPT32] = kvm_handle_guest_debug,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:194:35: note: (near initialization for 'arm_exit_handlers[56]')
arch/arm64/kvm/handle_exit.c:195:35: warning: initialized field overwritten [-Woverride-init]
195 | [ESR_ELx_EC_BRK64] = kvm_handle_guest_debug,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:195:35: note: (near initialization for 'arm_exit_handlers[60]')
arch/arm64/kvm/handle_exit.c:196:35: warning: initialized field overwritten [-Woverride-init]
196 | [ESR_ELx_EC_FP_ASIMD] = handle_no_fpsimd,
| ^~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:196:35: note: (near initialization for 'arm_exit_handlers[7]')
arch/arm64/kvm/handle_exit.c:197:35: warning: initialized field overwritten [-Woverride-init]
197 | [ESR_ELx_EC_PAC] = kvm_handle_ptrauth,
| ^~~~~~~~~~~~~~~~~~
arch/arm64/kvm/handle_exit.c:197:35: note: (near initialization for 'arm_exit_handlers[9]')
>> arch/arm64/kvm/handle_exit.c:295:24: warning: no previous prototype for 'nvhe_hyp_panic_handler' [-Wmissing-prototypes]
295 | void __noreturn __cold nvhe_hyp_panic_handler(u64 esr, u64 spsr, u64 elr,
| ^~~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kvm/sys_regs.c:1564:20: warning: initialized field overwritten [-Woverride-init]
1564 | .reset = reset_pmcr, .reg = PMCR_EL0 },
| ^~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1564:20: note: (near initialization for 'sys_reg_descs[216].reset')
In file included from include/uapi/linux/posix_types.h:5,
from include/uapi/linux/types.h:14,
from include/linux/types.h:6,
from include/linux/kasan-checks.h:5,
from include/asm-generic/rwonce.h:26,
from arch/arm64/include/asm/rwonce.h:71,
from include/linux/compiler.h:248,
from include/linux/build_bug.h:5,
from include/linux/bitfield.h:10,
from arch/arm64/kvm/sys_regs.c:12:
>> include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1576:45: note: in expansion of macro 'NULL'
1576 | .access = access_pmceid, .reset = NULL },
| ^~~~
include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[222].reset')
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1576:45: note: in expansion of macro 'NULL'
1576 | .access = access_pmceid, .reset = NULL },
| ^~~~
>> include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1578:45: note: in expansion of macro 'NULL'
1578 | .access = access_pmceid, .reset = NULL },
| ^~~~
include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[223].reset')
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1578:45: note: in expansion of macro 'NULL'
1578 | .access = access_pmceid, .reset = NULL },
| ^~~~
>> include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1582:50: note: in expansion of macro 'NULL'
1582 | .access = access_pmu_evtyper, .reset = NULL },
| ^~~~
include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[225].reset')
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1582:50: note: in expansion of macro 'NULL'
1582 | .access = access_pmu_evtyper, .reset = NULL },
| ^~~~
>> include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1584:49: note: in expansion of macro 'NULL'
1584 | .access = access_pmu_evcntr, .reset = NULL },
| ^~~~
include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[226].reset')
8 | #define NULL ((void *)0)
| ^
arch/arm64/kvm/sys_regs.c:1584:49: note: in expansion of macro 'NULL'
1584 | .access = access_pmu_evcntr, .reset = NULL },
| ^~~~
arch/arm64/kvm/sys_regs.c:1590:20: warning: initialized field overwritten [-Woverride-init]
1590 | .reset = reset_val, .reg = PMUSERENR_EL0, .val = 0 },
| ^~~~~~~~~
arch/arm64/kvm/sys_regs.c:1590:20: note: (near initialization for 'sys_reg_descs[227].reset')
arch/arm64/kvm/sys_regs.c:1745:20: warning: initialized field overwritten [-Woverride-init]
1745 | .reset = reset_val, .reg = PMCCFILTR_EL0, .val = 0 },
| ^~~~~~~~~
arch/arm64/kvm/sys_regs.c:1745:20: note: (near initialization for 'sys_reg_descs[369].reset')
--
>> arch/arm64/kvm/hyp/vhe/switch.c:215:17: warning: no previous prototype for 'hyp_panic' [-Wmissing-prototypes]
215 | void __noreturn hyp_panic(void)
| ^~~~~~~~~
>> arch/arm64/kvm/hyp/vhe/switch.c:225:17: warning: no previous prototype for 'kvm_unexpected_el2_exception' [-Wmissing-prototypes]
225 | asmlinkage void kvm_unexpected_el2_exception(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kvm/hyp/nvhe/switch.c:264:17: warning: no previous prototype for 'hyp_panic' [-Wmissing-prototypes]
264 | void __noreturn hyp_panic(void)
| ^~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/switch.c:286:17: warning: no previous prototype for 'kvm_unexpected_el2_exception' [-Wmissing-prototypes]
286 | asmlinkage void kvm_unexpected_el2_exception(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kvm/hyp/nvhe/hyp-main.c:233:6: warning: no previous prototype for 'handle_trap' [-Wmissing-prototypes]
233 | void handle_trap(struct kvm_cpu_context *host_ctxt)
| ^~~~~~~~~~~
--
>> arch/arm64/kvm/hyp/nvhe/psci-relay.c:203:28: warning: no previous prototype for 'kvm_host_psci_cpu_entry' [-Wmissing-prototypes]
203 | asmlinkage void __noreturn kvm_host_psci_cpu_entry(bool is_cpu_on)
| ^~~~~~~~~~~~~~~~~~~~~~~
--
>> arch/arm64/kvm/hyp/nvhe/setup.c:146:17: warning: no previous prototype for '__pkvm_init_finalise' [-Wmissing-prototypes]
146 | void __noreturn __pkvm_init_finalise(void)
| ^~~~~~~~~~~~~~~~~~~~


vim +/kvm_patch_vector_branch +188 arch/arm64/kvm/va_layout.c

71dcb8be6d29cf Marc Zyngier 2018-02-27 187
71dcb8be6d29cf Marc Zyngier 2018-02-27 @188 void kvm_patch_vector_branch(struct alt_instr *alt,
71dcb8be6d29cf Marc Zyngier 2018-02-27 189 __le32 *origptr, __le32 *updptr, int nr_inst)
71dcb8be6d29cf Marc Zyngier 2018-02-27 190 {
71dcb8be6d29cf Marc Zyngier 2018-02-27 191 u64 addr;
71dcb8be6d29cf Marc Zyngier 2018-02-27 192 u32 insn;
71dcb8be6d29cf Marc Zyngier 2018-02-27 193
b881cdce77b48b Will Deacon 2020-11-13 194 BUG_ON(nr_inst != 4);
71dcb8be6d29cf Marc Zyngier 2018-02-27 195
c4792b6dbc5070 Will Deacon 2020-11-13 196 if (!cpus_have_const_cap(ARM64_SPECTRE_V3A) || WARN_ON_ONCE(has_vhe()))
71dcb8be6d29cf Marc Zyngier 2018-02-27 197 return;
71dcb8be6d29cf Marc Zyngier 2018-02-27 198
71dcb8be6d29cf Marc Zyngier 2018-02-27 199 /*
71dcb8be6d29cf Marc Zyngier 2018-02-27 200 * Compute HYP VA by using the same computation as kern_hyp_va()
71dcb8be6d29cf Marc Zyngier 2018-02-27 201 */
d084ecc5c72811 David Brazdil 2020-12-02 202 addr = __early_kern_hyp_va((u64)kvm_ksym_ref(__kvm_hyp_vector));
71dcb8be6d29cf Marc Zyngier 2018-02-27 203
71dcb8be6d29cf Marc Zyngier 2018-02-27 204 /* Use PC[10:7] to branch to the same vector in KVM */
71dcb8be6d29cf Marc Zyngier 2018-02-27 205 addr |= ((u64)origptr & GENMASK_ULL(10, 7));
71dcb8be6d29cf Marc Zyngier 2018-02-27 206
71dcb8be6d29cf Marc Zyngier 2018-02-27 207 /*
3dbf100b0b10e9 James Morse 2019-06-18 208 * Branch over the preamble in order to avoid the initial store on
3dbf100b0b10e9 James Morse 2019-06-18 209 * the stack (which we already perform in the hardening vectors).
71dcb8be6d29cf Marc Zyngier 2018-02-27 210 */
3dbf100b0b10e9 James Morse 2019-06-18 211 addr += KVM_VECTOR_PREAMBLE;
71dcb8be6d29cf Marc Zyngier 2018-02-27 212
71dcb8be6d29cf Marc Zyngier 2018-02-27 213 /* movz x0, #(addr & 0xffff) */
71dcb8be6d29cf Marc Zyngier 2018-02-27 214 insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
71dcb8be6d29cf Marc Zyngier 2018-02-27 215 (u16)addr,
71dcb8be6d29cf Marc Zyngier 2018-02-27 216 0,
71dcb8be6d29cf Marc Zyngier 2018-02-27 217 AARCH64_INSN_VARIANT_64BIT,
71dcb8be6d29cf Marc Zyngier 2018-02-27 218 AARCH64_INSN_MOVEWIDE_ZERO);
71dcb8be6d29cf Marc Zyngier 2018-02-27 219 *updptr++ = cpu_to_le32(insn);
71dcb8be6d29cf Marc Zyngier 2018-02-27 220
71dcb8be6d29cf Marc Zyngier 2018-02-27 221 /* movk x0, #((addr >> 16) & 0xffff), lsl #16 */
71dcb8be6d29cf Marc Zyngier 2018-02-27 222 insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
71dcb8be6d29cf Marc Zyngier 2018-02-27 223 (u16)(addr >> 16),
71dcb8be6d29cf Marc Zyngier 2018-02-27 224 16,
71dcb8be6d29cf Marc Zyngier 2018-02-27 225 AARCH64_INSN_VARIANT_64BIT,
71dcb8be6d29cf Marc Zyngier 2018-02-27 226 AARCH64_INSN_MOVEWIDE_KEEP);
71dcb8be6d29cf Marc Zyngier 2018-02-27 227 *updptr++ = cpu_to_le32(insn);
71dcb8be6d29cf Marc Zyngier 2018-02-27 228
71dcb8be6d29cf Marc Zyngier 2018-02-27 229 /* movk x0, #((addr >> 32) & 0xffff), lsl #32 */
71dcb8be6d29cf Marc Zyngier 2018-02-27 230 insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
71dcb8be6d29cf Marc Zyngier 2018-02-27 231 (u16)(addr >> 32),
71dcb8be6d29cf Marc Zyngier 2018-02-27 232 32,
71dcb8be6d29cf Marc Zyngier 2018-02-27 233 AARCH64_INSN_VARIANT_64BIT,
71dcb8be6d29cf Marc Zyngier 2018-02-27 234 AARCH64_INSN_MOVEWIDE_KEEP);
71dcb8be6d29cf Marc Zyngier 2018-02-27 235 *updptr++ = cpu_to_le32(insn);
71dcb8be6d29cf Marc Zyngier 2018-02-27 236
71dcb8be6d29cf Marc Zyngier 2018-02-27 237 /* br x0 */
71dcb8be6d29cf Marc Zyngier 2018-02-27 238 insn = aarch64_insn_gen_branch_reg(AARCH64_INSN_REG_0,
71dcb8be6d29cf Marc Zyngier 2018-02-27 239 AARCH64_INSN_BRANCH_NOLINK);
71dcb8be6d29cf Marc Zyngier 2018-02-27 240 *updptr++ = cpu_to_le32(insn);
71dcb8be6d29cf Marc Zyngier 2018-02-27 241 }
1db9d9ded77138 Marc Zyngier 2020-10-21 242
1db9d9ded77138 Marc Zyngier 2020-10-21 243 static void generate_mov_q(u64 val, __le32 *origptr, __le32 *updptr, int nr_inst)
1db9d9ded77138 Marc Zyngier 2020-10-21 244 {
1db9d9ded77138 Marc Zyngier 2020-10-21 245 u32 insn, oinsn, rd;
1db9d9ded77138 Marc Zyngier 2020-10-21 246
1db9d9ded77138 Marc Zyngier 2020-10-21 247 BUG_ON(nr_inst != 4);
1db9d9ded77138 Marc Zyngier 2020-10-21 248
1db9d9ded77138 Marc Zyngier 2020-10-21 249 /* Compute target register */
1db9d9ded77138 Marc Zyngier 2020-10-21 250 oinsn = le32_to_cpu(*origptr);
1db9d9ded77138 Marc Zyngier 2020-10-21 251 rd = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RD, oinsn);
1db9d9ded77138 Marc Zyngier 2020-10-21 252
1db9d9ded77138 Marc Zyngier 2020-10-21 253 /* movz rd, #(val & 0xffff) */
1db9d9ded77138 Marc Zyngier 2020-10-21 254 insn = aarch64_insn_gen_movewide(rd,
1db9d9ded77138 Marc Zyngier 2020-10-21 255 (u16)val,
1db9d9ded77138 Marc Zyngier 2020-10-21 256 0,
1db9d9ded77138 Marc Zyngier 2020-10-21 257 AARCH64_INSN_VARIANT_64BIT,
1db9d9ded77138 Marc Zyngier 2020-10-21 258 AARCH64_INSN_MOVEWIDE_ZERO);
1db9d9ded77138 Marc Zyngier 2020-10-21 259 *updptr++ = cpu_to_le32(insn);
1db9d9ded77138 Marc Zyngier 2020-10-21 260
1db9d9ded77138 Marc Zyngier 2020-10-21 261 /* movk rd, #((val >> 16) & 0xffff), lsl #16 */
1db9d9ded77138 Marc Zyngier 2020-10-21 262 insn = aarch64_insn_gen_movewide(rd,
1db9d9ded77138 Marc Zyngier 2020-10-21 263 (u16)(val >> 16),
1db9d9ded77138 Marc Zyngier 2020-10-21 264 16,
1db9d9ded77138 Marc Zyngier 2020-10-21 265 AARCH64_INSN_VARIANT_64BIT,
1db9d9ded77138 Marc Zyngier 2020-10-21 266 AARCH64_INSN_MOVEWIDE_KEEP);
1db9d9ded77138 Marc Zyngier 2020-10-21 267 *updptr++ = cpu_to_le32(insn);
1db9d9ded77138 Marc Zyngier 2020-10-21 268
1db9d9ded77138 Marc Zyngier 2020-10-21 269 /* movk rd, #((val >> 32) & 0xffff), lsl #32 */
1db9d9ded77138 Marc Zyngier 2020-10-21 270 insn = aarch64_insn_gen_movewide(rd,
1db9d9ded77138 Marc Zyngier 2020-10-21 271 (u16)(val >> 32),
1db9d9ded77138 Marc Zyngier 2020-10-21 272 32,
1db9d9ded77138 Marc Zyngier 2020-10-21 273 AARCH64_INSN_VARIANT_64BIT,
1db9d9ded77138 Marc Zyngier 2020-10-21 274 AARCH64_INSN_MOVEWIDE_KEEP);
1db9d9ded77138 Marc Zyngier 2020-10-21 275 *updptr++ = cpu_to_le32(insn);
1db9d9ded77138 Marc Zyngier 2020-10-21 276
1db9d9ded77138 Marc Zyngier 2020-10-21 277 /* movk rd, #((val >> 48) & 0xffff), lsl #48 */
1db9d9ded77138 Marc Zyngier 2020-10-21 278 insn = aarch64_insn_gen_movewide(rd,
1db9d9ded77138 Marc Zyngier 2020-10-21 279 (u16)(val >> 48),
1db9d9ded77138 Marc Zyngier 2020-10-21 280 48,
1db9d9ded77138 Marc Zyngier 2020-10-21 281 AARCH64_INSN_VARIANT_64BIT,
1db9d9ded77138 Marc Zyngier 2020-10-21 282 AARCH64_INSN_MOVEWIDE_KEEP);
1db9d9ded77138 Marc Zyngier 2020-10-21 283 *updptr++ = cpu_to_le32(insn);
1db9d9ded77138 Marc Zyngier 2020-10-21 284 }
1db9d9ded77138 Marc Zyngier 2020-10-21 285
68b824e428c5fb Marc Zyngier 2020-10-24 @286 void kvm_get_kimage_voffset(struct alt_instr *alt,
68b824e428c5fb Marc Zyngier 2020-10-24 287 __le32 *origptr, __le32 *updptr, int nr_inst)
68b824e428c5fb Marc Zyngier 2020-10-24 288 {
68b824e428c5fb Marc Zyngier 2020-10-24 289 generate_mov_q(kimage_voffset, origptr, updptr, nr_inst);
68b824e428c5fb Marc Zyngier 2020-10-24 290 }
755db23420a1ce Marc Zyngier 2021-03-22 291
755db23420a1ce Marc Zyngier 2021-03-22 @292 void kvm_compute_final_ctr_el0(struct alt_instr *alt,

:::::: The code at line 188 was first introduced by commit
:::::: 71dcb8be6d29cffff3f4a4463232f38786e97797 arm64: KVM: Allow far branches from vector slots to the main vectors

:::::: TO: Marc Zyngier <marc.zyngier@xxxxxxx>
:::::: CC: Marc Zyngier <marc.zyngier@xxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip