A more comprehensive fix has been submitted upstream, but in the meantime, we'd like the first fix to be considered for inclusion in Wily.
The more comprehensive change is a 7-part series submitted Mar 23 in lkml, and uses full memory barrier before making signaling decisions:
"Drivers: hv: vmbus: Cleanup the ring buffer code"
Cleanup and fix a bug in the ring buffer code. Also implement
APIs for in place consumption of received packets.
K. Y. Srinivasan (7):
Drivers: hv: vmbus: Introduce functions for estimating room in the
ring buffer
Drivers: hv: vmbus: Use READ_ONCE() to read variables that are
volatile
Drivers: hv: vmbus: Fix a bug in hv_need_to_signal_on_read()
Drivers: hv: vmbus: Use the new virt_xx barrier code
Drivers: hv: vmbus: Export the vmbus_set_event() API
Drivers: hv: vmbus: Move some ring buffer functions to hyperv.h
Drivers: hv: vmbus: Implement APIs to support "in place" consumption
of vmbus packets
A more comprehensive fix has been submitted upstream, but in the meantime, we'd like the first fix to be considered for inclusion in Wily.
The more comprehensive change is a 7-part series submitted Mar 23 in lkml, and uses full memory barrier before making signaling decisions:
"Drivers: hv: vmbus: Cleanup the ring buffer code"
Cleanup and fix a bug in the ring buffer code. Also implement
APIs for in place consumption of received packets.
K. Y. Srinivasan (7): to_signal_ on_read( )
Drivers: hv: vmbus: Introduce functions for estimating room in the
ring buffer
Drivers: hv: vmbus: Use READ_ONCE() to read variables that are
volatile
Drivers: hv: vmbus: Fix a bug in hv_need_
Drivers: hv: vmbus: Use the new virt_xx barrier code
Drivers: hv: vmbus: Export the vmbus_set_event() API
Drivers: hv: vmbus: Move some ring buffer functions to hyperv.h
Drivers: hv: vmbus: Implement APIs to support "in place" consumption
of vmbus packets
drivers/ hv/connection. c | 1 + hv/hyperv_ vmbus.h | 2 - hv/ring_ buffer. c | 79 ++++--- ------- ------- -- linux/hyperv. h | 156 +++++++ +++++++ +++++++ +++++++ +++++++ +++++++ +++
drivers/
drivers/
include/
4 files changed, 169 insertions(+), 69 deletions(-)
We will test this new change and respond to upstream feedback. The first fix in this bug works for our mutual customers at the moment.