mbox series

[net-next,v7,0/4] virtio-net: synchronize op/admin state

Message ID 20240814052228.4654-1-jasowang@redhat.com (mailing list archive)
Headers show
Series virtio-net: synchronize op/admin state | expand

Message

Jason Wang Aug. 14, 2024, 5:22 a.m. UTC
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 V6:

- Add fix tag

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(-)

Comments

patchwork-bot+netdevbpf@kernel.org Aug. 16, 2024, 2:30 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 14 Aug 2024 13:22:24 +0800 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,v7,1/4] virtio: rename virtio_config_enabled to virtio_config_core_enabled
    https://git.kernel.org/netdev/net-next/c/0cb70ee4a6ee
  - [net-next,v7,2/4] virtio: allow driver to disable the configure change notification
    https://git.kernel.org/netdev/net-next/c/224de6f886f8
  - [net-next,v7,3/4] virtio-net: synchronize operstate with admin state on up/down
    https://git.kernel.org/netdev/net-next/c/df28de7b0050
  - [net-next,v7,4/4] virtio-net: synchronize probe with ndo_set_features
    https://git.kernel.org/netdev/net-next/c/c392d6019398

You are awesome, thank you!