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 <miaoqingl...@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-ker...@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel