On Tue, 1 Dec 2020 at 08:05, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > There are a few problems with the error handling in this function. They > mostly center around the alloc_ordered_workqueue() allocation. > 1) If that allocation fails or if the kcalloc() prior to it fails then > it leads to a NULL dereference when we call > destroy_workqueue(mhi_cntrl->hiprio_wq). > 2) The error code is not set. > 3) The "mhi_cntrl->mhi_cmd" allocation is not freed. > > The error handling was slightly confusing and I re-ordered it to be in > the exact mirror/reverse order of how things were allocated. I changed > the label names to say what the goto does instead of describing where > the goto comes from. > > Fixes: 8f7039787687 ("bus: mhi: core: Move to using high priority workqueue") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Reviewed-by: Loic Poulain <loic.poulain@xxxxxxxxxx>