|
@@ -78,7 +78,7 @@ static u32 get_ccsidr(u32 csselr)
|
|
|
* See note at ARMv7 ARM B1.14.4 (TL;DR: S/W ops are not easily virtualized).
|
|
|
*/
|
|
|
static bool access_dcsw(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (!p->is_write)
|
|
@@ -94,7 +94,7 @@ static bool access_dcsw(struct kvm_vcpu *vcpu,
|
|
|
* sys_regs and leave it in complete control of the caches.
|
|
|
*/
|
|
|
static bool access_vm_reg(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
unsigned long val;
|
|
@@ -122,7 +122,7 @@ static bool access_vm_reg(struct kvm_vcpu *vcpu,
|
|
|
* for both AArch64 and AArch32 accesses.
|
|
|
*/
|
|
|
static bool access_gic_sgi(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
u64 val;
|
|
@@ -137,7 +137,7 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static bool trap_raz_wi(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write)
|
|
@@ -147,7 +147,7 @@ static bool trap_raz_wi(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static bool trap_oslsr_el1(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write) {
|
|
@@ -159,7 +159,7 @@ static bool trap_oslsr_el1(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static bool trap_dbgauthstatus_el1(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write) {
|
|
@@ -200,7 +200,7 @@ static bool trap_dbgauthstatus_el1(struct kvm_vcpu *vcpu,
|
|
|
* now use the debug registers.
|
|
|
*/
|
|
|
static bool trap_debug_regs(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write) {
|
|
@@ -225,7 +225,7 @@ static bool trap_debug_regs(struct kvm_vcpu *vcpu,
|
|
|
* hyp.S code switches between host and guest values in future.
|
|
|
*/
|
|
|
static inline void reg_to_dbg(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
u64 *dbg_reg)
|
|
|
{
|
|
|
u64 val = *vcpu_reg(vcpu, p->Rt);
|
|
@@ -240,7 +240,7 @@ static inline void reg_to_dbg(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static inline void dbg_to_reg(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
u64 *dbg_reg)
|
|
|
{
|
|
|
u64 val = *dbg_reg;
|
|
@@ -252,7 +252,7 @@ static inline void dbg_to_reg(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static inline bool trap_bvr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *rd)
|
|
|
{
|
|
|
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
|
|
@@ -294,7 +294,7 @@ static inline void reset_bvr(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static inline bool trap_bcr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *rd)
|
|
|
{
|
|
|
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
|
|
@@ -337,7 +337,7 @@ static inline void reset_bcr(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static inline bool trap_wvr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *rd)
|
|
|
{
|
|
|
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
|
|
@@ -380,7 +380,7 @@ static inline void reset_wvr(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static inline bool trap_wcr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *rd)
|
|
|
{
|
|
|
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
|
|
@@ -687,7 +687,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
|
|
|
};
|
|
|
|
|
|
static bool trap_dbgidr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write) {
|
|
@@ -706,7 +706,7 @@ static bool trap_dbgidr(struct kvm_vcpu *vcpu,
|
|
|
}
|
|
|
|
|
|
static bool trap_debug32(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
|
{
|
|
|
if (p->is_write) {
|
|
@@ -731,7 +731,7 @@ static bool trap_debug32(struct kvm_vcpu *vcpu,
|
|
|
*/
|
|
|
|
|
|
static inline bool trap_xvr(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *p,
|
|
|
+ struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *rd)
|
|
|
{
|
|
|
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
|
|
@@ -991,7 +991,7 @@ int kvm_handle_cp14_load_store(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|
|
* Return 0 if the access has been handled, and -1 if not.
|
|
|
*/
|
|
|
static int emulate_cp(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *params,
|
|
|
+ struct sys_reg_params *params,
|
|
|
const struct sys_reg_desc *table,
|
|
|
size_t num)
|
|
|
{
|
|
@@ -1175,7 +1175,7 @@ int kvm_handle_cp14_32(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|
|
}
|
|
|
|
|
|
static int emulate_sys_reg(struct kvm_vcpu *vcpu,
|
|
|
- const struct sys_reg_params *params)
|
|
|
+ struct sys_reg_params *params)
|
|
|
{
|
|
|
size_t num;
|
|
|
const struct sys_reg_desc *table, *r;
|