net/rfkill/rfkill-gpio.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
Add check for the return value of clk_enable() to catch the potential
error.
Fixes: 7176ba23f8b5 ("net: rfkill: add generic gpio rfkill driver")
Signed-off-by: Mingwei Zheng <zmw12306@gmail.com>
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
---
Changelog:
v1 -> v2
1. Replace expection with error in commit msg.
---
net/rfkill/rfkill-gpio.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
index c268c2b011f4..a87bb99231a6 100644
--- a/net/rfkill/rfkill-gpio.c
+++ b/net/rfkill/rfkill-gpio.c
@@ -31,9 +31,13 @@ struct rfkill_gpio_data {
static int rfkill_gpio_set_power(void *data, bool blocked)
{
struct rfkill_gpio_data *rfkill = data;
+ int ret;
- if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled)
- clk_enable(rfkill->clk);
+ if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) {
+ ret = clk_enable(rfkill->clk);
+ if (!ret)
+ return ret;
+ }
gpiod_set_value_cansleep(rfkill->shutdown_gpio, !blocked);
gpiod_set_value_cansleep(rfkill->reset_gpio, !blocked);
--
2.34.1
On Thu, 2024-11-07 at 17:20 -0500, Mingwei Zheng wrote: > Add check for the return value of clk_enable() to catch the potential > error. Wait ... is someone running an experiment again? ;-) > > diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c > index c268c2b011f4..a87bb99231a6 100644 > --- a/net/rfkill/rfkill-gpio.c > +++ b/net/rfkill/rfkill-gpio.c > @@ -31,9 +31,13 @@ struct rfkill_gpio_data { > static int rfkill_gpio_set_power(void *data, bool blocked) > { > struct rfkill_gpio_data *rfkill = data; > + int ret; You could move that into the if. > - if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) > - clk_enable(rfkill->clk); > + if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) { > + ret = clk_enable(rfkill->clk); > + if (!ret) > + return ret; > + } > but this is obviously wrong anyway. johannes
On Fri, Nov 8, 2024 at 2:47 AM Johannes Berg <johannes@sipsolutions.net> wrote: > > On Thu, 2024-11-07 at 17:20 -0500, Mingwei Zheng wrote: > > Add check for the return value of clk_enable() to catch the potential > > error. > > Wait ... is someone running an experiment again? ;-) > > > > diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c > > index c268c2b011f4..a87bb99231a6 100644 > > --- a/net/rfkill/rfkill-gpio.c > > +++ b/net/rfkill/rfkill-gpio.c > > @@ -31,9 +31,13 @@ struct rfkill_gpio_data { > > static int rfkill_gpio_set_power(void *data, bool blocked) > > { > > struct rfkill_gpio_data *rfkill = data; > > + int ret; > > You could move that into the if. > > > - if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) > > - clk_enable(rfkill->clk); > > + if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) { > > + ret = clk_enable(rfkill->clk); > > + if (!ret) > > + return ret; > > + } > > > > but this is obviously wrong anyway. > > johannes Thank you for your suggestion. I’ll make the corrections and send a v3 patch. Best, Mingwei
© 2016 - 2024 Red Hat, Inc.