acrn-hypervisor/hypervisor/arch/x86
Wu Zhou fa97e32917 hv: bugfix: skip invalid ffs64 return value
ffs64() returns INVALID_BIT_INDEX (0xffffU) when it tries to deal with
zero input value. This may happen In calculate_logical_dest_mask() when
the guest tries to write some illegal destination IDs to MSI config
registers of a pt-device. The ffs64() return value is used as per_cpu
array index, and it would cause a page fault.

This patch adds protection to the per_cpu array, making this function
return zero on illegal value. As in logical destination's definition, a
zero logical designation would point to no CPU.

Fixes: 89d11d91e
Tracked-On: #8454
Signed-off-by: Wu Zhou <wu.zhou@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
2023-07-14 17:38:16 +08:00
..
boot Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
configs Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
guest hv: bugfix: skip invalid ffs64 return value 2023-07-14 17:38:16 +08:00
lib hv: shell: improve console to modify input easier 2022-07-28 23:31:43 +08:00
seed Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
cpu_caps.c hv: cve hotfix: Disable RRSBA on platform using retpoline 2022-07-22 09:38:41 +08:00
cpu_state_tbl.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
cpu.c hv: change the version format 2022-11-21 09:45:26 +08:00
e820.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
exception.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
gdt.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
idt.S Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
init.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
ioapic.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
irq.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
lapic.c hv: use kick-mode in per-cpu to control kick pCPU 2022-09-26 13:28:02 +08:00
mmu.c hv: refine the sworld memory allocate 2022-10-19 15:58:25 +08:00
nmi.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
notify.c hv: improve smp call to support debugging RTVM 2022-09-26 13:28:02 +08:00
page.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
pagetable.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
platform_caps.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
pm.c hv: add ACRN CPU frequency initializer 2022-10-08 11:13:21 +08:00
rdt.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
rtcm.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
sched.S Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
security.c hv: change 'DISABLED' settings to 'ENABLED' 2022-08-17 09:23:33 +08:00
sgx.c hv: sgx: refactor partition_epc() 2023-06-06 15:22:19 +08:00
trampoline.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
tsc_deadline_timer.c HV: arch: fix a violation of coding guideline C-TY-24 2021-11-04 18:15:47 +08:00
tsc.c hv: tsc: start HPET counter before calibration 2022-09-15 03:14:01 +08:00
vmx.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
vtd.c Update copyright year range in code headers 2022-07-15 11:48:35 +08:00
wakeup.S Update copyright year range in code headers 2022-07-15 11:48:35 +08:00