freebsd-src/sys/dev/hyperv
Wei Hu 999174ba03 Hyper-V: vPCI: fix cpu id mis-mapping in vmbus_pcib_map_msi()
The msi address contains apic id. The code in vmbus_pcib_map_msi()
treats it as cpu id, which could cause mis-configuration of msix
IRQs, leading to missing interrupts for SRIOV devices. This happens
when apic id is not the same as cpu id on certain large VM sizes
with multiple numa domains in Azure. Fix this issue by correctly
mapping apic ids to cpu ids.

On vPCI version before 1.4, it only supports up to 64 vcpus
for msi/msix interrupt. This change also adds a check and returns
error if the vcpu_id is greater than 63.

Reported by:	NetApp
Tested by:	whu
MFC after:	1 week
2024-03-08 10:16:10 +00:00
..
hvsock sockets: make pr_shutdown fully protocol specific method 2024-01-16 10:30:37 -08:00
include sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
input sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
netvsc if_hn: Fix two typos in source code comments 2024-02-24 10:13:44 +01:00
pcib Hyper-V: vPCI: fix cpu id mis-mapping in vmbus_pcib_map_msi() 2024-03-08 10:16:10 +00:00
storvsc sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
utilities sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vmbus sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00