Message ID | 6bf9f962-cf75-459d-89f4-2546063fc154@web.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Input: iqs269a - Use common error handling code in iqs269_parse_chan() | expand |
Hi Markus, On Sat, Mar 02, 2024 at 09:24:53AM +0100, Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Sat, 2 Mar 2024 09:15:20 +0100 > > Add a jump target so that a bit of exception handling can be better reused > at the end of this function implementation. No, I do not think this is needed. However if you can introduce a fwnode cleanup/free function (see include/linux/cleanup.h) maybe it would be more useful and we could apply it to various drivers. Thanks.
diff --git a/drivers/input/misc/iqs269a.c b/drivers/input/misc/iqs269a.c index cd14ff9f57cf..1379f80c00e2 100644 --- a/drivers/input/misc/iqs269a.c +++ b/drivers/input/misc/iqs269a.c @@ -744,8 +744,7 @@ 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; + goto put_fwnode; } ch_reg->thresh[iqs269_events[i].th_offs] = val; @@ -758,8 +757,7 @@ 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; + goto put_fwnode; } if (i == IQS269_EVENT_DEEP_DN || @@ -805,6 +803,10 @@ static int iqs269_parse_chan(struct iqs269_private *iqs269, } return 0; + +put_fwnode: + fwnode_handle_put(ev_node); + return -EINVAL; } static int iqs269_parse_prop(struct iqs269_private *iqs269)