Skip to content

Commit 63ba2d0

Browse files
mad-jsanjuangregkh
authored andcommitted
mcb: fix error handling for different scenarios when parsing
chameleon_parse_gdd() may fail for different reasons and end up in the err tag. Make sure we at least always free the mcb_device allocated with mcb_alloc_dev(). If mcb_device_register() fails, make sure to give up the reference in the same place the device was added. Fixes: 728ac33 ("mcb: mcb-parse: fix error handing in chameleon_parse_gdd()") Cc: stable <stable@kernel.org> Reviewed-by: Jose Javier Rodriguez Barbarin <JoseJavier.Rodriguez@duagon.com> Signed-off-by: Jorge Sanjuan Garcia <jorge.sanjuangarcia@duagon.com> Link: https://lore.kernel.org/r/20231019141434.57971-2-jorge.sanjuangarcia@duagon.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 28cbfe0 commit 63ba2d0

2 files changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/mcb/mcb-core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ int mcb_device_register(struct mcb_bus *bus, struct mcb_device *dev)
246246
return 0;
247247

248248
out:
249+
put_device(&dev->dev);
249250

250251
return ret;
251252
}

drivers/mcb/mcb-parse.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static int chameleon_parse_gdd(struct mcb_bus *bus,
106106
return 0;
107107

108108
err:
109-
put_device(&mdev->dev);
109+
mcb_free_dev(mdev);
110110

111111
return ret;
112112
}

0 commit comments

Comments
 (0)