diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2024-10-03 21:06:42 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2024-11-14 22:54:28 +1100 |
commit | 352268dc6da7b422022541c2cf846663110f775c (patch) | |
tree | 608c46143a0aafb52c62d1d0534a5f10b4e8cca7 | |
parent | 2e716f5cdebed2fb98cafffaf626645c2e922dbb (diff) | |
download | lwn-352268dc6da7b422022541c2cf846663110f775c.tar.gz lwn-352268dc6da7b422022541c2cf846663110f775c.zip |
macintosh: Use common error handling code in via_pmu_led_init()
Add a jump target so that a bit of exception handling can be better reused
at the end of this function implementation.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/189b93e2-4e81-438d-9c77-cbe4d9d7a0d9@web.de
-rw-r--r-- | drivers/macintosh/via-pmu-led.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/macintosh/via-pmu-led.c b/drivers/macintosh/via-pmu-led.c index a4fb16d7db3c..fc1af74b6596 100644 --- a/drivers/macintosh/via-pmu-led.c +++ b/drivers/macintosh/via-pmu-led.c @@ -92,18 +92,15 @@ static int __init via_pmu_led_init(void) if (dt == NULL) return -ENODEV; model = of_get_property(dt, "model", NULL); - if (model == NULL) { - of_node_put(dt); - return -ENODEV; - } + if (!model) + goto put_node; + if (strncmp(model, "PowerBook", strlen("PowerBook")) != 0 && strncmp(model, "iBook", strlen("iBook")) != 0 && strcmp(model, "PowerMac7,2") != 0 && - strcmp(model, "PowerMac7,3") != 0) { - of_node_put(dt); - /* ignore */ - return -ENODEV; - } + strcmp(model, "PowerMac7,3") != 0) + goto put_node; + of_node_put(dt); spin_lock_init(&pmu_blink_lock); @@ -112,6 +109,10 @@ static int __init via_pmu_led_init(void) pmu_blink_req.done = pmu_req_done; return led_classdev_register(NULL, &pmu_led); + +put_node: + of_node_put(dt); + return -ENODEV; } late_initcall(via_pmu_led_init); |