From: Yu Watanabe Date: Mon, 6 Dec 2021 20:25:09 +0000 (+0900) Subject: network/netdev: introduce .is_ready_to_create() entry in netdev vtable X-Git-Tag: v251-rc1~653^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=562729d744257e0a534bb43a342f213725dbcfe0;p=thirdparty%2Fsystemd.git network/netdev: introduce .is_ready_to_create() entry in netdev vtable --- diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index 8e7fe11c182..97d06a0d167 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -628,6 +628,9 @@ static bool netdev_is_ready_to_create(NetDev *netdev, Link *link) { if (link->set_link_messages > 0) return false; + if (NETDEV_VTABLE(netdev)->is_ready_to_create) + return NETDEV_VTABLE(netdev)->is_ready_to_create(netdev, link); + return true; } diff --git a/src/network/netdev/netdev.h b/src/network/netdev/netdev.h index c7262f550a5..b631e8e23ff 100644 --- a/src/network/netdev/netdev.h +++ b/src/network/netdev/netdev.h @@ -153,6 +153,9 @@ typedef struct NetDevVTable { /* specifies if netdev is independent, or a master device or a stacked device */ NetDevCreateType create_type; + /* This is used for stacked netdev. Return true when the underlying link is ready. */ + int (*is_ready_to_create)(NetDev *netdev, Link *link); + /* create netdev, if not done via rtnl */ int (*create)(NetDev *netdev);