2022-07-01 11:30:46

by Lukas Bulwahn

[permalink] [raw]
Subject: [PATCH] HID: core: remove unneeded assignment in hid_process_report()

Commit bebcc522fbee ("HID: core: for input reports, process the usages by
priority list") split the iteration into two distinct loops in
hid_process_report().

After this change, the variable field is only used while iterating in the
second loop and the assignment of values to this variable in the first loop
is simply not needed.

Remove the unneeded assignment during retrieval. No functional change and
no change in the resulting object code.

This was discovered as a dead store with clang-analyzer.

Signed-off-by: Lukas Bulwahn <[email protected]>
---
Benjamin, Jiri, please pick this minor non-urgent clean-up patch.

drivers/hid/hid-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 00154a1cd2d8..b7f5566e338d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1662,7 +1662,7 @@ static void hid_process_report(struct hid_device *hid,

/* first retrieve all incoming values in data */
for (a = 0; a < report->maxfield; a++)
- hid_input_fetch_field(hid, field = report->field[a], data);
+ hid_input_fetch_field(hid, report->field[a], data);

if (!list_empty(&report->field_entry_list)) {
/* INPUT_REPORT, we have a priority list of fields */
--
2.17.1


2022-07-01 13:11:42

by Tom Rix

[permalink] [raw]
Subject: Re: [PATCH] HID: core: remove unneeded assignment in hid_process_report()


On 7/1/22 4:27 AM, Lukas Bulwahn wrote:
> Commit bebcc522fbee ("HID: core: for input reports, process the usages by
> priority list") split the iteration into two distinct loops in
> hid_process_report().
>
> After this change, the variable field is only used while iterating in the
> second loop and the assignment of values to this variable in the first loop
> is simply not needed.
>
> Remove the unneeded assignment during retrieval. No functional change and
> no change in the resulting object code.
>
> This was discovered as a dead store with clang-analyzer.
>
> Signed-off-by: Lukas Bulwahn <[email protected]>
> ---
> Benjamin, Jiri, please pick this minor non-urgent clean-up patch.
>
> drivers/hid/hid-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 00154a1cd2d8..b7f5566e338d 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1662,7 +1662,7 @@ static void hid_process_report(struct hid_device *hid,
>
> /* first retrieve all incoming values in data */
> for (a = 0; a < report->maxfield; a++)
> - hid_input_fetch_field(hid, field = report->field[a], data);
> + hid_input_fetch_field(hid, report->field[a], data);
>
> if (!list_empty(&report->field_entry_list)) {
> /* INPUT_REPORT, we have a priority list of fields */
Reviewed-by: Tom Rix <[email protected]>

2022-07-21 11:49:02

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] HID: core: remove unneeded assignment in hid_process_report()

On Fri, 1 Jul 2022, Lukas Bulwahn wrote:

> Commit bebcc522fbee ("HID: core: for input reports, process the usages by
> priority list") split the iteration into two distinct loops in
> hid_process_report().
>
> After this change, the variable field is only used while iterating in the
> second loop and the assignment of values to this variable in the first loop
> is simply not needed.
>
> Remove the unneeded assignment during retrieval. No functional change and
> no change in the resulting object code.
>
> This was discovered as a dead store with clang-analyzer.
>
> Signed-off-by: Lukas Bulwahn <[email protected]>
> ---
> Benjamin, Jiri, please pick this minor non-urgent clean-up patch.
>
> drivers/hid/hid-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 00154a1cd2d8..b7f5566e338d 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1662,7 +1662,7 @@ static void hid_process_report(struct hid_device *hid,
>
> /* first retrieve all incoming values in data */
> for (a = 0; a < report->maxfield; a++)
> - hid_input_fetch_field(hid, field = report->field[a], data);
> + hid_input_fetch_field(hid, report->field[a], data);
>
> if (!list_empty(&report->field_entry_list)) {

Applied, thanks Lukas.

--
Jiri Kosina
SUSE Labs