linux/drivers/hv
Michael Kelley 655296c8bb Drivers: hv: vmbus: Fix ring buffer signaling
Fix bugs in signaling the Hyper-V host when freeing space in the
host->guest ring buffer:

1. The interrupt_mask must not be used to determine whether to signal
   on the host->guest ring buffer
2. The ring buffer write_index must be read (via hv_get_bytes_to_write)
   *after* pending_send_sz is read in order to avoid a race condition
3. Comparisons with pending_send_sz must treat the "equals" case as
   not-enough-space
4. Don't signal if the pending_send_sz feature is not present. Older
   versions of Hyper-V that don't implement this feature will poll.

Fixes: 03bad714a1 ("vmbus: more host signalling avoidance")

Cc: Stable <stable@vger.kernel.org> # 4.14 and above
Signed-off-by: Michael Kelley <mhkelley@outlook.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-03-06 09:52:59 -08:00
..
Kconfig x86/hyper-v: Use hypercall for remote TLB flush 2017-08-10 20:16:44 +02:00
Makefile Char/Misc patches for 4.15-rc1 2017-11-16 09:10:59 -08:00
channel.c Drivers: hv: vmbus: Fix a rescind issue 2017-11-28 16:56:26 +01:00
channel_mgmt.c Drivers: hv: vmbus: Fix a rescind issue 2017-11-28 16:56:26 +01:00
connection.c hyper-v: trace channel events 2017-11-04 12:04:26 +01:00
hv.c Drivers: hv: vmbus: Remove x86-isms from arch independent drivers 2018-01-09 17:58:41 +01:00
hv_balloon.c Drivers: hv: balloon: Initialize last_post_time on startup 2017-08-16 09:14:43 -07:00
hv_fcopy.c Drivers: hv: fcopy: restore correct transfer length 2017-09-22 10:29:54 +02:00
hv_kvp.c Drivers: hv: kvp: Use MAX_ADAPTER_ID_SIZE for translating adapter id 2017-08-16 09:14:43 -07:00
hv_snapshot.c Merge 4.11-rc4 into char-misc-next 2017-03-27 09:13:04 +02:00
hv_trace.c hyper-v: trace vmbus_on_msg_dpc() 2017-11-04 12:04:24 +01:00
hv_trace.h hyper-v: trace channel events 2017-11-04 12:04:26 +01:00
hv_util.c hv_utils: fix TimeSync work on pre-TimeSync-v4 hosts 2017-05-25 15:42:42 +02:00
hv_utils_transport.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
hv_utils_transport.h Drivers: hv: util: move waiting for release to hv_utils_transport itself 2017-03-16 16:42:00 +09:00
hyperv_vmbus.h hyper-v: trace vmbus_on_msg_dpc() 2017-11-04 12:04:24 +01:00
ring_buffer.c Drivers: hv: vmbus: Fix ring buffer signaling 2018-03-06 09:52:59 -08:00
vmbus_drv.c vmbus: add monitor_id and subchannel_id to sysfs per channel 2018-01-09 19:50:42 +01:00