Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/vmm_lapic.c
Show First 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | lapic_set_local_intr(struct vm *vm, int cpu, int vector) | ||||
if (cpu < -1 || cpu >= vm_get_maxcpus(vm)) | if (cpu < -1 || cpu >= vm_get_maxcpus(vm)) | ||||
return (EINVAL); | return (EINVAL); | ||||
if (cpu == -1) | if (cpu == -1) | ||||
dmask = vm_active_cpus(vm); | dmask = vm_active_cpus(vm); | ||||
else | else | ||||
CPU_SETOF(cpu, &dmask); | CPU_SETOF(cpu, &dmask); | ||||
error = 0; | error = 0; | ||||
while ((cpu = CPU_FFS(&dmask)) != 0) { | CPU_FOREACH_ISSET(cpu, &dmask) { | ||||
cpu--; | |||||
CPU_CLR(cpu, &dmask); | |||||
vlapic = vm_lapic(vm, cpu); | vlapic = vm_lapic(vm, cpu); | ||||
error = vlapic_trigger_lvt(vlapic, vector); | error = vlapic_trigger_lvt(vlapic, vector); | ||||
if (error) | if (error) | ||||
break; | break; | ||||
rlibby: Again, break is broken. | |||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg) | lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t msg) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 139 Lines • Show Last 20 Lines |
Again, break is broken.