Messages in this thread Patch in this message | | | From | Miaoqian Lin <> | Subject | [PATCH] ARM: pxa: Fix error handling in viper_tpm_init | Date | Mon, 27 Dec 2021 12:51:53 +0000 |
| |
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.
Fixes: 352699a ("Basic support for the Arcom/Eurotech Viper SBC.") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- 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); } -- 2.17.1
| |