Messages in this thread | | | Date | Mon, 27 Dec 2021 16:34:51 +0100 | Subject | Re: [PATCH] ARM: pxa: Fix error handling in viper_tpm_init | From | Daniel Mack <> |
| |
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
> > 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); > }
| |