From: Akinobu Mita The return value of platform_device_register_simple() should be checked by IS_ERR(). Cc: Jeff Garzik Acked-by: Alan Cox Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton --- drivers/ata/pata_legacy.c | 4 +++- drivers/ata/pata_qdi.c | 4 ++-- drivers/ata/pata_winbond.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff -puN drivers/ata/pata_legacy.c~ata-fix-platform_device_register_simple-error-check drivers/ata/pata_legacy.c --- a/drivers/ata/pata_legacy.c~ata-fix-platform_device_register_simple-error-check +++ a/drivers/ata/pata_legacy.c @@ -698,8 +698,10 @@ static __init int legacy_init_one(int po goto fail_io; pdev = platform_device_register_simple(DRV_NAME, nr_legacy_host, NULL, 0); - if (pdev == NULL) + if (IS_ERR(pdev)) { + ret = PTR_ERR(pdev); goto fail_dev; + } if (ht6560a & mask) { ops = &ht6560a_port_ops; diff -puN drivers/ata/pata_qdi.c~ata-fix-platform_device_register_simple-error-check drivers/ata/pata_qdi.c --- a/drivers/ata/pata_qdi.c~ata-fix-platform_device_register_simple-error-check +++ a/drivers/ata/pata_qdi.c @@ -247,8 +247,8 @@ static __init int qdi_init_one(unsigned */ pdev = platform_device_register_simple(DRV_NAME, nr_qdi_host, NULL, 0); - if (pdev == NULL) - return -ENOMEM; + if (IS_ERR(pdev)) + return PTR_ERR(pdev); memset(&ae, 0, sizeof(struct ata_probe_ent)); INIT_LIST_HEAD(&ae.node); diff -puN drivers/ata/pata_winbond.c~ata-fix-platform_device_register_simple-error-check drivers/ata/pata_winbond.c --- a/drivers/ata/pata_winbond.c~ata-fix-platform_device_register_simple-error-check +++ a/drivers/ata/pata_winbond.c @@ -206,8 +206,8 @@ static __init int winbond_init_one(unsig */ pdev = platform_device_register_simple(DRV_NAME, nr_winbond_host, NULL, 0); - if (pdev == NULL) - return -ENOMEM; + if (IS_ERR(pdev)) + return PTR_ERR(pdev); memset(&ae, 0, sizeof(struct ata_probe_ent)); INIT_LIST_HEAD(&ae.node); _