[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200910143455.109293-9-boqun.feng@gmail.com>
Date: Thu, 10 Sep 2020 22:34:52 +0800
From: Boqun Feng <boqun.feng@...il.com>
To: linux-hyperv@...r.kernel.org, linux-input@...r.kernel.org,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
linux-scsi@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Cc: "K. Y. Srinivasan" <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Stephen Hemminger <sthemmin@...rosoft.com>,
Wei Liu <wei.liu@...nel.org>, Jiri Kosina <jikos@...nel.org>,
Benjamin Tissoires <benjamin.tissoires@...hat.com>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
"James E.J. Bottomley" <jejb@...ux.ibm.com>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
Michael Kelley <mikelley@...rosoft.com>, will@...nel.org,
ardb@...nel.org, arnd@...db.de, catalin.marinas@....com,
mark.rutland@....com, maz@...nel.org,
Boqun Feng <boqun.feng@...il.com>
Subject: [PATCH v3 08/11] Input: hyperv-keyboard: Make ringbuffer at least take two pages
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 <boqun.feng@...il.com>
---
drivers/input/serio/hyperv-keyboard.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/serio/hyperv-keyboard.c b/drivers/input/serio/hyperv-keyboard.c
index df4e9f6f4529..6ebc61e2db3f 100644
--- a/drivers/input/serio/hyperv-keyboard.c
+++ b/drivers/input/serio/hyperv-keyboard.c
@@ -75,8 +75,8 @@ struct synth_kbd_keystroke {
#define HK_MAXIMUM_MESSAGE_SIZE 256
-#define KBD_VSC_SEND_RING_BUFFER_SIZE (40 * 1024)
-#define KBD_VSC_RECV_RING_BUFFER_SIZE (40 * 1024)
+#define KBD_VSC_SEND_RING_BUFFER_SIZE max(40 * 1024, (int)(2 * PAGE_SIZE))
+#define KBD_VSC_RECV_RING_BUFFER_SIZE max(40 * 1024, (int)(2 * PAGE_SIZE))
#define XTKBD_EMUL0 0xe0
#define XTKBD_EMUL1 0xe1
--
2.28.0
Powered by blists - more mailing lists