+ /*
+ * need to look up the interface name again, in case of config update,
+ * the pointer will have changed
+ */
+ iface = vlist_find(&interfaces, s->e.name, iface, node);
+ if (!iface)
+ return;
+
+ dev = iface->main_dev.dev;
+ if (!dev || !dev->default_config)
+ return;
+
+ blob_buf_init(&b, 0);
+ uci_to_blob(&b, s, dev->type->config_params);
+ if (blob_len(b.head) == 0)
+ return;
+
+ device_set_config(dev, dev->type, b.head);
+ return;
+error_free_config:
+ free(config);
+error:
+ free(iface);