diff options
-rw-r--r-- | arch/arm64/kvm/hyp/hyp-entry.S | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm64/kvm/hyp/hyp-entry.S b/arch/arm64/kvm/hyp/hyp-entry.S index d6cae5428b95..d2f6640d8825 100644 --- a/arch/arm64/kvm/hyp/hyp-entry.S +++ b/arch/arm64/kvm/hyp/hyp-entry.S | |||
@@ -120,6 +120,12 @@ el1_irq: | |||
120 | mov x0, #ARM_EXCEPTION_IRQ | 120 | mov x0, #ARM_EXCEPTION_IRQ |
121 | b __guest_exit | 121 | b __guest_exit |
122 | 122 | ||
123 | el1_error: | ||
124 | stp x0, x1, [sp, #-16]! | ||
125 | mrs x1, tpidr_el2 | ||
126 | mov x0, #ARM_EXCEPTION_EL1_SERROR | ||
127 | b __guest_exit | ||
128 | |||
123 | ENTRY(__hyp_do_panic) | 129 | ENTRY(__hyp_do_panic) |
124 | mov lr, #(PSR_F_BIT | PSR_I_BIT | PSR_A_BIT | PSR_D_BIT |\ | 130 | mov lr, #(PSR_F_BIT | PSR_I_BIT | PSR_A_BIT | PSR_D_BIT |\ |
125 | PSR_MODE_EL1h) | 131 | PSR_MODE_EL1h) |
@@ -148,7 +154,6 @@ ENDPROC(\label) | |||
148 | invalid_vector el1_sync_invalid | 154 | invalid_vector el1_sync_invalid |
149 | invalid_vector el1_irq_invalid | 155 | invalid_vector el1_irq_invalid |
150 | invalid_vector el1_fiq_invalid | 156 | invalid_vector el1_fiq_invalid |
151 | invalid_vector el1_error_invalid | ||
152 | 157 | ||
153 | .ltorg | 158 | .ltorg |
154 | 159 | ||
@@ -168,10 +173,10 @@ ENTRY(__kvm_hyp_vector) | |||
168 | ventry el1_sync // Synchronous 64-bit EL1 | 173 | ventry el1_sync // Synchronous 64-bit EL1 |
169 | ventry el1_irq // IRQ 64-bit EL1 | 174 | ventry el1_irq // IRQ 64-bit EL1 |
170 | ventry el1_fiq_invalid // FIQ 64-bit EL1 | 175 | ventry el1_fiq_invalid // FIQ 64-bit EL1 |
171 | ventry el1_error_invalid // Error 64-bit EL1 | 176 | ventry el1_error // Error 64-bit EL1 |
172 | 177 | ||
173 | ventry el1_sync // Synchronous 32-bit EL1 | 178 | ventry el1_sync // Synchronous 32-bit EL1 |
174 | ventry el1_irq // IRQ 32-bit EL1 | 179 | ventry el1_irq // IRQ 32-bit EL1 |
175 | ventry el1_fiq_invalid // FIQ 32-bit EL1 | 180 | ventry el1_fiq_invalid // FIQ 32-bit EL1 |
176 | ventry el1_error_invalid // Error 32-bit EL1 | 181 | ventry el1_error // Error 32-bit EL1 |
177 | ENDPROC(__kvm_hyp_vector) | 182 | ENDPROC(__kvm_hyp_vector) |