};
static void
-clear_interface_errors(struct interface *iface)
+interface_clear_errors(struct interface *iface)
{
struct interface_error *error, *tmp;
static void
__interface_set_down(struct interface *iface, bool force)
{
- clear_interface_errors(iface);
+ interface_clear_errors(iface);
if (iface->state == IFS_DOWN ||
iface->state == IFS_TEARDOWN)
static void
interface_cleanup(struct interface *iface)
{
+ interface_clear_errors(iface);
if (iface->main_dev.dev)
device_remove_user(&iface->main_dev);
interface_set_proto_state(iface, NULL);
if (iface->state == IFS_DOWN)
interface_handle_config_change(iface);
else
- interface_set_down(iface);
+ __interface_set_down(iface, false);
}
static void
{
struct blob_attr *old_config = if_old->config;
+ interface_clear_errors(if_old);
if_old->config = if_new->config;
if (!if_old->config_autostart && if_new->config_autostart)
if_old->autostart = true;