net/core: print message for allmulticast
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Tue, 14 Feb 2023 21:01:16 +0000 (13:01 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 16 Feb 2023 09:11:14 +0000 (10:11 +0100)
When the user sets or clears the IFF_ALLMULTI flag in the netdev, there are
no log messages printed to the kernel log to indicate anything happened.
This is inexplicably different from most other dev->flags changes, and
could suprise the user.

Typically this occurs from user-space when a user:
ip link set eth0 allmulticast <on|off>

However, other devices like bridge set allmulticast as well, and many
other flows might trigger entry into allmulticast as well.

The new message uses the standard netdev_info print and looks like:
[  413.246110] ixgbe 0000:17:00.0 eth0: entered allmulticast mode
[  415.977184] ixgbe 0000:17:00.0 eth0: left allmulticast mode

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/core/dev.c

index 7307a0c15c9f029e6d9d87164166c5b1e8f53290..ad1e6482e1c15c9543cccf97b7c99c37b0637dd4 100644 (file)
@@ -8391,6 +8391,8 @@ static int __dev_set_allmulti(struct net_device *dev, int inc, bool notify)
                }
        }
        if (dev->flags ^ old_flags) {
+               netdev_info(dev, "%s allmulticast mode\n",
+                           dev->flags & IFF_ALLMULTI ? "entered" : "left");
                dev_change_rx_flags(dev, IFF_ALLMULTI);
                dev_set_rx_mode(dev);
                if (notify)