> @@ -108,32 +108,27 @@ static int dw_i2c_probe(struct platform_device *pdev) > return irq; /* -ENXIO */ > } > > - ioarea = request_mem_region(mem->start, resource_size(mem), > - pdev->name); > - if (!ioarea) { > - dev_err(&pdev->dev, "I2C region already claimed\n"); > - return -EBUSY; > - } > + dev = devm_kzalloc(&pdev->dev, sizeof(struct dw_i2c_dev), GFP_KERNEL); > + if (!dev) > + return -ENOMEM; > > - dev = kzalloc(sizeof(struct dw_i2c_dev), GFP_KERNEL); > - if (!dev) { > - r = -ENOMEM; > - goto err_release_region; > + dev->base = devm_ioremap_resource(&pdev->dev, mem); > + if (IS_ERR(dev->base)) { > + dev_err(&pdev->dev, "I2C region already claimed\n"); No dev_err here. The devm function will print out errors already. > @@ -164,13 +152,14 @@ static int dw_i2c_probe(struct platform_device *pdev) > } > r = i2c_dw_init(dev); > if (r) > - goto err_iounmap; > + return r; > > i2c_dw_disable_int(dev); > - r = request_irq(dev->irq, i2c_dw_isr, IRQF_SHARED, pdev->name, dev); > + r = devm_request_irq(&pdev->dev, dev->irq, i2c_dw_isr, IRQF_SHARED, > + pdev->name, dev); Is it ensured that no interrupts will happen during remove? Because the adapter will be deleted before devm will free the interrupt. Thanks, Wolfram -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html