Re: [PATCH] i2c: bfin: turn to Resource-managed API in probe function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> @@ -646,22 +646,19 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
>  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>  	if (res == NULL) {
>  		dev_err(&pdev->dev, "Cannot get IORESOURCE_MEM\n");
> -		rc = -ENOENT;
> -		goto out_error_get_res;
> +		return -ENOENT;

You don't need to check the resource. devm_ioremap_resource will do it.

> -	iface->regs_base = ioremap(res->start, resource_size(res));
> -	if (iface->regs_base == NULL) {
> +	iface->regs_base = devm_ioremap_resource(&pdev->dev, res);
> +	if (IS_ERR((void *)iface->regs_base)) {
>  		dev_err(&pdev->dev, "Cannot map IO\n");
> -		rc = -ENXIO;
> -		goto out_error_ioremap;
> +		return PTR_ERR((void *)iface->regs_base);

Do we need the casts?

> @@ -740,8 +728,6 @@ static int i2c_bfin_twi_remove(struct platform_device *pdev)
>  	i2c_del_adapter(&(iface->adap));
>  	free_irq(iface->irq, iface);
>  	peripheral_free_list(dev_get_platdata(&pdev->dev));
> -	iounmap(iface->regs_base);
> -	kfree(iface);

You missed to remove the free irq.

Have you actually tried unloading the module?

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux