[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e8a2b63f-4f9a-463b-b419-c5f673191111@web.de>
Date: Mon, 4 Mar 2024 11:52:23 +0100
From: Markus Elfring <Markus.Elfring@....de>
To: linux-input@...r.kernel.org, kernel-janitors@...r.kernel.org,
Dmitry Torokhov <dmitry.torokhov@...il.com>, Jeff LaBundy
<jeff@...undy.com>, Rob Herring <robh@...nel.org>,
Uwe Kleine-König <u.kleine-koenig@...gutronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>
Subject: [PATCH v2] Input: iqs626a - Use scope-based resource management in
iqs626_parse_events()
From: Markus Elfring <elfring@...rs.sourceforge.net>
Date: Mon, 4 Mar 2024 11:40:04 +0100
Scope-based resource management became supported also for this software
area by contributions of Jonathan Cameron on 2024-02-17.
device property: Add cleanup.h based fwnode_handle_put() scope based cleanup.
https://lore.kernel.org/r/20240217164249.921878-3-jic23@kernel.org
* Thus use the attribute “__free(fwnode_handle)”.
* Reduce the scope for the local variable “ev_node” into a for loop.
Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net>
---
v2:
An other cleanup technique was applied as requested by Dmitry Torokhov
and Jeff LaBundy.
drivers/input/misc/iqs626a.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/input/misc/iqs626a.c b/drivers/input/misc/iqs626a.c
index 0dab54d3a060..86fcb5134f45 100644
--- a/drivers/input/misc/iqs626a.c
+++ b/drivers/input/misc/iqs626a.c
@@ -462,7 +462,6 @@ iqs626_parse_events(struct iqs626_private *iqs626,
{
struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
struct i2c_client *client = iqs626->client;
- struct fwnode_handle *ev_node;
const char *ev_name;
u8 *thresh, *hyst;
unsigned int val;
@@ -501,6 +500,8 @@ iqs626_parse_events(struct iqs626_private *iqs626,
if (!iqs626_channels[ch_id].events[i])
continue;
+ struct fwnode_handle *ev_node __free(fwnode_handle);
+
if (ch_id == IQS626_CH_TP_2 || ch_id == IQS626_CH_TP_3) {
/*
* Trackpad touch events are simply described under the
@@ -530,7 +531,6 @@ iqs626_parse_events(struct iqs626_private *iqs626,
dev_err(&client->dev,
"Invalid input type: %u\n",
val);
- fwnode_handle_put(ev_node);
return -EINVAL;
}
@@ -545,7 +545,6 @@ iqs626_parse_events(struct iqs626_private *iqs626,
dev_err(&client->dev,
"Invalid %s channel hysteresis: %u\n",
fwnode_get_name(ch_node), val);
- fwnode_handle_put(ev_node);
return -EINVAL;
}
@@ -566,7 +565,6 @@ iqs626_parse_events(struct iqs626_private *iqs626,
dev_err(&client->dev,
"Invalid %s channel threshold: %u\n",
fwnode_get_name(ch_node), val);
- fwnode_handle_put(ev_node);
return -EINVAL;
}
@@ -575,8 +573,6 @@ iqs626_parse_events(struct iqs626_private *iqs626,
else
*(thresh + iqs626_events[i].th_offs) = val;
}
-
- fwnode_handle_put(ev_node);
}
return 0;
--
2.44.0
Powered by blists - more mailing lists