host.S (a787bdaff83a085288b6fc607afb4bb648da3cc9) host.S (68b824e428c5fb5c3dc5ef80b1543e767534b58e)
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

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

110 * Compute the idmap address of __kvm_handle_stub_hvc and
111 * jump there. Since we use kimage_voffset, do not use the
112 * HYP VA for __kvm_handle_stub_hvc, but the kernel VA instead
113 * (by loading it from the constant pool).
114 *
115 * Preserve x0-x4, which may contain stub parameters.
116 */
117 ldr x5, =__kvm_handle_stub_hvc
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

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

110 * Compute the idmap address of __kvm_handle_stub_hvc and
111 * jump there. Since we use kimage_voffset, do not use the
112 * HYP VA for __kvm_handle_stub_hvc, but the kernel VA instead
113 * (by loading it from the constant pool).
114 *
115 * Preserve x0-x4, which may contain stub parameters.
116 */
117 ldr x5, =__kvm_handle_stub_hvc
118 ldr_l x6, kimage_voffset
119
120 /* x5 = __pa(x5) */
121 sub x5, x5, x6
118 kimg_pa x5, x6
122 br x5
123.L__vect_end\@:
124.if ((.L__vect_end\@ - .L__vect_start\@) > 0x80)
125 .error "host_el1_sync_vect larger than vector entry"
126.endif
127.endm
128
129.macro invalid_host_el2_vect

--- 56 unchanged lines hidden ---
119 br x5
120.L__vect_end\@:
121.if ((.L__vect_end\@ - .L__vect_start\@) > 0x80)
122 .error "host_el1_sync_vect larger than vector entry"
123.endif
124.endm
125
126.macro invalid_host_el2_vect

--- 56 unchanged lines hidden ---