diff --git a/src/drivers/linux/tap.c b/src/drivers/linux/tap.c index 99937d74..97943665 100644 --- a/src/drivers/linux/tap.c +++ b/src/drivers/linux/tap.c @@ -200,11 +200,6 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r netdev->dev = &device->dev; memset(nic, 0, sizeof(*nic)); - if ((rc = register_netdev(netdev)) != 0) - goto err_register; - - netdev_link_up(netdev); - /* Look for the mandatory if setting */ if_setting = linux_find_setting("if", &request->settings); @@ -224,6 +219,12 @@ static int tap_probe(struct linux_device *device, struct linux_device_request *r /* Apply rest of the settings */ linux_apply_settings(&request->settings, &netdev->settings.settings); + /* Register network device */ + if ((rc = register_netdev(netdev)) != 0) + goto err_register; + + netdev_link_up(netdev); + return 0; err_settings: