Messages in this thread | | | Date | Mon, 9 Nov 2020 17:51:36 +0000 | From | Cristian Marussi <> | Subject | Re: [PATCH] firmware: arm_scmi: fix missing destroy_workqueue() on error in scmi_notification_init |
| |
On Mon, Nov 09, 2020 at 05:15:17PM +0800, Qinglang Miao wrote: > Add the missing destroy_workqueue() before return from > scmi_notification_init in the error handling case when > fails to do devm_kcalloc(). > > Fixes: bd31b249692e ("firmware: arm_scmi: Add notification dispatch and delivery") > Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> > --- > drivers/firmware/arm_scmi/notify.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c > index 2754f9d01636..3048e57d9731 100644 > --- a/drivers/firmware/arm_scmi/notify.c > +++ b/drivers/firmware/arm_scmi/notify.c > @@ -1476,8 +1476,10 @@ int scmi_notification_init(struct scmi_handle *handle) > > ni->registered_protocols = devm_kcalloc(handle->dev, SCMI_MAX_PROTO, > sizeof(char *), GFP_KERNEL); > - if (!ni->registered_protocols) > + if (!ni->registered_protocols) { > + destroy_workqueue(ni->notify_wq); > goto err; > + } >
Good catch, looks good to me.
Even better you could move the above alloc_workqueue() block down here so that you can avoid all together the additional destroy_workqueue() on the above error path.
Thanks
Cristian
> mutex_init(&ni->pending_mtx); > hash_init(ni->pending_events_handlers); > -- > 2.23.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
| |