host.S (d527353e4bceae6d59606ad21ad00916401d22ad) host.S (5c92a7643b14a5bc93bac6e2af5f9010e284b584)
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2020 - Google Inc
4 * Author: Andrew Scull <ascull@google.com>
5 */
6
7#include <linux/linkage.h>
8

--- 65 unchanged lines hidden (view full) ---

74 * void __noreturn __hyp_do_panic(struct kvm_cpu_context *host_ctxt, u64 spsr,
75 * u64 elr, u64 par);
76 */
77SYM_FUNC_START(__hyp_do_panic)
78 /* Prepare and exit to the host's panic funciton. */
79 mov lr, #(PSR_F_BIT | PSR_I_BIT | PSR_A_BIT | PSR_D_BIT |\
80 PSR_MODE_EL1h)
81 msr spsr_el2, lr
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (C) 2020 - Google Inc
4 * Author: Andrew Scull <ascull@google.com>
5 */
6
7#include <linux/linkage.h>
8

--- 65 unchanged lines hidden (view full) ---

74 * void __noreturn __hyp_do_panic(struct kvm_cpu_context *host_ctxt, u64 spsr,
75 * u64 elr, u64 par);
76 */
77SYM_FUNC_START(__hyp_do_panic)
78 /* Prepare and exit to the host's panic funciton. */
79 mov lr, #(PSR_F_BIT | PSR_I_BIT | PSR_A_BIT | PSR_D_BIT |\
80 PSR_MODE_EL1h)
81 msr spsr_el2, lr
82 ldr lr, =panic
82 ldr lr, =nvhe_hyp_panic_handler
83 hyp_kimg_va lr, x6
84 msr elr_el2, lr
85
86 mov x29, x0
87
83 hyp_kimg_va lr, x6
84 msr elr_el2, lr
85
86 mov x29, x0
87
88 /* Load the format string into x0 and arguments into x1-7 */
89 ldr x0, =__hyp_panic_string
90 hyp_kimg_va x0, x6
88 /* Load the panic arguments into x0-7 */
89 mrs x0, esr_el2
90 get_vcpu_ptr x4, x5
91 mrs x5, far_el2
92 mrs x6, hpfar_el2
93 mov x7, xzr // Unused argument
91
94
92 /* Load the format arguments into x1-7. */
93 mov x6, x3
94 get_vcpu_ptr x7, x3
95 mrs x3, esr_el2
96 mrs x4, far_el2
97 mrs x5, hpfar_el2
98
99 /* Enter the host, conditionally restoring the host context. */
100 cbz x29, __host_enter_without_restoring
101 b __host_enter_for_panic
102SYM_FUNC_END(__hyp_do_panic)
103
104.macro host_el1_sync_vect
105 .align 7
106.L__vect_start\@:

--- 125 unchanged lines hidden ---
95 /* Enter the host, conditionally restoring the host context. */
96 cbz x29, __host_enter_without_restoring
97 b __host_enter_for_panic
98SYM_FUNC_END(__hyp_do_panic)
99
100.macro host_el1_sync_vect
101 .align 7
102.L__vect_start\@:

--- 125 unchanged lines hidden ---