Message ID | 20240904044806.1047847-1-dmitry.torokhov@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 9a540b67a9c260ae55e7e93443a4413cccf5523d |
Headers | show |
Series | Convert misc input drivers to use new cleanup facilities | expand |
On 04/09/2024 06:48, Dmitry Torokhov wrote: > Use __free(fwnode_handle) cleanup facility to ensure that references to > acquired fwnodes are dropped at appropriate times automatically. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > --- > drivers/input/misc/iqs269a.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/input/misc/iqs269a.c b/drivers/input/misc/iqs269a.c > index c34d847fa4af..1851848e2cd3 100644 > --- a/drivers/input/misc/iqs269a.c > +++ b/drivers/input/misc/iqs269a.c > @@ -550,7 +550,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > const struct fwnode_handle *ch_node) > { > struct i2c_client *client = iqs269->client; > - struct fwnode_handle *ev_node; > struct iqs269_ch_reg *ch_reg; > u16 engine_a, engine_b; > unsigned int reg, val; > @@ -727,8 +726,9 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > } > > for (i = 0; i < ARRAY_SIZE(iqs269_events); i++) { > - ev_node = fwnode_get_named_child_node(ch_node, > - iqs269_events[i].name); > + struct fwnode_handle *ev_node __free(fwnode_handle) = > + fwnode_get_named_child_node(ch_node, > + iqs269_events[i].name); > if (!ev_node) > continue; > > @@ -737,7 +737,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > dev_err(&client->dev, > "Invalid channel %u threshold: %u\n", > reg, val); > - fwnode_handle_put(ev_node); > return -EINVAL; > } > > @@ -751,7 +750,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > dev_err(&client->dev, > "Invalid channel %u hysteresis: %u\n", > reg, val); > - fwnode_handle_put(ev_node); > return -EINVAL; > } > > @@ -767,7 +765,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > } > > error = fwnode_property_read_u32(ev_node, "linux,code", &val); > - fwnode_handle_put(ev_node); > if (error == -EINVAL) { > continue; > } else if (error) { Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Hi Dmitry, On Tue, Sep 03, 2024 at 09:48:05PM -0700, Dmitry Torokhov wrote: > Use __free(fwnode_handle) cleanup facility to ensure that references to > acquired fwnodes are dropped at appropriate times automatically. > > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: Jeff LaBundy <jeff@labundy.com> > --- > drivers/input/misc/iqs269a.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/input/misc/iqs269a.c b/drivers/input/misc/iqs269a.c > index c34d847fa4af..1851848e2cd3 100644 > --- a/drivers/input/misc/iqs269a.c > +++ b/drivers/input/misc/iqs269a.c > @@ -550,7 +550,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > const struct fwnode_handle *ch_node) > { > struct i2c_client *client = iqs269->client; > - struct fwnode_handle *ev_node; > struct iqs269_ch_reg *ch_reg; > u16 engine_a, engine_b; > unsigned int reg, val; > @@ -727,8 +726,9 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > } > > for (i = 0; i < ARRAY_SIZE(iqs269_events); i++) { > - ev_node = fwnode_get_named_child_node(ch_node, > - iqs269_events[i].name); > + struct fwnode_handle *ev_node __free(fwnode_handle) = > + fwnode_get_named_child_node(ch_node, > + iqs269_events[i].name); > if (!ev_node) > continue; > > @@ -737,7 +737,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > dev_err(&client->dev, > "Invalid channel %u threshold: %u\n", > reg, val); > - fwnode_handle_put(ev_node); > return -EINVAL; > } > > @@ -751,7 +750,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > dev_err(&client->dev, > "Invalid channel %u hysteresis: %u\n", > reg, val); > - fwnode_handle_put(ev_node); > return -EINVAL; > } > > @@ -767,7 +765,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, > } > > error = fwnode_property_read_u32(ev_node, "linux,code", &val); > - fwnode_handle_put(ev_node); > if (error == -EINVAL) { > continue; > } else if (error) { > -- > 2.46.0.469.g59c65b2a67-goog > Kind regards, Jeff LaBundy
diff --git a/drivers/input/misc/iqs269a.c b/drivers/input/misc/iqs269a.c index c34d847fa4af..1851848e2cd3 100644 --- a/drivers/input/misc/iqs269a.c +++ b/drivers/input/misc/iqs269a.c @@ -550,7 +550,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, const struct fwnode_handle *ch_node) { struct i2c_client *client = iqs269->client; - struct fwnode_handle *ev_node; struct iqs269_ch_reg *ch_reg; u16 engine_a, engine_b; unsigned int reg, val; @@ -727,8 +726,9 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, } for (i = 0; i < ARRAY_SIZE(iqs269_events); i++) { - ev_node = fwnode_get_named_child_node(ch_node, - iqs269_events[i].name); + struct fwnode_handle *ev_node __free(fwnode_handle) = + fwnode_get_named_child_node(ch_node, + iqs269_events[i].name); if (!ev_node) continue; @@ -737,7 +737,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, dev_err(&client->dev, "Invalid channel %u threshold: %u\n", reg, val); - fwnode_handle_put(ev_node); return -EINVAL; } @@ -751,7 +750,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, dev_err(&client->dev, "Invalid channel %u hysteresis: %u\n", reg, val); - fwnode_handle_put(ev_node); return -EINVAL; } @@ -767,7 +765,6 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, } error = fwnode_property_read_u32(ev_node, "linux,code", &val); - fwnode_handle_put(ev_node); if (error == -EINVAL) { continue; } else if (error) {
Use __free(fwnode_handle) cleanup facility to ensure that references to acquired fwnodes are dropped at appropriate times automatically. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> --- drivers/input/misc/iqs269a.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)