Merge tag 'kvm-riscv-fixes-6.16-1' of https://github.com/kvm-riscv/linux into HEAD

KVM/riscv fixes for 6.16, take #1

- Fix the size parameter check in SBI SFENCE calls
- Don't treat SBI HFENCE calls as NOPs

+4 -4
+4 -4
arch/riscv/kvm/vcpu_sbi_replace.c
··· 103 kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_FENCE_I_SENT); 104 break; 105 case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA: 106 - if (cp->a2 == 0 && cp->a3 == 0) 107 kvm_riscv_hfence_vvma_all(vcpu->kvm, hbase, hmask); 108 else 109 kvm_riscv_hfence_vvma_gva(vcpu->kvm, hbase, hmask, ··· 111 kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_HFENCE_VVMA_SENT); 112 break; 113 case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID: 114 - if (cp->a2 == 0 && cp->a3 == 0) 115 kvm_riscv_hfence_vvma_asid_all(vcpu->kvm, 116 hbase, hmask, cp->a4); 117 else ··· 127 case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID: 128 /* 129 * Until nested virtualization is implemented, the 130 - * SBI HFENCE calls should be treated as NOPs 131 */ 132 - break; 133 default: 134 retdata->err_val = SBI_ERR_NOT_SUPPORTED; 135 }
··· 103 kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_FENCE_I_SENT); 104 break; 105 case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA: 106 + if ((cp->a2 == 0 && cp->a3 == 0) || cp->a3 == -1UL) 107 kvm_riscv_hfence_vvma_all(vcpu->kvm, hbase, hmask); 108 else 109 kvm_riscv_hfence_vvma_gva(vcpu->kvm, hbase, hmask, ··· 111 kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_HFENCE_VVMA_SENT); 112 break; 113 case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID: 114 + if ((cp->a2 == 0 && cp->a3 == 0) || cp->a3 == -1UL) 115 kvm_riscv_hfence_vvma_asid_all(vcpu->kvm, 116 hbase, hmask, cp->a4); 117 else ··· 127 case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID: 128 /* 129 * Until nested virtualization is implemented, the 130 + * SBI HFENCE calls should return not supported 131 + * hence fallthrough. 132 */ 133 default: 134 retdata->err_val = SBI_ERR_NOT_SUPPORTED; 135 }