[Bug 271764] buf_ring_dequeue_sc not holding strong for arm64 Azure

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 21 Jun 2023 10:26:22 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271764

--- Comment #2 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=17050a2b5b07160635aaa80b9aa4df4de500b090

commit 17050a2b5b07160635aaa80b9aa4df4de500b090
Author:     Wei Hu <whu@FreeBSD.org>
AuthorDate: 2023-06-21 09:31:46 +0000
Commit:     Wei Hu <whu@FreeBSD.org>
CommitDate: 2023-06-21 10:10:49 +0000

    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

 sys/dev/hyperv/vmbus/vmbus_br.c    | 31 +++++++++++++++++--------------
 sys/dev/hyperv/vmbus/vmbus_brvar.h |  6 ++++--
 2 files changed, 21 insertions(+), 16 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.