mbox series

[v3,0/2] virtio_net: vdpa: update MAC address when it is generated by virtio-net

Message ID 20230127204500.51930-1-lvivier@redhat.com (mailing list archive)
Headers show
Series virtio_net: vdpa: update MAC address when it is generated by virtio-net | expand

Message

Laurent Vivier Jan. 27, 2023, 8:44 p.m. UTC
When the MAC address is not provided by the vdpa device virtio_net
driver assigns a random one without notifying the device.
The consequence, in the case of mlx5_vdpa, is the internal routing
tables of the device are not updated and this can block the
communication between two namespaces.

To fix this problem, use virtnet_send_command(VIRTIO_NET_CTRL_MAC)
to set the address from virtnet_probe() when the MAC address is
not provided by the device.

v3:
  - update comments
  - fail probe if VIRTIO_NET_CTRL_MAC_ADDR_SET fails
  - move the virtnet_send_command() upper, inside the RTNL lock,
    this simplifies the cleanup in case of error, and a future patch
    from Jason adds an ASSERT_RTNL() in virtnet_send_command()
    ("virtio-net: convert rx mode setting to use workqueue")
  - add a patch to disable F_STANDBY if F_MAC is not set

v2:
  - remove vdpa_sim related fixes
  - check virtio_has_feature(vdev, VIRTIO_NET_F_MAC) rather than
    addr_assign_type

Laurent Vivier (2):
  virtio_net: disable VIRTIO_NET_F_STANDBY if VIRTIO_NET_F_MAC is not
    set
  virtio_net: notify MAC address change on device initialization

 drivers/net/virtio_net.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 2, 2023, 5 a.m. UTC | #1
Hello:

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

On Fri, 27 Jan 2023 21:44:58 +0100 you wrote:
> When the MAC address is not provided by the vdpa device virtio_net
> driver assigns a random one without notifying the device.
> The consequence, in the case of mlx5_vdpa, is the internal routing
> tables of the device are not updated and this can block the
> communication between two namespaces.
> 
> To fix this problem, use virtnet_send_command(VIRTIO_NET_CTRL_MAC)
> to set the address from virtnet_probe() when the MAC address is
> not provided by the device.
> 
> [...]

Here is the summary with links:
  - [v3,1/2] virtio_net: disable VIRTIO_NET_F_STANDBY if VIRTIO_NET_F_MAC is not set
    https://git.kernel.org/netdev/net-next/c/7c06458c102e
  - [v3,2/2] virtio_net: notify MAC address change on device initialization
    https://git.kernel.org/netdev/net-next/c/9f62d221a4b0

You are awesome, thank you!