diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index ea8c730d8af1897be2331002c1c54259c40c13c5..3a545ad1781744ac3b92f2dc49a161ec479740e1 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -387,11 +387,11 @@ static int __init gpio_mockup_init(void)
 							 GPIO_MOCKUP_NAME,
 							 i, NULL, 0, &pdata,
 							 sizeof(pdata));
-		if (!pdev) {
+		if (IS_ERR(pdev)) {
 			gpio_mockup_err("error registering device");
 			platform_driver_unregister(&gpio_mockup_driver);
 			gpio_mockup_unregister_pdevs();
-			return -ENOMEM;
+			return PTR_ERR(pdev);
 		}
 
 		gpio_mockup_pdevs[i] = pdev;