2022-10-24 01:44:37

by Paulo Miguel Almeida

[permalink] [raw]
Subject: [PATCH] [next] HID: hyperv: remove unused struct synthhid_msg

struct synthhid_msg was meant to be a generic representation of the
possible protocol messages sent through VMBus. In practice, only the
header is read and depending on the message type, a cast to the actual
type is done. Also, SYNTHHID_MAX_INPUT_REPORT_SIZE constant isn't used
which I suspect is a leftover from the refactoring made while this
driver was at the staging folder.

This patch removes struct synthhid_msg and refactor the code
accordingly.

Signed-off-by: Paulo Miguel Almeida <[email protected]>
---
drivers/hid/hid-hyperv.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c
index 208cf8d981a5..0be717bb09d4 100644
--- a/drivers/hid/hid-hyperv.c
+++ b/drivers/hid/hid-hyperv.c
@@ -22,9 +22,6 @@ struct hv_input_dev_info {
unsigned short reserved[11];
};

-/* The maximum size of a synthetic input message. */
-#define SYNTHHID_MAX_INPUT_REPORT_SIZE 16
-
/*
* Current version
*
@@ -59,11 +56,6 @@ struct synthhid_msg_hdr {
u32 size;
};

-struct synthhid_msg {
- struct synthhid_msg_hdr header;
- char data[]; /* Enclosed message */
-};
-
union synthhid_version {
struct {
u16 minor_version;
@@ -251,7 +243,7 @@ static void mousevsc_on_receive(struct hv_device *device,
struct vmpacket_descriptor *packet)
{
struct pipe_prt_msg *pipe_msg;
- struct synthhid_msg *hid_msg;
+ struct synthhid_msg_hdr *hid_msg_hdr;
struct mousevsc_dev *input_dev = hv_get_drvdata(device);
struct synthhid_input_report *input_report;
size_t len;
@@ -262,9 +254,9 @@ static void mousevsc_on_receive(struct hv_device *device,
if (pipe_msg->type != PIPE_MESSAGE_DATA)
return;

- hid_msg = (struct synthhid_msg *)pipe_msg->data;
+ hid_msg_hdr = (struct synthhid_msg_hdr *)pipe_msg->data;

- switch (hid_msg->header.type) {
+ switch (hid_msg_hdr->type) {
case SYNTH_HID_PROTOCOL_RESPONSE:
/*
* While it will be impossible for us to protect against
@@ -309,7 +301,7 @@ static void mousevsc_on_receive(struct hv_device *device,
break;
default:
pr_err("unsupported hid msg type - type %d len %d\n",
- hid_msg->header.type, hid_msg->header.size);
+ hid_msg_hdr->type, hid_msg_hdr->size);
break;
}

--
2.37.3


2022-10-24 15:23:17

by Michael Kelley (LINUX)

[permalink] [raw]
Subject: RE: [PATCH] [next] HID: hyperv: remove unused struct synthhid_msg

From: Paulo Miguel Almeida <[email protected]> Sent: Sunday, October 23, 2022 5:58 PM
>
> struct synthhid_msg was meant to be a generic representation of the
> possible protocol messages sent through VMBus. In practice, only the
> header is read and depending on the message type, a cast to the actual
> type is done. Also, SYNTHHID_MAX_INPUT_REPORT_SIZE constant isn't used
> which I suspect is a leftover from the refactoring made while this
> driver was at the staging folder.
>
> This patch removes struct synthhid_msg and refactor the code
> accordingly.
>
> Signed-off-by: Paulo Miguel Almeida <[email protected]>

I noticed this as well when reviewing your change to use flexible arrays.
Thanks for doing this cleanup!

Reviewed-by: Michael Kelley <[email protected]>

> ---
> drivers/hid/hid-hyperv.c | 16 ++++------------
> 1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c
> index 208cf8d981a5..0be717bb09d4 100644
> --- a/drivers/hid/hid-hyperv.c
> +++ b/drivers/hid/hid-hyperv.c
> @@ -22,9 +22,6 @@ struct hv_input_dev_info {
> unsigned short reserved[11];
> };
>
> -/* The maximum size of a synthetic input message. */
> -#define SYNTHHID_MAX_INPUT_REPORT_SIZE 16
> -
> /*
> * Current version
> *
> @@ -59,11 +56,6 @@ struct synthhid_msg_hdr {
> u32 size;
> };
>
> -struct synthhid_msg {
> - struct synthhid_msg_hdr header;
> - char data[]; /* Enclosed message */
> -};
> -
> union synthhid_version {
> struct {
> u16 minor_version;
> @@ -251,7 +243,7 @@ static void mousevsc_on_receive(struct hv_device *device,
> struct vmpacket_descriptor *packet)
> {
> struct pipe_prt_msg *pipe_msg;
> - struct synthhid_msg *hid_msg;
> + struct synthhid_msg_hdr *hid_msg_hdr;
> struct mousevsc_dev *input_dev = hv_get_drvdata(device);
> struct synthhid_input_report *input_report;
> size_t len;
> @@ -262,9 +254,9 @@ static void mousevsc_on_receive(struct hv_device *device,
> if (pipe_msg->type != PIPE_MESSAGE_DATA)
> return;
>
> - hid_msg = (struct synthhid_msg *)pipe_msg->data;
> + hid_msg_hdr = (struct synthhid_msg_hdr *)pipe_msg->data;
>
> - switch (hid_msg->header.type) {
> + switch (hid_msg_hdr->type) {
> case SYNTH_HID_PROTOCOL_RESPONSE:
> /*
> * While it will be impossible for us to protect against
> @@ -309,7 +301,7 @@ static void mousevsc_on_receive(struct hv_device *device,
> break;
> default:
> pr_err("unsupported hid msg type - type %d len %d\n",
> - hid_msg->header.type, hid_msg->header.size);
> + hid_msg_hdr->type, hid_msg_hdr->size);
> break;
> }
>
> --
> 2.37.3

2022-10-24 15:26:43

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] [next] HID: hyperv: remove unused struct synthhid_msg

On Mon, 24 Oct 2022, Paulo Miguel Almeida wrote:

> struct synthhid_msg was meant to be a generic representation of the
> possible protocol messages sent through VMBus. In practice, only the
> header is read and depending on the message type, a cast to the actual
> type is done. Also, SYNTHHID_MAX_INPUT_REPORT_SIZE constant isn't used
> which I suspect is a leftover from the refactoring made while this
> driver was at the staging folder.
>
> This patch removes struct synthhid_msg and refactor the code
> accordingly.

Applied, thanks.

--
Jiri Kosina
SUSE Labs