[PATCH] handle errors returned by platform_get_irq*()
platform_get_irq*() now returns on -ENXIO when the resource cannot be found. Ensure all users of platform_get_irq*() handle this error appropriately. Signed-off-by: David Vrabel <dvrabel@arcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
305b3228f9
commit
489447380a
@ -434,7 +434,7 @@ static int
|
||||
iop3xx_i2c_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *res;
|
||||
int ret;
|
||||
int ret, irq;
|
||||
struct i2c_adapter *new_adapter;
|
||||
struct i2c_algo_iop3xx_data *adapter_data;
|
||||
|
||||
@ -470,7 +470,12 @@ iop3xx_i2c_probe(struct platform_device *pdev)
|
||||
goto release_region;
|
||||
}
|
||||
|
||||
ret = request_irq(platform_get_irq(pdev, 0), iop3xx_i2c_irq_handler, 0,
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq < 0) {
|
||||
ret = -ENXIO;
|
||||
goto unmap;
|
||||
}
|
||||
ret = request_irq(irq, iop3xx_i2c_irq_handler, 0,
|
||||
pdev->name, adapter_data);
|
||||
|
||||
if (ret) {
|
||||
|
@ -302,6 +302,10 @@ static int fsl_i2c_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
i2c->irq = platform_get_irq(pdev, 0);
|
||||
if (i2c->irq < 0) {
|
||||
result = -ENXIO;
|
||||
goto fail_get_irq;
|
||||
}
|
||||
i2c->flags = pdata->device_flags;
|
||||
init_waitqueue_head(&i2c->queue);
|
||||
|
||||
@ -340,6 +344,7 @@ static int fsl_i2c_probe(struct platform_device *pdev)
|
||||
fail_irq:
|
||||
iounmap(i2c->base);
|
||||
fail_map:
|
||||
fail_get_irq:
|
||||
kfree(i2c);
|
||||
return result;
|
||||
};
|
||||
|
@ -516,6 +516,10 @@ mv64xxx_i2c_probe(struct platform_device *pd)
|
||||
drv_data->freq_m = pdata->freq_m;
|
||||
drv_data->freq_n = pdata->freq_n;
|
||||
drv_data->irq = platform_get_irq(pd, 0);
|
||||
if (drv_data->irq < 0) {
|
||||
rc = -ENXIO;
|
||||
goto exit_unmap_regs;
|
||||
}
|
||||
drv_data->adapter.id = I2C_HW_MV64XXX;
|
||||
drv_data->adapter.algo = &mv64xxx_i2c_algo;
|
||||
drv_data->adapter.owner = THIS_MODULE;
|
||||
|
Reference in New Issue
Block a user