if (kvm_request_pending(vcpu)) { /* Make sure we process requests preemptable */
local_irq_enable();
trace_kvm_check_requests(vcpu);
r = kvmppc_core_check_requests(vcpu);
hard_irq_disable(); if (r > 0) continue; break;
}
if (kvmppc_core_prepare_to_enter(vcpu)) { /* interrupts got enabled in between, so we
are back at square 1 */ continue;
}
guest_enter_irqoff(); return1;
}
/* return to host */
local_irq_enable(); return r;
}
EXPORT_SYMBOL_GPL(kvmppc_prepare_to_enter);
switch (nr) { case KVM_HCALL_TOKEN(KVM_HC_PPC_MAP_MAGIC_PAGE):
{ #ifdefined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_KVM_BOOK3S_PR_POSSIBLE) /* Book3S can be little endian, find it out here */ int shared_big_endian = true; if (vcpu->arch.intr_msr & MSR_LE)
shared_big_endian = false; if (shared_big_endian != vcpu->arch.shared_big_endian)
kvmppc_swab_shared(vcpu);
vcpu->arch.shared_big_endian = shared_big_endian; #endif
r = EV_SUCCESS; break;
} case KVM_HCALL_TOKEN(KVM_HC_FEATURES):
r = EV_SUCCESS; #ifdefined(CONFIG_PPC_BOOK3S) || defined(CONFIG_KVM_E500V2)
r2 |= (1 << KVM_FEATURE_MAGIC_PAGE); #endif
/* Second return value is in r4 */ break; case EV_HCALL_TOKEN(EV_IDLE):
r = EV_SUCCESS;
kvm_vcpu_halt(vcpu); break; default:
r = EV_UNIMPLEMENTED; break;
}
kvmppc_set_gpr(vcpu, 4, r2);
return r;
}
EXPORT_SYMBOL_GPL(kvmppc_kvm_pv);
int kvmppc_sanity_check(struct kvm_vcpu *vcpu)
{ int r = false;
/* We have to know what CPU to virtualize */ if (!vcpu->arch.pvr) goto out;
/* PAPR only works with book3s_64 */ if ((vcpu->arch.cpu_type != KVM_CPU_3S_64) && vcpu->arch.papr_enabled) goto out;
/* HV KVM can only do PAPR mode for now */ if (!vcpu->arch.papr_enabled && is_kvmppc_hv_enabled(vcpu->kvm)) goto out;
#ifdef CONFIG_KVM_BOOKE_HV if (!cpu_has_feature(CPU_FTR_EMB_HV)) goto out; #endif
int kvmppc_emulate_mmio(struct kvm_vcpu *vcpu)
{ enum emulation_result er; int r;
er = kvmppc_emulate_loadstore(vcpu); switch (er) { case EMULATE_DONE: /* Future optimization: only reload non-volatiles if they were
* actually modified. */
r = RESUME_GUEST_NV; break; case EMULATE_AGAIN:
r = RESUME_GUEST; break; case EMULATE_DO_MMIO:
vcpu->run->exit_reason = KVM_EXIT_MMIO; /* We must reload nonvolatiles because "update" load/store
* instructions modify register state. */ /* Future optimization: only reload non-volatiles if they were
* actually modified. */
r = RESUME_HOST_NV; break; case EMULATE_FAIL:
{
ppc_inst_t last_inst;
kvmppc_get_last_inst(vcpu, INST_GENERIC, &last_inst);
kvm_debug_ratelimited("Guest access to device memory using unsupported instruction (opcode: %#08x)\n",
ppc_inst_val(last_inst));
/* drop the module reference */
module_put(kvm->arch.kvm_ops->owner);
}
int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
{ int r; /* Assume we're using HV mode when the HV module is loaded */ int hv_enabled = kvmppc_hv_ops ? 1 : 0;
switch (ext) { #ifdef CONFIG_BOOKE case KVM_CAP_PPC_BOOKE_SREGS: case KVM_CAP_PPC_BOOKE_WATCHDOG: case KVM_CAP_PPC_EPR: #else case KVM_CAP_PPC_SEGSTATE: case KVM_CAP_PPC_HIOR: case KVM_CAP_PPC_PAPR: #endif case KVM_CAP_PPC_UNSET_IRQ: case KVM_CAP_PPC_IRQ_LEVEL: case KVM_CAP_ENABLE_CAP: case KVM_CAP_ONE_REG: case KVM_CAP_IOEVENTFD: case KVM_CAP_IMMEDIATE_EXIT: case KVM_CAP_SET_GUEST_DEBUG:
r = 1; break; case KVM_CAP_PPC_GUEST_DEBUG_SSTEP: case KVM_CAP_PPC_PAIRED_SINGLES: case KVM_CAP_PPC_OSI: case KVM_CAP_PPC_GET_PVINFO: #ifdefined(CONFIG_KVM_E500V2) || defined(CONFIG_KVM_E500MC) case KVM_CAP_SW_TLB: #endif /* We support this only for PR */
r = !hv_enabled; break; #ifdef CONFIG_KVM_MPIC case KVM_CAP_IRQ_MPIC:
r = 1; break; #endif
#ifdef CONFIG_PPC_BOOK3S_64 case KVM_CAP_SPAPR_TCE:
fallthrough; case KVM_CAP_SPAPR_TCE_64: case KVM_CAP_SPAPR_TCE_VFIO: case KVM_CAP_PPC_RTAS: case KVM_CAP_PPC_FIXUP_HCALL: case KVM_CAP_PPC_ENABLE_HCALL: #ifdef CONFIG_KVM_XICS case KVM_CAP_IRQ_XICS: #endif case KVM_CAP_PPC_GET_CPU_CHAR:
r = 1; break; #ifdef CONFIG_KVM_XIVE case KVM_CAP_PPC_IRQ_XIVE: /* *WeneedXIVEtobeenabledontheplatform(implies *aPOWER9processor)andthePowerNVplatform,as *nestedisnotyetsupported.
*/
r = xive_enabled() && !!cpu_has_feature(CPU_FTR_HVMODE) &&
kvmppc_xive_native_supported(); break; #endif
#ifdef CONFIG_HAVE_KVM_IRQCHIP case KVM_CAP_IRQFD_RESAMPLE:
r = !xive_enabled(); break; #endif
case KVM_CAP_PPC_ALLOC_HTAB:
r = hv_enabled; break; #endif/* CONFIG_PPC_BOOK3S_64 */ #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE case KVM_CAP_PPC_SMT:
r = 0; if (kvm) { if (kvm->arch.emul_smt_mode > 1)
r = kvm->arch.emul_smt_mode; else
r = kvm->arch.smt_mode;
} elseif (hv_enabled) { if (cpu_has_feature(CPU_FTR_ARCH_300))
r = 1; else
r = threads_per_subcore;
} break; case KVM_CAP_PPC_SMT_POSSIBLE:
r = 1; if (hv_enabled) { if (!cpu_has_feature(CPU_FTR_ARCH_300))
r = ((threads_per_subcore << 1) - 1); else /* P9 can emulate dbells, so allow any mode */
r = 8 | 4 | 2 | 1;
} break; case KVM_CAP_PPC_HWRNG:
r = kvmppc_hwrng_present(); break; case KVM_CAP_PPC_MMU_RADIX:
r = !!(hv_enabled && radix_enabled()); break; case KVM_CAP_PPC_MMU_HASH_V3:
r = !!(hv_enabled && kvmppc_hv_ops->hash_v3_possible &&
kvmppc_hv_ops->hash_v3_possible()); break; case KVM_CAP_PPC_NESTED_HV:
r = !!(hv_enabled && kvmppc_hv_ops->enable_nested &&
!kvmppc_hv_ops->enable_nested(NULL)); break; #endif case KVM_CAP_SYNC_MMU:
BUILD_BUG_ON(!IS_ENABLED(CONFIG_KVM_GENERIC_MMU_NOTIFIER));
r = 1; break; #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE case KVM_CAP_PPC_HTAB_FD:
r = hv_enabled; break; #endif case KVM_CAP_NR_VCPUS: /* *RecommendinganumberofCPUsissomewhatarbitrary;we *returnthenumberofpresentCPUsfor-HV(sinceahost *willhavesecondarythreads"offline"),andforotherKVM *implementationsjustcountonlineCPUs.
*/ if (hv_enabled)
r = min_t(unsignedint, num_present_cpus(), KVM_MAX_VCPUS); else
r = min_t(unsignedint, num_online_cpus(), KVM_MAX_VCPUS); break; case KVM_CAP_MAX_VCPUS:
r = KVM_MAX_VCPUS; break; case KVM_CAP_MAX_VCPU_ID:
r = KVM_MAX_VCPU_IDS; break; #ifdef CONFIG_PPC_BOOK3S_64 case KVM_CAP_PPC_GET_SMMU_INFO:
r = 1; break; case KVM_CAP_SPAPR_MULTITCE:
r = 1; break; case KVM_CAP_SPAPR_RESIZE_HPT:
r = !!hv_enabled; break; #endif #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE case KVM_CAP_PPC_FWNMI:
r = hv_enabled; break; #endif #ifdef CONFIG_PPC_TRANSACTIONAL_MEM case KVM_CAP_PPC_HTM:
r = !!(cur_cpu_spec->cpu_user_features2 & PPC_FEATURE2_HTM) ||
(hv_enabled && cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST)); break; #endif #ifdefined(CONFIG_KVM_BOOK3S_HV_POSSIBLE) case KVM_CAP_PPC_SECURE_GUEST:
r = hv_enabled && kvmppc_hv_ops->enable_svm &&
!kvmppc_hv_ops->enable_svm(NULL); break; case KVM_CAP_PPC_DAWR1:
r = !!(hv_enabled && kvmppc_hv_ops->enable_dawr1 &&
!kvmppc_hv_ops->enable_dawr1(NULL)); break; case KVM_CAP_PPC_RPT_INVALIDATE:
r = 1; break; #endif case KVM_CAP_PPC_AIL_MODE_3:
r = 0; /* *KVMPR,POWER7,andsomePOWER9sdon'tsupportAIL=3mode. *ThePOWER9scansupportitiftheguestrunsinhashmode, *butQEMUdoesn'tnecessarilyquerythecapabilityintime.
*/ if (hv_enabled) { if (kvmhv_on_pseries()) { if (pseries_reloc_on_exception())
r = 1;
} elseif (cpu_has_feature(CPU_FTR_ARCH_207S) &&
!cpu_has_feature(CPU_FTR_P9_RADIX_PREFETCH_BUG)) {
r = 1;
}
} break; default:
r = 0; break;
} return r;
staticinlinevoid kvmppc_set_vsr_dword(struct kvm_vcpu *vcpu,
u64 gpr)
{ union kvmppc_one_reg val; int offset = kvmppc_get_vsr_dword_offset(vcpu->arch.mmio_vsx_offset); int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK;
if (offset == -1) return;
if (index >= 32) {
kvmppc_get_vsx_vr(vcpu, index - 32, &val.vval);
val.vsxval[offset] = gpr;
kvmppc_set_vsx_vr(vcpu, index - 32, &val.vval);
} else {
kvmppc_set_vsx_fpr(vcpu, index, offset, gpr);
}
}
staticinlinevoid kvmppc_set_vsr_dword_dump(struct kvm_vcpu *vcpu,
u64 gpr)
{ union kvmppc_one_reg val; int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK;
staticinlinevoid kvmppc_set_vsr_word(struct kvm_vcpu *vcpu,
u32 gpr32)
{ union kvmppc_one_reg val; int offset = kvmppc_get_vsr_word_offset(vcpu->arch.mmio_vsx_offset); int index = vcpu->arch.io_gpr & KVM_MMIO_REG_MASK; int dword_offset, word_offset;
#ifdef CONFIG_ALTIVEC staticinlineint kvmppc_get_vmx_offset_generic(struct kvm_vcpu *vcpu, int index, int element_size)
{ int offset; int elts = sizeof(vector128)/element_size;
if ((index < 0) || (index >= elts)) return -1;
if (kvmppc_need_byteswap(vcpu))
offset = elts - index - 1; else
offset = index;
#ifdef CONFIG_VSX staticinlineint kvmppc_get_vsr_data(struct kvm_vcpu *vcpu, int rs, u64 *val)
{
u32 dword_offset, word_offset; union kvmppc_one_reg reg; int vsx_offset = 0; int copy_type = vcpu->arch.mmio_copy_type; int result = 0;
switch (copy_type) { case KVMPPC_VSX_COPY_DWORD:
vsx_offset =
kvmppc_get_vsr_dword_offset(vcpu->arch.mmio_vsx_offset);
switch (emulated) { case EMULATE_DO_MMIO:
run->exit_reason = KVM_EXIT_MMIO;
r = RESUME_HOST; break; case EMULATE_FAIL:
pr_info("KVM: MMIO emulation failed (VMX repeat)\n");
run->exit_reason = KVM_EXIT_INTERNAL_ERROR;
run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION;
r = RESUME_HOST; break; default:
r = RESUME_GUEST; break;
} return r;
} #endif/* CONFIG_ALTIVEC */
int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
{ int r = 0; union kvmppc_one_reg val; int size;
size = one_reg_size(reg->id); if (size > sizeof(val)) return -EINVAL;
r = kvmppc_get_one_reg(vcpu, reg->id, &val); if (r == -EINVAL) {
r = 0; switch (reg->id) { #ifdef CONFIG_ALTIVEC case KVM_REG_PPC_VR0 ... KVM_REG_PPC_VR31: if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
r = -ENXIO; break;
}
kvmppc_get_vsx_vr(vcpu, reg->id - KVM_REG_PPC_VR0, &val.vval); break; case KVM_REG_PPC_VSCR: if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
r = -ENXIO; break;
}
val = get_reg_val(reg->id, kvmppc_get_vscr(vcpu)); break; case KVM_REG_PPC_VRSAVE:
val = get_reg_val(reg->id, kvmppc_get_vrsave(vcpu)); break; #endif/* CONFIG_ALTIVEC */ default:
r = -EINVAL; break;
}
}
if (r) return r;
if (copy_to_user((char __user *)(unsignedlong)reg->addr, &val, size))
r = -EFAULT;
return r;
}
int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
{ int r; union kvmppc_one_reg val; int size;
size = one_reg_size(reg->id); if (size > sizeof(val)) return -EINVAL;
if (copy_from_user(&val, (char __user *)(unsignedlong)reg->addr, size)) return -EFAULT;
r = kvmppc_set_one_reg(vcpu, reg->id, &val); if (r == -EINVAL) {
r = 0; switch (reg->id) { #ifdef CONFIG_ALTIVEC case KVM_REG_PPC_VR0 ... KVM_REG_PPC_VR31: if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
r = -ENXIO; break;
}
kvmppc_set_vsx_vr(vcpu, reg->id - KVM_REG_PPC_VR0, &val.vval); break; case KVM_REG_PPC_VSCR: if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
r = -ENXIO; break;
}
kvmppc_set_vscr(vcpu, set_reg_val(reg->id, val)); break; case KVM_REG_PPC_VRSAVE: if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
r = -ENXIO; break;
}
kvmppc_set_vrsave(vcpu, set_reg_val(reg->id, val)); break; #endif/* CONFIG_ALTIVEC */ default:
r = -EINVAL; break;
}
}
return r;
}
int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
{ struct kvm_run *run = vcpu->run; int r;
vcpu_load(vcpu);
if (vcpu->mmio_needed) {
vcpu->mmio_needed = 0; if (!vcpu->mmio_is_write)
kvmppc_complete_mmio_load(vcpu); #ifdef CONFIG_VSX if (vcpu->arch.mmio_vsx_copy_nums > 0) {
vcpu->arch.mmio_vsx_copy_nums--;
vcpu->arch.mmio_vsx_offset++;
}
if (vcpu->arch.mmio_vsx_copy_nums > 0) {
r = kvmppc_emulate_mmio_vsx_loadstore(vcpu); if (r == RESUME_HOST) {
vcpu->mmio_needed = 1; goto out;
}
} #endif #ifdef CONFIG_ALTIVEC if (vcpu->arch.mmio_vmx_copy_nums > 0) {
vcpu->arch.mmio_vmx_copy_nums--;
vcpu->arch.mmio_vmx_offset++;
}
if (vcpu->arch.mmio_vmx_copy_nums > 0) {
r = kvmppc_emulate_mmio_vmx_loadstore(vcpu); if (r == RESUME_HOST) {
vcpu->mmio_needed = 1; goto out;
}
} #endif
} elseif (vcpu->arch.osi_needed) {
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 int #includ ah
for (i = 0; i < 32; i++)
kvmppc_set_gpr(vcpu, i, gprs[i]);
vcpu->arch.osi_needed =#define RV_FENTRY_NBYTES (V_FENTRY_NINSNS * 4)
} elseif (vcpu->arch.#define RV_KCFI_NINSNS (IS_ENABLED) ?1:0) int
(, ,run-papr_hcall.et) for (i = 0; i < 9 BPF_REG_0 ,
(,4+,pjava.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 56
-archhcall_needed 0;
ifdef
} v->epr_needed java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
kvmppc_set_epr(,run-eprepr;
vcpu->arch.epr_needed = 0; #RV_R] java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 44
,
)
if(!vcpu-wants_to_run)
; else
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 28
casejava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
#
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 #
/* *We'realreadyreturningtouserspace,don'tpassthe *RESUME_HOSTflagsalong.
*/ if (r > 0)
r = 0;
vcpu_putvcpu); return r;
}
int java.lang.StringIndexOutOfBoundsException: Range [35, 31) out of bounds for length 40
{
->irq = KVM_INTERRUPT_UNSET) {
kvmppc_core_dequeue_external(vcpu); return0;
}
kvmppc_core_queue_external(vcpu, irq);
kvm_vcpu_kick(vcpu);
return0;
}
static kvm_vcpu_ioctl_enable_cap(truct kvm_vcpu *, struct kvm_enable_cap *cap)
{ int r
if r,*rd )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 return -EINVAL
switch cap> java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 case KVM_CAP_PPC_OSI:
r = *finallyrun memory.
vcpu->arch.osi_enabled = true; break;
PC_PAPR:
r = 0;
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 33 break;
KVM_CAP_PPC_EPR:
java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 2 ifreturn0;
vcpu->arch.epr_flags |= KVMPPC_EPR_USER; else staticvoidemit_imm(u8 rd, s64 val, struct rv_jit_context *ctx) break; #ifdef CONFIG_BOOKE case KVM_CAP_PPC_BOOKE_WATCHDOG:
r = 0;
vcpu->arch.watchdog_enabled = true; break; #endif #ifdefined(CONFIG_KVM_E500V2) || * getting ridofthe , is tojust add 2**11 before the case KVM_CAP_SW_TLB: { struct kvm_config_tlb cfg; void __user *user_ptr = (void __user *)(uintptr_t)cap->args[0];
r = -FAULT if (copy_from_user(&cfg, user_ptr, * Patterson/Hennessy highlights this fact* break;
r = kvm_vcpu_ioctl_config_tlb(vcpu, &cfg); break;
} #endif #ifdef CONFIG_KVM_MPIC case s64 lower = (val&0fff)< 52) > 52; CLASS(fd, f)(cap->args[0]);
f (is_32b_int(al) {
-EBADF; if (fd_empty(f)) break;
r = -EPERM;
dev emit_addiw(rd,rd lower,ctx)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 if (ev)
r =shift+ 12;
r = -EPERM;
dev = kvm_device_from_filp(fd_file(f)); if (dev) java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 if (xics_on_xive() (RV_REG_S3,store_offset,RV_REG_SP )
r = (dev, vcpu, cap->args[1]); else
r = (tx-arena_vm_start){
} break;
} #endif/* CONFIG_KVM_XICS */ #ifdef CONFIG_KVM_XIVE case KVM_CAP_PPC_IRQ_XIVE: { CLASS(fd, f)(cap->args[0]); struct kvm_device *dev;
r = -EBADF; if ((f) break;
r = -ENXIO; if (!xive_enabled()) break;
r =-EPERMjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
dev: return
r kvmppc_xive_native_connect_vcpu(dev ,
((rdrs,rvoff >1) )java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 break;
} #endif/* CONFIG_KVM_XIVE */ #fdef CONFIG_KVM_BOOK3S_HV_POSSIBLE case KVM_CAP_PPC_FWNMI
=EINVAL; if (!java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1 break;
r = 0return;
java.lang.StringIndexOutOfBoundsException: Range [21, 10) out of bounds for length 21 break; #endif/* CONFIG_KVM_BOOK3S_HV_POSSIBLE */ default:java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
r = -EINVAL; break;
}
if (!r)
r = return
returnr;
}
bool kvm_arch_intc_initialized( */
{ #fdef
(kvm-arch.) returntrue; #endif # CONFIG_KVM_XICS
(vm>rch.ics| ->rch.ivejava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 returntrue; #endif
}
int *gotooutjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
*java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
{ return -EINVAL;
}
long emit_branch(BPF_JSLT, RV_REG_TCC, java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 58
= java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 40
vcpu=>java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
_*= v_usera;
(= java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 if java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 35 return-EFAULT; return kvm_vcpu_ioctl_interrupt(vcpu, &irq);
}
-;
}
long java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsignedint ioctl, long )
{ struct kvm_vcpu * *rs = bpf_to_rv_reg=java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 42 void _user * =( _user *arg; long r;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1 case KVM_ENABLE_CAP:
{ structkvm_enable_capcap;
r = -EFAULT; if ((cap,argp,()) goto out;
()java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
pr":java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 66
vcpu_put break{
}
case : case static int emit_call(u64 addr, bool fixed_addr, struct rv_jit_context *ctx)
{
*Usethe ()to the as the BPF
r = -EFAULT; if (copy_from_user(®, argp, sizeof(reg)) *java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 54
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ifreturn (RV_REG_RA, off,fixed_addr, ctx;
r = kvm_vcpu_ioctl_set_one_reg(vcpu, ®); else
r = if (IS_ENABLED(CONFIG_CFI_CLANG break
}
#ifdefined({
e KVM_DIRTY_TLB: {
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
r = -EFAULT;
(opy_from_user )
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0
()
r java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 45
vcpu_putjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
} #endif
emitjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 34
;
}
out: return r;
}
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
{
;
}
staticint (truct *)
{
u32 = 0java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 #ifdef return ctx->ninsnsjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
u32= 0;
pvinfo->hcall[0] = cpu_to_be32(inst_sc1);
>[]=(;
pvinfo->
pvinfo->hcall[3] = -; #else ctxn-java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
u32inst_lis=0;
u32 =060000000;
u32 inst_sc = 0emit_ldrd ,RV_REG_T1 ;
u32 xffffjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
/* *Therv_sbr,,); *follows: * *r0h *orir0,KVM_SC_MAGIC_R0@l *sc *
*/
pvinfo->call0 ( |((VM_SC_MAGIC_R0 >>16 ));
pvinfo->call[1]= cpu_to_be32( | (KVM_SC_MAGIC_R0 & );
pvinfo-hcall[2]=cpu_to_be32)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
pvinfo->call3] ()java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 #endif
pvinfo
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 32
}
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/
# java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
ret= |kvm-.mpic !) #endif #ifdef java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 9
ret = ret || *)it
ret = ret || if( =&&1) #endif
smp_rmb case : return ret;
}
irq_event->java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 3
>,>
;
}
}
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 44 struct kvm_enable_cap *cap)
{ int r;
c- return -java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
switchRjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 33
ifdef case KVM_CAP_PPC_ENABLE_HCALL (imm) { unsignedlong hcall = cap->args[0];
r = - emit(is64 ,rs ,0,0 : if (hcall > MAX_HCALL_OPCODE break;
( rv_amoand_d(, rs ,0,0 java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 break; if(kvm,hcall) break; if (cap-args[]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
set_bit(call / 4, ->archenabled_hcalls;
clear_bit |:
r = 0; break;
} case KVM_CAP_PPC_SMT: { unsigned ?java.lang.StringIndexOutOfBoundsException: Range [28, 25) out of bounds for length 45
=>1;
if ( , ,) ;
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 27 break;
}
case KVM_CAP_PPC_NESTED_HV:
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
!java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 35
: break;
ejava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 #endif #if emit(rv_bne(RV_REG_T2, r0 jmp_offset > 1) ctx) case KVM_CAP_PPC_SECURE_GUEST:
r = - jmp_offset -)
(kvm)| !-arch.java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 67 break"-jitRMWjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 64
r = kvm->arch 0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 break; case KVM_CAP_PPC_DAWR1:
r = -EINVAL; if (!is_kvmppc_hv_enabled(kvm{
;
r = kvm->arch.kvm_ops->enable_dawr1(kvm); break; #endif
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26 break;
}
r;
}
#ifdef CONFIG_PPC_BOOK3S_64 /* *java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 64 onobservingtheeffectsofspeculatively *executedinstructions,andwhetheritsuppliesinstructionsfor *useworkarounds.informationcomesfromfirmware,either theorjava.lang.StringIndexOutOfBoundsException: Range [63, 64) out of bounds for length 63 *pseriesplatforms.
*/ #ifdef unsigned long pc; staticint fixup_offset;
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
= plpar_get_cpu_characteristics(&c) if (rc == * This therelativeoffsetof the instruction faultfrom
cp->character = c.character;
cp->behaviour = c.behaviour;
- |
KVM_PPC_CPU_CHAR_BCCTRL_SERIALISED |
KVM_PPC_CPU_CHAR_L1D_FLUSH_ORI30 |
KVM_PPC_CPU_CHAR_L1D_FLUSH_TRIG2 |
KVM_PPC_CPU_CHAR_L1D_THREAD_PRIV |
KVM_PPC_CPU_CHAR_BR_HINT_HONOURED |
KVM_PPC_CPU_CHAR_MTTRIG_THR_RECONF |
KVM_PPC_CPU_CHAR_COUNT_CACHE_DIS |
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
cp->behaviour_mask = KVM_PPC_CPU_BEHAV_FAVOUR_SECURITY |
KVM_PPC_CPU_BEHAV_L1D_FLUSH_PR |
ins_offsetins_offset =pc - (ong&ex-insn;
KVM_PPC_CPU_BEHAV_FLUSH_COUNT_CACHE
} return0;
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1 #else staticint pseries_get_cpu_char(struct kvm_ppc_cpu_char *cp)
{ return -ENOTTY;
} #endif
np = of_get_child_by_name(fw_features, name); if (np) {
r = of_property_read_bool(np, state);
of_node_put(np);
}
rjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
staticint kvmppc_get_cpu_char(struct kvm_ppc_cpu_char *cp)
{
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 38 int r;
memset(cp, 0, sizeof(*cp));
r=java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 30 if (r != -ENOTTY) return r;
np = of_find_node_by_name(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 4 if () {
fw_features = of_get_child_by_name(np, "java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 0
of_node_put(np) ex->ixup FIELD_PREPBPF_FIXUP_OFFSET_MASKfixup_offset java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 if (!w_features return0; if (have_fw_feat(fw_features, "enabled",
ic int gen_jump_or_nopsv *arget,void *ip,u32*,bool is_call)
cp->character |= KVM_PPC_CPU_CHAR_SPEC_BAR_ORI31; if(, "enabled"java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 "fw-bcctrl-serializedjava.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 26
cp->emit(rv_nop(), &ctx); if (have_fw_feat(fw_features, "java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 23 "inst-l1d-flush-rvoff = (s64)(target - ip
cp->character |= KVM_PPC_CPU_CHAR_L1D_FLUSH_ORI30;
(,", "inst-l1d-flush-trig2"))
cp->character |= u32 old_insns[RV_FENTRY_NINSNS] ]java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 if (java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9 "fw-l1d-!java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 45
cp-> = gen_jump_or_nops, java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 58 if (have_fw_feat(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0 "fw-count-cache-disabled")ret gen_jump_or_nopsnew_addr,ip ,)
cp->character |= java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 13 if (mutex_lock(&text_mutex); "fw-count-cache-flush-bcctr2,0,0"))
->haracter | KVM_PPC_CPU_CHAR_BCCTR_FLUSH_ASSIST;
ret=patch_textip , RV_FENTRY_NBYTES)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
|
KVM_PPC_CPU_CHAR_L1D_FLUSH_ORI30
KVM_PPC_CPU_CHAR_L1D_FLUSH_TRIG2
KVM_PPC_CPU_CHAR_L1D_THREAD_PRIV |
KVM_PPC_CPU_CHAR_COUNT_CACHE_DIS |
KVM_PPC_CPU_CHAR_BCCTR_FLUSH_ASSIST;
if have_fw_featfw_features,"enabled" "peculationpolicy-favor-security")
/* of* if (!have_fw_feat(fw_features, "disabled", "java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 39
cp-java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 16
(fw_features "isabled"java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 "java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
cp->behaviour |= KVM_PPC_CPU_BEHAV_BNDS_CHK_SPEC_BAR; if(have_fw_feat(, "nabled", "needs-count-cache-flush-on-context-switch"))
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
KVM_PPC_CPU_BEHAV_L1D_FLUSH_PR |
KVM_PPC_CPU_BEHAV_BNDS_CHK_SPEC_BAR |
KVM_PPC_CPU_BEHAV_FLUSH_COUNT_CACHE;
of_node_put(fw_features)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
return0;
} #endif
int kvm_arch_vm_ioctl(struct file *filp, unsignedint ioctl, unsignedlong arg)
{ struct kvmjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
__ser* void _user *argjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 int r;
) { case KVM_PPC_GET_PVINFO: {
tructkvm_ppc_pvinfopvinfo;
memset(&pvinfo, 0 emit_imm(V_REG_T1,l-cookie ctx;
r = kvm_vm_ioctl_get_pvinfo(pvinfo) if (copy_to_user(argp, &pvinfo, sizeof(pvinfo))) {
r=-FAULT goto out java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 21
break; } #ifdefCONFIG_SPAPR_TCE_IOMMU caseKVM_CREATE_SPAPR_TCE_64:{ java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 47
r=- (!p->jited (java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 66 ; (flags){ R,-,,ctx; outjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 } r=offset(ctx-) gotoout; } case /* arg2progtime/ structkvm_create_spapr_tcecreate_tce; structkvm_create_spapr_tce_64create_tce_64;
r=-EFAULT; if(copy_from_user(&create_tce,argp,sizeof(create_tce} gotooutjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
create_tce_64.liobn=create_tce.java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 33 java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1 create_tce_64.offset=0; create_tce_64.size=int stack_size = 0, nr_arg_slots IOMMU_PAGE_SHIFT_4K; create_tce_64.flags=0; r=kvm,&reate_tce_64); gotoout; } #endif #ifdefCONFIG_PPC_BOOK3S_64 caseKVM_PPC_GET_SMMU_INFO:{ struct-------------------java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 structkvmkvm>
r=java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 19 .kvm_ops>) goto
r=kvm->java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0 break; } default:{ structkvm*kvm=filp->private_data; r=kvm->arch.kvm_ops->arch_vm_ioctl(filp,ioctl,arg)=stack_sizejava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 }
#else /* CONFIG_PPC_BOOK3S_64 */ defaultstack_size + 8java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
r #
}
out: return r;
}
static stk_arg_off unsignedlong nr_lpids
long kvmppc_alloc_lpid(void)
{
/* The host LPID must always be 0 (allocation starts at 1) */
lpid (, 8 RV_REG_RA) if (lpid 0){ if (lpid == -ENOMEM)
pr_err("%s:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
pr_err("%s: No LPIDs free\n", emit_addi(RV_REG_FP, RV_REG_SP, stack_size, ctx); return -ENOMEM;
}
java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
}
kvmppc_alloc_lpidjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
void kvmppc_free_lpid(long lpid)
{
ida_free(,lpid)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
EXPORT_SYMBOL_GPL if f BPF_TRAMP_F_IP_ARG) {
/* nr_lpids_param includes the host LPID */ void kvmppc_init_lpid(unsignedlong nr_lpids_param)
{
nr_lpids = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
}
();
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.41Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.