return 0;
 
 out_remove_gpio:
-       WARN_ON(gpiochip_remove(&cg->chip));
+       gpiochip_remove(&cg->chip);
        return retval;
 }
 
 {
        struct crystalcove_gpio *cg = platform_get_drvdata(pdev);
        int irq = platform_get_irq(pdev, 0);
-       int err;
-
-       err = gpiochip_remove(&cg->chip);
 
+       gpiochip_remove(&cg->chip);
        if (irq >= 0)
                free_irq(irq, cg);
-
-       return err;
+       return 0;
 }
 
 static struct platform_driver crystalcove_gpio_driver = {
 
 
        if (ret) {
                dev_err(bank->dev, "Couldn't add irqchip to gpiochip %d\n", ret);
-               ret = gpiochip_remove(&bank->chip);
+               gpiochip_remove(&bank->chip);
                return -ENODEV;
        }
 
 
 static int xgene_gpio_remove(struct platform_device *pdev)
 {
        struct xgene_gpio *gpio = platform_get_drvdata(pdev);
-       int ret = 0;
 
-       ret = gpiochip_remove(&gpio->chip);
-       if (ret)
-               dev_err(&pdev->dev, "unable to remove gpio_chip.\n");
-       return ret;
+       gpiochip_remove(&gpio->chip);
+       return 0;
 }
 
 #ifdef CONFIG_OF
 
  */
 static int zynq_gpio_remove(struct platform_device *pdev)
 {
-       int ret;
        struct zynq_gpio *gpio = platform_get_drvdata(pdev);
 
        pm_runtime_get_sync(&pdev->dev);
-
-       ret = gpiochip_remove(&gpio->chip);
-       if (ret) {
-               dev_err(&pdev->dev, "Failed to remove gpio chip\n");
-               return ret;
-       }
+       gpiochip_remove(&gpio->chip);
        clk_disable_unprepare(gpio->clk);
        device_set_wakeup_capable(&pdev->dev, 0);
        return 0;