switch (of_reconfig_get_state_change(action, arg)) {
        case OF_RECONFIG_CHANGE_ADD:
                if (!of_property_read_bool(rd->dn, "gpio-hog"))
-                       return NOTIFY_OK;       /* not for us */
+                       return NOTIFY_DONE;     /* not for us */
 
                if (of_node_test_and_set_flag(rd->dn, OF_POPULATED))
-                       return NOTIFY_OK;
+                       return NOTIFY_DONE;
 
                chip = of_find_gpiochip_by_node(rd->dn->parent);
                if (chip == NULL)
-                       return NOTIFY_OK;       /* not for us */
+                       return NOTIFY_DONE;     /* not for us */
 
                ret = of_gpiochip_add_hog(chip, rd->dn);
                if (ret < 0) {
                        of_node_clear_flag(rd->dn, OF_POPULATED);
                        return notifier_from_errno(ret);
                }
-               break;
+               return NOTIFY_OK;
 
        case OF_RECONFIG_CHANGE_REMOVE:
                if (!of_node_check_flag(rd->dn, OF_POPULATED))
-                       return NOTIFY_OK;       /* already depopulated */
+                       return NOTIFY_DONE;     /* already depopulated */
 
                chip = of_find_gpiochip_by_node(rd->dn->parent);
                if (chip == NULL)
-                       return NOTIFY_OK;       /* not for us */
+                       return NOTIFY_DONE;     /* not for us */
 
                of_gpiochip_remove_hog(chip, rd->dn);
                of_node_clear_flag(rd->dn, OF_POPULATED);
-               break;
+               return NOTIFY_OK;
        }
 
-       return NOTIFY_OK;
+       return NOTIFY_DONE;
 }
 
 struct notifier_block gpio_of_notifier = {