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. 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 (3): 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 drivers/net/virtio_net.c | 84 ++++++++++++++++++++++++++-------------- drivers/virtio/virtio.c | 59 +++++++++++++++++++++------- include/linux/virtio.h | 11 +++++- 3 files changed, 109 insertions(+), 45 deletions(-) -- 2.31.1