Thread (27 messages) 27 messages, 4 authors, 2020-09-14

[PATCH v3 09/11] HID: hyperv: Make ringbuffer at least take two pages

From: Boqun Feng <hidden>
Date: 2020-09-10 21:05:26
Also in: linux-hyperv, linux-input, linux-scsi, lkml, netdev
Subsystem: hid core layer, hyper-v/azure core and drivers, the rest · Maintainers: Jiri Kosina, Benjamin Tissoires, "K. Y. Srinivasan", Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li, Linus Torvalds

When PAGE_SIZE > HV_HYP_PAGE_SIZE, we need the ringbuffer size to be at
least 2 * PAGE_SIZE: one page for the header and at least one page of
the data part (because of the alignment requirement for double mapping).

So make sure the ringbuffer sizes to be at least 2 * PAGE_SIZE when
using vmbus_open() to establish the vmbus connection.

Signed-off-by: Boqun Feng <redacted>
Acked-by: Jiri Kosina <redacted>
---
Hi Jiri,

Thanks for your acked-by. I make a small change in this version (casting
2 * PAGE_SIZE into int to avoid compiler warnings), and it make no
functional change. If the change is inappropriate, please let me know.

 drivers/hid/hid-hyperv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c
index 0b6ee1dee625..8905559b3882 100644
--- a/drivers/hid/hid-hyperv.c
+++ b/drivers/hid/hid-hyperv.c
@@ -104,8 +104,8 @@ struct synthhid_input_report {
 
 #pragma pack(pop)
 
-#define INPUTVSC_SEND_RING_BUFFER_SIZE		(40 * 1024)
-#define INPUTVSC_RECV_RING_BUFFER_SIZE		(40 * 1024)
+#define INPUTVSC_SEND_RING_BUFFER_SIZE	max(40 * 1024, (int)(2 * PAGE_SIZE))
+#define INPUTVSC_RECV_RING_BUFFER_SIZE	max(40 * 1024, (int)(2 * PAGE_SIZE))
 
 
 enum pipe_prot_msg_type {
-- 
2.28.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help