On Mon, Sep 23, 2024 at 09:26:24AM +0000, Dipendra Khadka wrote: > Smatch reported dereferencing freed memory 'fw' in tps6598x_apply_patch(). > > Invoking relrease_firmware(fw) just after checking ret. > > Fixes: 916b8e5fa73d ("usb: typec: tipd: add error log to provide firmware name and size") > Signed-off-by: Dipendra Khadka <kdipendra88@xxxxxxxxx> > --- > v2: > - Updated patch subject. > - Updated patch description. > - Added Fixes tag. > v1: > drivers/usb/typec/tipd/core.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c > index ea768b19a7f1..70bf8023ea35 100644 > --- a/drivers/usb/typec/tipd/core.c > +++ b/drivers/usb/typec/tipd/core.c > @@ -1191,12 +1191,13 @@ static int tps6598x_apply_patch(struct tps6598x *tps) > dev_info(tps->dev, "Firmware update succeeded\n"); > > release_fw: > - release_firmware(fw); > if (ret) { > dev_err(tps->dev, "Failed to write patch %s of %zu bytes\n", > firmware_name, fw->size); > } > > + relrease_firmware(fw); Any specific reason why you did not even compile this version of the patch? {sigh}