freebsd-src/sys/dev/hyperv
Wei Hu 17050a2b5b Hyper-V: vmbus: Prevent load/store reordering when access ring buffer index
When running VM on ARM64 Hyper-V, we have seen netvsc/hn driver hit
assert on reading duplicated network completion packets over vmbus
channel or one of the tx channels stalls completely. This seems to
caused by processor reordering the instructions when vmbus driver
reading or updating its channel ring buffer indexes.

Fix this by using load acquire and store release instructions to
enforce the order of these memory accesses.

PR:		271764
Reported by:	Souradeep Chakrabarti <schakrabarti@microsoft.com>
Reviewed by:	Souradeep Chakrabarti <schakrabarti@microsoft.com>
Tested by:	whu
Sponsored by:	Microsoft
2023-06-21 10:10:49 +00:00
..
hvsock spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
include Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
input sys/kbio.h: make pre-unicode keymap support optional 2023-02-14 14:03:28 +01:00
netvsc Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
pcib Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
storvsc spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
utilities spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
vmbus Hyper-V: vmbus: Prevent load/store reordering when access ring buffer index 2023-06-21 10:10:49 +00:00