fix parsing settings for devices on reload
authorFelix Fietkau <nbd@openwrt.org>
Thu, 6 Oct 2011 15:32:43 +0000 (17:32 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 6 Oct 2011 15:32:43 +0000 (17:32 +0200)
device.c

index 32fa4a46db702f7dec4c194fc3a41cad4b62a2f6..ef9642fd647863ad003e3fa07cc5900ada352851 100644 (file)
--- a/device.c
+++ b/device.c
@@ -340,23 +340,23 @@ enum dev_change_type
 device_reload_config(struct device *dev, struct blob_attr *attr)
 {
        struct blob_attr *tb[__DEV_ATTR_MAX], *tb1[__DEV_ATTR_MAX];
-       const struct config_param_list *params = dev->type->config_params;
+       const struct config_param_list *cfg = dev->type->config_params;
 
-       blobmsg_parse(dev_attrs, __DEV_ATTR_MAX, tb,
+       blobmsg_parse(cfg->params, cfg->n_params, tb,
                blob_data(attr), blob_len(attr));
        if (dev->config)
-               blobmsg_parse(dev_attrs, __DEV_ATTR_MAX, tb1,
+               blobmsg_parse(cfg->params, cfg->n_params, tb1,
                        blob_data(dev->config), blob_len(dev->config));
        else
                memset(tb1, 0, sizeof(tb1));
 
-       if (!config_diff(tb, tb1, dev->type->config_params, NULL))
+       if (!config_diff(tb, tb1, cfg, NULL))
                return DEV_CONFIG_NO_CHANGE;
 
-       device_init_settings(dev, tb);
-       if (params == &device_attr_list)
+       if (cfg == &device_attr_list) {
+               device_init_settings(dev, tb);
                return DEV_CONFIG_APPLIED;
-       else
+       else
                return DEV_CONFIG_RECREATE;
 }