Re: [PATCH] ARM: pxa: Fix error handling in viper_tpm_init
From: Daniel Mack <daniel@zonque.org>
Date: 2021-12-27 15:46:32
Also in:
lkml
Hi, On 27/12/2021 13:51, Miaoqian Lin wrote:
tpm_device get by platform_device_alloc(), which calls device_initialize. Call platform_device_put(tpm_device) instead of kfree(tmp_device) to prevent memory leak.
While this seems correct, I don't think we should make any effort to maintain legacy board support files but rather move to DTS instead. Robert and I laid the foundation and ported a few machines a while ago, but I was reluctant to touch the board support code I can't test on real hardware. As you seem to have access to a Viper board, could you have a look at the existing device-tree ported PXA machines and see if you can follow suit here please? Thanks, Daniel
quoted hunk ↗ jump to hunk
Fixes: 352699a ("Basic support for the Arcom/Eurotech Viper SBC.") Signed-off-by: Miaoqian Lin <redacted> --- arch/arm/mach-pxa/viper.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index 3aa34e9a15d3..9a0f184dbecb 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c@@ -815,11 +815,11 @@ static void __init viper_tpm_init(void) sizeof(i2c_tpm_data))) { if (platform_device_add(tpm_device)) { errstr = "register TPM i2c bus"; - goto error_free_tpm; + goto exit_put_device; } } else { errstr = "allocate TPM i2c bus data"; - goto error_free_tpm; + goto exit_put_device; } } else { errstr = "allocate TPM i2c device";@@ -827,9 +827,8 @@ static void __init viper_tpm_init(void) } return; - -error_free_tpm: - kfree(tpm_device); +exit_put_device: + platform_device_put(tpm_device); error_tpm: pr_err("viper: Couldn't %s, giving up\n", errstr); }
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel