Commit 15ef641a authored by Haoxiang Li's avatar Haoxiang Li Committed by Paolo Abeni
Browse files

fjes: Add missing iounmap in fjes_hw_init()



In error paths, add fjes_hw_iounmap() to release the
resource acquired by fjes_hw_iomap(). Add a goto label
to do so.

Fixes: 8cdc3f6c ("fjes: Hardware initialization routine")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Signed-off-by: default avatarSimon Horman <horms@kernel.org>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251211073756.101824-1-lihaoxiang@isrc.iscas.ac.cn


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent d1a1a4ba
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -334,7 +334,7 @@ int fjes_hw_init(struct fjes_hw *hw)

	ret = fjes_hw_reset(hw);
	if (ret)
		return ret;
		goto err_iounmap;

	fjes_hw_set_irqmask(hw, REG_ICTL_MASK_ALL, true);

@@ -347,8 +347,10 @@ int fjes_hw_init(struct fjes_hw *hw)
	hw->max_epid = fjes_hw_get_max_epid(hw);
	hw->my_epid = fjes_hw_get_my_epid(hw);

	if ((hw->max_epid == 0) || (hw->my_epid >= hw->max_epid))
		return -ENXIO;
	if ((hw->max_epid == 0) || (hw->my_epid >= hw->max_epid)) {
		ret = -ENXIO;
		goto err_iounmap;
	}

	ret = fjes_hw_setup(hw);

@@ -356,6 +358,10 @@ int fjes_hw_init(struct fjes_hw *hw)
	hw->hw_info.trace_size = FJES_DEBUG_BUFFER_SIZE;

	return ret;

err_iounmap:
	fjes_hw_iounmap(hw);
	return ret;
}

void fjes_hw_exit(struct fjes_hw *hw)