diff mbox series

Input: iqs269a - Use common error handling code in iqs269_parse_chan()

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

Commit Message

Markus Elfring March 2, 2024, 8:24 a.m. UTC
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.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/input/misc/iqs269a.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--
2.44.0

Comments

Dmitry Torokhov March 3, 2024, 10:31 p.m. UTC | #1
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 mbox series

Patch

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)