wireless: add support for defining wifi interfaces via procd service data
[project/netifd.git] / macvlan.c
index 021d3944fb1ccbee81d9f141539a39d1a47ab258..cdc924f3107da106db0081fc0aabbbb719a29caf 100644 (file)
--- a/macvlan.c
+++ b/macvlan.c
 #include <stdio.h>
 #include <assert.h>
 #include <errno.h>
-#include <net/ethernet.h>
-
-#ifdef linux
-#include <netinet/ether.h>
-#endif
 
 #include "netifd.h"
 #include "device.h"
@@ -118,7 +113,7 @@ macvlan_set_state(struct device *dev, bool up)
 {
        struct macvlan_device *mvdev;
 
-       D(SYSTEM, "macvlan_set_state(%s, %u)\n", dev->ifname, up);
+       D(SYSTEM, "macvlan_set_state(%s, %u)", dev->ifname, up);
 
        mvdev = container_of(dev, struct macvlan_device, dev);
        if (up)
@@ -239,7 +234,12 @@ macvlan_create(const char *name, struct device_type *devtype,
                return NULL;
 
        dev = &mvdev->dev;
-       device_init(dev, devtype, name);
+       if (device_init(dev, devtype, name) < 0) {
+               device_cleanup(dev);
+               free(mvdev);
+               return NULL;
+       }
+
        dev->config_pending = true;
 
        mvdev->set_state = dev->set_state;