mctp: Avoid warning if unregister notifies twice
authorMatt Johnston <matt@codeconstruct.com.au>
Fri, 25 Feb 2022 05:39:36 +0000 (13:39 +0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 26 Feb 2022 06:23:23 +0000 (22:23 -0800)
Previously if an unregister notify handler ran twice (waiting for
netdev to be released) it would print a warning in mctp_unregister()
every subsequent time the unregister notify occured.

Instead we only need to worry about the case where a mctp_ptr is
set on an unknown device type.

Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mctp/device.c

index da13444..f49be88 100644 (file)
@@ -428,10 +428,10 @@ static void mctp_unregister(struct net_device *dev)
        struct mctp_dev *mdev;
 
        mdev = mctp_dev_get_rtnl(dev);
-       if (mctp_known(dev) != (bool)mdev) {
+       if (mdev && !mctp_known(dev)) {
                // Sanity check, should match what was set in mctp_register
-               netdev_warn(dev, "%s: mdev pointer %d but type (%d) match is %d",
-                           __func__, (bool)mdev, mctp_known(dev), dev->type);
+               netdev_warn(dev, "%s: BUG mctp_ptr set for unknown type %d",
+                           __func__, dev->type);
                return;
        }
        if (!mdev)
@@ -455,7 +455,7 @@ static int mctp_register(struct net_device *dev)
 
        if (mdev) {
                if (!mctp_known(dev))
-                       netdev_warn(dev, "%s: mctp_dev set for unknown type %d",
+                       netdev_warn(dev, "%s: BUG mctp_ptr set for unknown type %d",
                                    __func__, dev->type);
                return 0;
        }