driver core: Add a comment to set_primary_fwnode() on nullifying
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 23 Mar 2023 18:26:40 +0000 (20:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Mar 2023 06:26:32 +0000 (08:26 +0200)
Explain what parent && fn == parent->fwnode conditional does.
With this refactor the code a bit.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230323182640.61085-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c

index f1889b9cab452e1a7fa7298dfb7cd8a4a093d78b..b59692a4d809007cd1e40042204ea3fea64a5d9e 100644 (file)
@@ -4982,9 +4982,13 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
        } else {
                if (fwnode_is_primary(fn)) {
                        dev->fwnode = fn->secondary;
+
+                       /* Skip nullifying fn->secondary if the primary is shared */
+                       if (parent && fn == parent->fwnode)
+                               return;
+
                        /* Set fn->secondary = NULL, so fn remains the primary fwnode */
-                       if (!(parent && fn == parent->fwnode))
-                               fn->secondary = NULL;
+                       fn->secondary = NULL;
                } else {
                        dev->fwnode = NULL;
                }