> When the devfreq_add_device fails to register deivce, the memory > leak of devfreq instance happen. So, this patch fix the memory > leak issue. Before freeing the devfreq instance checks whether > devfreq instance is NULL or not because the device_unregister() > frees the devfreq instance when jumping to the 'err_init'. > It is to prevent the duplicate the kfee(devfreq). > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: ac4b281176a5 ("PM / devfreq: fix duplicated kfree on devfreq pointer") > Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx> > --- > drivers/devfreq/devfreq.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) This looks like to be duplicated. Please check your repo basis. Cheers, MyungJoo > > diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c > index dea04871b50d..a1c4ee818614 100644 > --- a/drivers/devfreq/devfreq.c > +++ b/drivers/devfreq/devfreq.c > @@ -564,7 +564,7 @@ struct devfreq *devfreq_add_device(struct device *dev, > err = device_register(&devfreq->dev); > if (err) { > mutex_unlock(&devfreq->lock); > - goto err_out; > + goto err_dev; > } > > devfreq->trans_table = devm_kzalloc(&devfreq->dev, > @@ -610,6 +610,9 @@ struct devfreq *devfreq_add_device(struct device *dev, > mutex_unlock(&devfreq_list_lock); > > device_unregister(&devfreq->dev); > +err_dev: > + if (devfreq) > + kfree(devfreq); > err_out: > return ERR_PTR(err); > } > -- > 1.9.1