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; } static void start_handshake(struct tb_xdomain *xd) -- 2.46.1