device: force changes to be applied via state change if necessary
authorFelix Fietkau <nbd@openwrt.org>
Sat, 24 Jan 2015 00:28:39 +0000 (01:28 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 24 Jan 2015 00:28:39 +0000 (01:28 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
device.c

index 66eb2619758d3b10e82392b14f88e612602dfe88..54638e7c25fb7e1bb85886ebbb8ff4886c0bb368 100644 (file)
--- a/device.c
+++ b/device.c
@@ -636,6 +636,10 @@ device_apply_config(struct device *dev, const struct device_type *type,
                        dev->config = config;
                        if (change == DEV_CONFIG_RESTART && dev->present) {
                                device_set_present(dev, false);
+                               if (dev->active && !dev->external) {
+                                       dev->set_state(dev, false);
+                                       dev->set_state(dev, true);
+                               }
                                device_set_present(dev, true);
                        }
                        break;