[PATCH] HID: amd_sfh: Add missing check for dma_alloc_coherent

Jiasheng Jiang posted 1 patch 2 years, 9 months ago
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] HID: amd_sfh: Add missing check for dma_alloc_coherent
Posted by Jiasheng Jiang 2 years, 9 months ago
Add check for the return value of the dma_alloc_coherent since
it may return NULL pointer if allocation fails.

Fixes: 4b2c53d93a4b ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_client.c b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
index 8275bba63611..ab125f79408f 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_client.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
@@ -237,6 +237,10 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
 		in_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8,
 								  &cl_data->sensor_dma_addr[i],
 								  GFP_KERNEL);
+		if (!in_data->sensor_virt_addr[i]) {
+			rc = -ENOMEM;
+			goto cleanup;
+		}
 		cl_data->sensor_sts[i] = SENSOR_DISABLED;
 		cl_data->sensor_requested_cnt[i] = 0;
 		cl_data->cur_hid_dev = i;
-- 
2.25.1
Re: [PATCH] HID: amd_sfh: Add missing check for dma_alloc_coherent
Posted by Basavaraj Natikar 2 years, 9 months ago
On 12/20/2022 8:19 AM, Jiasheng Jiang wrote:
> Add check for the return value of the dma_alloc_coherent since
> it may return NULL pointer if allocation fails.
>
> Fixes: 4b2c53d93a4b ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>  drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_client.c b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> index 8275bba63611..ab125f79408f 100644
> --- a/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> +++ b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> @@ -237,6 +237,10 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
>  		in_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8,
>  								  &cl_data->sensor_dma_addr[i],
>  								  GFP_KERNEL);
> +		if (!in_data->sensor_virt_addr[i]) {
> +			rc = -ENOMEM;
> +			goto cleanup;
> +		}
>  		cl_data->sensor_sts[i] = SENSOR_DISABLED;
>  		cl_data->sensor_requested_cnt[i] = 0;
>  		cl_data->cur_hid_dev = i;

looks good to me.

Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>

Thanks,
--
Basavaraj
Re: [PATCH] HID: amd_sfh: Add missing check for dma_alloc_coherent
Posted by Benjamin Tissoires 2 years, 9 months ago
On Tue, Dec 20, 2022 at 7:53 AM Basavaraj Natikar <bnatikar@amd.com> wrote:
>
>
> On 12/20/2022 8:19 AM, Jiasheng Jiang wrote:
> > Add check for the return value of the dma_alloc_coherent since
> > it may return NULL pointer if allocation fails.
> >
> > Fixes: 4b2c53d93a4b ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)")
> > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> > ---
> >  drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_client.c b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> > index 8275bba63611..ab125f79408f 100644
> > --- a/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> > +++ b/drivers/hid/amd-sfh-hid/amd_sfh_client.c
> > @@ -237,6 +237,10 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
> >               in_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8,
> >                                                                 &cl_data->sensor_dma_addr[i],
> >                                                                 GFP_KERNEL);
> > +             if (!in_data->sensor_virt_addr[i]) {
> > +                     rc = -ENOMEM;
> > +                     goto cleanup;
> > +             }
> >               cl_data->sensor_sts[i] = SENSOR_DISABLED;
> >               cl_data->sensor_requested_cnt[i] = 0;
> >               cl_data->cur_hid_dev = i;
>
> looks good to me.
>
> Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>

Thanks.

I have now applied this patch to hid.git branch for-6.2/upstream-fixes.

Cheers,
Benjamin