On 20-10-10 14:03:08, Ran Wang wrote:
> fsl_usb2_device_register() should stop init if dma_set_mask() return
> error.
> 
> Fixes: cae058610465 ("drivers/usb/host: fsl: Set DMA_MASK of usb platform 
> device")
> Signed-off-by: Ran Wang <ran.wan...@nxp.com>
> ---
>  drivers/usb/host/fsl-mph-dr-of.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/host/fsl-mph-dr-of.c 
> b/drivers/usb/host/fsl-mph-dr-of.c
> index ae8f60f..44a7e58 100644
> --- a/drivers/usb/host/fsl-mph-dr-of.c
> +++ b/drivers/usb/host/fsl-mph-dr-of.c
> @@ -94,10 +94,13 @@ static struct platform_device *fsl_usb2_device_register(
>  
>       pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask;
>  
> -     if (!pdev->dev.dma_mask)
> +     if (!pdev->dev.dma_mask) {
>               pdev->dev.dma_mask = &ofdev->dev.coherent_dma_mask;
> -     else
> -             dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
> +     } else {
> +             retval = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
> +             if (retval)
> +                     goto error;
> +     }
>  
>       retval = platform_device_add_data(pdev, pdata, sizeof(*pdata));
>       if (retval)
> -- 
> 2.7.4
> 

Reviewed-by: Peter Chen <peter.c...@nxp.com>

One more place need to fix, if platform_device_alloc returns NULL,
it should not call platform_device_put to release platform
device memory.

        pdev = platform_device_alloc(name, id);
        if (!pdev) {
                retval = -ENOMEM;
                goto error;
        }
        ...
error:
        platform_device_put(pdev);
        return ERR_PTR(retval);
-- 

Thanks,
Peter Chen

Reply via email to