Message ID | 20240515143120.563700-1-danielj@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio_net: Fix missed rtnl_unlock | expand |
On Wed, May 15, 2024 at 09:31:20AM -0500, Daniel Jurgens wrote: > The rtnl_lock would stay locked if allocating promisc_allmulti failed. > > Reported-by: Eric Dumazet <edumaset@google.com> > Link: https://lore.kernel.org/netdev/CANn89iLazVaUCvhPm6RPJJ0owra_oFnx7Fhc8d60gV-65ad3WQ@mail.gmail.com/ > Signed-off-by: Daniel Jurgens <danielj@nvidia.com> Fixes: tag? > --- > drivers/net/virtio_net.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 19a9b50646c7..e2b7488f375e 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2902,14 +2902,14 @@ static void virtnet_rx_mode_work(struct work_struct *work) > if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_RX)) > return; > > - rtnl_lock(); > - > promisc_allmulti = kzalloc(sizeof(*promisc_allmulti), GFP_ATOMIC); > if (!promisc_allmulti) { > dev_warn(&dev->dev, "Failed to set RX mode, no memory.\n"); > return; > } > > + rtnl_lock(); > + > *promisc_allmulti = !!(dev->flags & IFF_PROMISC); > sg_init_one(sg, promisc_allmulti, sizeof(*promisc_allmulti)); > > -- > 2.45.0
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 19a9b50646c7..e2b7488f375e 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2902,14 +2902,14 @@ static void virtnet_rx_mode_work(struct work_struct *work) if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_RX)) return; - rtnl_lock(); - promisc_allmulti = kzalloc(sizeof(*promisc_allmulti), GFP_ATOMIC); if (!promisc_allmulti) { dev_warn(&dev->dev, "Failed to set RX mode, no memory.\n"); return; } + rtnl_lock(); + *promisc_allmulti = !!(dev->flags & IFF_PROMISC); sg_init_one(sg, promisc_allmulti, sizeof(*promisc_allmulti));
The rtnl_lock would stay locked if allocating promisc_allmulti failed. Reported-by: Eric Dumazet <edumaset@google.com> Link: https://lore.kernel.org/netdev/CANn89iLazVaUCvhPm6RPJJ0owra_oFnx7Fhc8d60gV-65ad3WQ@mail.gmail.com/ Signed-off-by: Daniel Jurgens <danielj@nvidia.com> --- drivers/net/virtio_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)