Message ID | 20220111173243.GA2192@kili (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [v2] counter: fix an IS_ERR() vs NULL bug | expand |
On Tue, Jan 11, 2022 at 08:32:43PM +0300, Dan Carpenter wrote: > There are 8 callers for devm_counter_alloc() and they all check for NULL > instead of error pointers. I think NULL is the better thing to return > for allocation functions so update counter_alloc() and devm_counter_alloc() > to return NULL instead of error pointers. > > Fixes: c18e2760308e ("counter: Provide alternative counter registration functions") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Thanks Uwe
On Tue, Jan 11, 2022 at 08:32:43PM +0300, Dan Carpenter wrote: > There are 8 callers for devm_counter_alloc() and they all check for NULL > instead of error pointers. I think NULL is the better thing to return > for allocation functions so update counter_alloc() and devm_counter_alloc() > to return NULL instead of error pointers. > > Fixes: c18e2760308e ("counter: Provide alternative counter registration functions") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com> > --- > v2: make additional style changes > > drivers/counter/counter-core.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c > index 7e0957eea094..869894b74741 100644 > --- a/drivers/counter/counter-core.c > +++ b/drivers/counter/counter-core.c > @@ -90,10 +90,8 @@ struct counter_device *counter_alloc(size_t sizeof_priv) > int err; > > ch = kzalloc(sizeof(*ch) + sizeof_priv, GFP_KERNEL); > - if (!ch) { > - err = -ENOMEM; > - goto err_alloc_ch; > - } > + if (!ch) > + return NULL; > > counter = &ch->counter; > dev = &counter->dev; > @@ -123,9 +121,8 @@ struct counter_device *counter_alloc(size_t sizeof_priv) > err_ida_alloc: > > kfree(ch); > -err_alloc_ch: > > - return ERR_PTR(err); > + return NULL; > } > EXPORT_SYMBOL_GPL(counter_alloc); > > @@ -208,12 +205,12 @@ struct counter_device *devm_counter_alloc(struct device *dev, size_t sizeof_priv > int err; > > counter = counter_alloc(sizeof_priv); > - if (IS_ERR(counter)) > - return counter; > + if (!counter) > + return NULL; > > err = devm_add_action_or_reset(dev, devm_counter_put, counter); > if (err < 0) > - return ERR_PTR(err); > + return NULL; > > return counter; > } > -- > 2.20.1 >
diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c index 7e0957eea094..869894b74741 100644 --- a/drivers/counter/counter-core.c +++ b/drivers/counter/counter-core.c @@ -90,10 +90,8 @@ struct counter_device *counter_alloc(size_t sizeof_priv) int err; ch = kzalloc(sizeof(*ch) + sizeof_priv, GFP_KERNEL); - if (!ch) { - err = -ENOMEM; - goto err_alloc_ch; - } + if (!ch) + return NULL; counter = &ch->counter; dev = &counter->dev; @@ -123,9 +121,8 @@ struct counter_device *counter_alloc(size_t sizeof_priv) err_ida_alloc: kfree(ch); -err_alloc_ch: - return ERR_PTR(err); + return NULL; } EXPORT_SYMBOL_GPL(counter_alloc); @@ -208,12 +205,12 @@ struct counter_device *devm_counter_alloc(struct device *dev, size_t sizeof_priv int err; counter = counter_alloc(sizeof_priv); - if (IS_ERR(counter)) - return counter; + if (!counter) + return NULL; err = devm_add_action_or_reset(dev, devm_counter_put, counter); if (err < 0) - return ERR_PTR(err); + return NULL; return counter; }
There are 8 callers for devm_counter_alloc() and they all check for NULL instead of error pointers. I think NULL is the better thing to return for allocation functions so update counter_alloc() and devm_counter_alloc() to return NULL instead of error pointers. Fixes: c18e2760308e ("counter: Provide alternative counter registration functions") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v2: make additional style changes drivers/counter/counter-core.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)