Message ID | 20241107222043.1414437-1-zmw12306@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Johannes Berg |
Headers | show |
Series | [v2] net: rfkill: gpio: Add check for clk_enable() | expand |
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
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);