> -----Original Message----- > From: David Herrmann [mailto:dh.herrmann@xxxxxxxxx] > Sent: Thursday, December 19, 2013 3:32 AM > To: linux-input@xxxxxxxxxxxxxxx > Cc: Jiri Kosina; Dan Carpenter; Joseph Salisbury; KY Srinivasan; Haiyang Zhang; > linux-kernel@xxxxxxxxxxxxxxx; David Herrmann > Subject: [PATCH] HID: hyperv: make sure input buffer is big enough > > We need at least HID_MAX_BUFFER_SIZE (4096) bytes as input buffer. HID > core depends on this as it requires every input report to be at least as > big as advertised. > > Signed-off-by: David Herrmann <dh.herrmann@xxxxxxxxx> Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > --- > Hi > > Same as for the HIDP patch, if there's a way to avoid the extra copy, please > provide a better patch. > > Thanks > David > > drivers/hid/hid-hyperv.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c > index 8fae6d1..c24908f 100644 > --- a/drivers/hid/hid-hyperv.c > +++ b/drivers/hid/hid-hyperv.c > @@ -157,6 +157,7 @@ struct mousevsc_dev { > u32 report_desc_size; > struct hv_input_dev_info hid_dev_info; > struct hid_device *hid_device; > + u8 input_buf[HID_MAX_BUFFER_SIZE]; > }; > > > @@ -256,6 +257,7 @@ static void mousevsc_on_receive(struct hv_device > *device, > struct synthhid_msg *hid_msg; > struct mousevsc_dev *input_dev = hv_get_drvdata(device); > struct synthhid_input_report *input_report; > + size_t len; > > pipe_msg = (struct pipe_prt_msg *)((unsigned long)packet + > (packet->offset8 << 3)); > @@ -300,9 +302,12 @@ static void mousevsc_on_receive(struct hv_device > *device, > (struct synthhid_input_report *)pipe_msg->data; > if (!input_dev->init_complete) > break; > - hid_input_report(input_dev->hid_device, > - HID_INPUT_REPORT, input_report->buffer, > - input_report->header.size, 1); > + > + len = min(input_report->header.size, > + (u32)sizeof(input_dev->input_buf)); > + memcpy(input_dev->input_buf, input_report->buffer, len); > + hid_input_report(input_dev->hid_device, HID_INPUT_REPORT, > + input_dev->input_buf, len, 1); > break; > default: > pr_err("unsupported hid msg type - type %d len %d", > -- > 1.8.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html