Hi All: This series tries to synchronize the operstate with the admin state which allows the lower virtio-net to propagate the link status to the upper devices like macvlan. This is done by toggling carrier during ndo_open/stop while doing other necessary serialization about the carrier settings during probe. While at it, also fix a race between probe and ndo_set_features as we didn't initalize the guest offload setting under rtnl lock. Changes since V5: - Fix sevreal typos - Include a new patch to synchronize probe with ndo_set_features Changes since V4: - do not update settings during ndo_open() - do not try to canel config noticiation during probe() as core make sure the config notificaiton won't be triggered before probe is done. - Tweak sevreal comments. Changes since V3: - when driver tries to enable config interrupt, check pending interrupt and execute the nofitication change callback if necessary - do not unconditonally trigger the config space read - do not set LINK_UP flag in ndo_open/close but depends on the notification change - disable config change notification until ndo_open() - read the link status under the rtnl_lock() to prevent a race with ndo_open() Changes since V2: - introduce config_driver_disabled and helpers - schedule config change work unconditionally Thanks Jason Wang (4): virtio: rename virtio_config_enabled to virtio_config_core_enabled virtio: allow driver to disable the configure change notification virtio-net: synchronize operstate with admin state on up/down virtio-net: synchronize probe with ndo_set_features drivers/net/virtio_net.c | 78 +++++++++++++++++++++++++--------------- drivers/virtio/virtio.c | 59 +++++++++++++++++++++++------- include/linux/virtio.h | 11 ++++-- 3 files changed, 105 insertions(+), 43 deletions(-) -- 2.31.1