On Wed, Sep 25, 2024 at 10:10:38AM +0200, Markus Elfring wrote: > From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> > Date: Wed, 25 Sep 2024 09:39:16 +0200 > > Add a jump target so that a bit of exception handling can be better reused > at the end of this function implementation. > > This issue was detected by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> > --- > drivers/thunderbolt/xdomain.c | 17 +++++++++-------- > 1 file changed, 9 insertions(+), 8 deletions(-) > > diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c > index 11a50c86a1e4..8e3cf95ca99c 100644 > --- a/drivers/thunderbolt/xdomain.c > +++ b/drivers/thunderbolt/xdomain.c > @@ -670,23 +670,19 @@ static void update_property_block(struct tb_xdomain *xd) > ret = tb_property_format_dir(dir, NULL, 0); > if (ret < 0) { > dev_warn(&xd->dev, "local property block creation failed\n"); > - tb_property_free_dir(dir); > - goto out_unlock; > + goto out_free_dir; > } > > block_len = ret; > block = kcalloc(block_len, sizeof(*block), GFP_KERNEL); > - if (!block) { > - tb_property_free_dir(dir); > - goto out_unlock; > - } > + if (!block) > + goto out_free_dir; > > ret = tb_property_format_dir(dir, block, block_len); > if (ret) { > dev_warn(&xd->dev, "property block generation failed\n"); > - tb_property_free_dir(dir); > kfree(block); > - goto out_unlock; > + goto out_free_dir; > } > > tb_property_free_dir(dir); > @@ -701,6 +697,11 @@ static void update_property_block(struct tb_xdomain *xd) > out_unlock: > mutex_unlock(&xd->lock); > mutex_unlock(&xdomain_lock); > + return; > + > +out_free_dir: > + tb_property_free_dir(dir); > + goto out_unlock; No way, this kind of spaghetti is really hard to follow.