netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up
@ 2022-05-26  8:15 Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 1/9] PM: domains: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
                   ` (10 more replies)
  0 siblings, 11 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

This series is based on linux-next + these 2 small patches applies on top:
https://lore.kernel.org/lkml/20220526034609.480766-1-saravanak@google.com/

A lot of the deferred_probe_timeout logic is redundant with
fw_devlink=on.  Also, enabling deferred_probe_timeout by default breaks
a few cases.

This series tries to delete the redundant logic, simplify the frameworks
that use driver_deferred_probe_check_state(), enable
deferred_probe_timeout=10 by default, and fixes the nfsroot failure
case.

Patches 1 to 3 are fairly straightforward and can probably be applied
right away.

Patches 4 to 9 are related and are the complicated bits of this series.

Patch 8 is where someone with more knowledge of the IP auto config code
can help rewrite the patch to limit the scope of the workaround by
running the work around only if IP auto config fails the first time
around. But it's also something that can be optimized in the future
because it's already limited to the case where IP auto config is enabled
using the kernel commandline.

Yoshihiro/Geert,

If you can test this patch series and confirm that the NFS root case
works, I'd really appreciate that.

Cc: Mark Brown <broonie@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: John Stultz <jstultz@google.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Saravana Kannan (9):
  PM: domains: Delete usage of driver_deferred_probe_check_state()
  pinctrl: devicetree: Delete usage of driver_deferred_probe_check_state()
  net: mdio: Delete usage of driver_deferred_probe_check_state()
  Revert "driver core: Set default deferred_probe_timeout back to 0."
  driver core: Set fw_devlink.strict=1 by default
  iommu/of: Delete usage of driver_deferred_probe_check_state()
  driver core: Add fw_devlink_unblock_may_probe() helper function
  net: ipconfig: Force fw_devlink to unblock any devices that might probe
  driver core: Delete driver_deferred_probe_check_state()

 drivers/base/base.h            |  1 +
 drivers/base/core.c            | 60 +++++++++++++++++++++++++++++++++-
 drivers/base/dd.c              | 37 ++++-----------------
 drivers/base/power/domain.c    |  2 +-
 drivers/iommu/of_iommu.c       |  2 +-
 drivers/net/mdio/fwnode_mdio.c |  4 +--
 drivers/pinctrl/devicetree.c   |  2 +-
 include/linux/device/driver.h  |  1 -
 include/linux/fwnode.h         |  2 ++
 net/ipv4/ipconfig.c            |  2 ++
 10 files changed, 74 insertions(+), 39 deletions(-)

-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 1/9] PM: domains: Delete usage of driver_deferred_probe_check_state()
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 2/9] pinctrl: devicetree: " Saravana Kannan
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

Now that fw_devlink=on by default and fw_devlink supports
"power-domains" property, the execution will never get to the point
where driver_deferred_probe_check_state() is called before the supplier
has probed successfully or before deferred probe timeout has expired.

So, delete the call and replace it with -ENODEV.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/base/power/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 739e52cd4aba..3e86772d5fac 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -2730,7 +2730,7 @@ static int __genpd_dev_pm_attach(struct device *dev, struct device *base_dev,
 		mutex_unlock(&gpd_list_lock);
 		dev_dbg(dev, "%s() failed to find PM domain: %ld\n",
 			__func__, PTR_ERR(pd));
-		return driver_deferred_probe_check_state(base_dev);
+		return -ENODEV;
 	}
 
 	dev_dbg(dev, "adding to PM domain %s\n", pd->name);
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 2/9] pinctrl: devicetree: Delete usage of driver_deferred_probe_check_state()
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 1/9] PM: domains: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-30  9:22   ` Geert Uytterhoeven
  2022-05-26  8:15 ` [RFC PATCH v1 3/9] net: mdio: " Saravana Kannan
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

Now that fw_devlink=on by default and fw_devlink supports
"pinctrl-[0-8]" property, the execution will never get to the point
where driver_deferred_probe_check_state() is called before the supplier
has probed successfully or before deferred probe timeout has expired.

So, delete the call and replace it with -ENODEV.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/pinctrl/devicetree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c
index 3fb238714718..ef898ee8ca6b 100644
--- a/drivers/pinctrl/devicetree.c
+++ b/drivers/pinctrl/devicetree.c
@@ -129,7 +129,7 @@ static int dt_to_map_one_config(struct pinctrl *p,
 		np_pctldev = of_get_next_parent(np_pctldev);
 		if (!np_pctldev || of_node_is_root(np_pctldev)) {
 			of_node_put(np_pctldev);
-			ret = driver_deferred_probe_check_state(p->dev);
+			ret = -ENODEV;
 			/* keep deferring if modules are enabled */
 			if (IS_ENABLED(CONFIG_MODULES) && !allow_default && ret < 0)
 				ret = -EPROBE_DEFER;
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 3/9] net: mdio: Delete usage of driver_deferred_probe_check_state()
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 1/9] PM: domains: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 2/9] pinctrl: devicetree: " Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0." Saravana Kannan
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

Now that fw_devlink=on by default and fw_devlink supports interrupt
properties, the execution will never get to the point where
driver_deferred_probe_check_state() is called before the supplier has
probed successfully or before deferred probe timeout has expired.

So, delete the call and replace it with -ENODEV.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/net/mdio/fwnode_mdio.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/mdio/fwnode_mdio.c b/drivers/net/mdio/fwnode_mdio.c
index 1c1584fca632..3e79c2c51929 100644
--- a/drivers/net/mdio/fwnode_mdio.c
+++ b/drivers/net/mdio/fwnode_mdio.c
@@ -47,9 +47,7 @@ int fwnode_mdiobus_phy_device_register(struct mii_bus *mdio,
 	 * just fall back to poll mode
 	 */
 	if (rc == -EPROBE_DEFER)
-		rc = driver_deferred_probe_check_state(&phy->mdio.dev);
-	if (rc == -EPROBE_DEFER)
-		return rc;
+		rc = -ENODEV;
 
 	if (rc > 0) {
 		phy->irq = rc;
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0."
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (2 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 3/9] net: mdio: " Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-30  9:12   ` Geert Uytterhoeven
  2022-05-26  8:15 ` [RFC PATCH v1 5/9] driver core: Set fw_devlink.strict=1 by default Saravana Kannan
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

This reverts commit 11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61.

Let's take another shot at getting deferred_probe_timeout=10 to work.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/base/dd.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 11b0fb6414d3..f963d9010d7f 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -256,7 +256,12 @@ static int deferred_devs_show(struct seq_file *s, void *data)
 }
 DEFINE_SHOW_ATTRIBUTE(deferred_devs);
 
+#ifdef CONFIG_MODULES
+int driver_deferred_probe_timeout = 10;
+#else
 int driver_deferred_probe_timeout;
+#endif
+
 EXPORT_SYMBOL_GPL(driver_deferred_probe_timeout);
 
 static int __init deferred_probe_timeout_setup(char *str)
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 5/9] driver core: Set fw_devlink.strict=1 by default
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (3 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0." Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 6/9] iommu/of: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

Now that deferred_probe_timeout is non-zero by default, fw_devlink will
never permanently block the probing of devices. It'll try its best to
probe the devices in the right order and then finally let devices probe
even if their suppliers don't have any drivers.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/base/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 7cd789c4985d..7672f23231c1 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1581,7 +1581,7 @@ static int __init fw_devlink_setup(char *arg)
 }
 early_param("fw_devlink", fw_devlink_setup);
 
-static bool fw_devlink_strict;
+static bool fw_devlink_strict = true;
 static int __init fw_devlink_strict_setup(char *arg)
 {
 	return strtobool(arg, &fw_devlink_strict);
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 6/9] iommu/of: Delete usage of driver_deferred_probe_check_state()
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (4 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 5/9] driver core: Set fw_devlink.strict=1 by default Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-26  8:15 ` [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function Saravana Kannan
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

Now that fw_devlink=on and fw_devlink.strict=1 by default and fw_devlink
supports iommu DT properties, the execution will never get to the point
where driver_deferred_probe_check_state() is called before the supplier
has probed successfully or before deferred probe timeout has expired.

So, delete the call and replace it with -ENODEV.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/iommu/of_iommu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 5696314ae69e..41f4eb005219 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -40,7 +40,7 @@ static int of_iommu_xlate(struct device *dev,
 	 * a proper probe-ordering dependency mechanism in future.
 	 */
 	if (!ops)
-		return driver_deferred_probe_check_state(dev);
+		return -ENODEV;
 
 	if (!try_module_get(ops->owner))
 		return -ENODEV;
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (5 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 6/9] iommu/of: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-30  9:46   ` Andy Shevchenko
  2022-05-26  8:15 ` [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe Saravana Kannan
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Len Brown
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

This function can be used during the kernel boot sequence to forcefully
override fw_devlink=on and unblock the probing of all devices that have
a driver.

It's mainly meant to be called from late_initcall() or
late_initcall_sync() where a device needs to probe before the kernel can
mount rootfs.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/base/base.h    |  1 +
 drivers/base/core.c    | 58 ++++++++++++++++++++++++++++++++++++++++++
 drivers/base/dd.c      |  2 +-
 include/linux/fwnode.h |  2 ++
 4 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/drivers/base/base.h b/drivers/base/base.h
index ab71403d102f..b3a43a164dcd 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -160,6 +160,7 @@ extern int devres_release_all(struct device *dev);
 extern void device_block_probing(void);
 extern void device_unblock_probing(void);
 extern void deferred_probe_extend_timeout(void);
+extern void driver_deferred_probe_trigger(void);
 
 /* /sys/devices directory */
 extern struct kset *devices_kset;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 7672f23231c1..7ff7fbb00643 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1655,6 +1655,64 @@ void fw_devlink_drivers_done(void)
 	device_links_write_unlock();
 }
 
+static int fw_devlink_may_probe(struct device *dev, void *data)
+{
+	struct device_link *link = to_devlink(dev);
+
+	if (!link->supplier->can_match && link->consumer->can_match)
+		fw_devlink_relax_link(link);
+
+	return 0;
+}
+
+/**
+ * fw_devlink_unblock_may_probe - Force unblock any device that has a driver
+ *
+ * This function is more of a sledge hammer than a scalpel. Use this very
+ * sparingly.
+ *
+ * Some devices might need to be probed and bound successfully before the kernel
+ * boot sequence can finish and move on to init/userspace. For example, a
+ * network interface might need to be bound to be able to mount a NFS rootfs.
+ *
+ * With fw_devlink=on by default, some of these devices might be blocked from
+ * probing because they are waiting on a optional supplier that doesn't have a
+ * driver. While fw_devlink will eventually identify such devices and unblock
+ * the probing automatically, it might be too late by the time it unblocks the
+ * probing of devices. For example, the IP4 autoconfig might timeout before
+ * fw_devlink unblocks probing of the network interface. This function is
+ * available to unblock the probing of such devices.
+ *
+ * Since there's no easy way to know which unprobed device needs to probe for
+ * boot to succeed, this function makes sure fw_devlink doesn't block any device
+ * that has a driver at the point in time this function is called.
+ *
+ * It does this by relaxing (fw_devlink=permissive behavior) all the device
+ * links created by fw_devlink where the consumer has a driver and the supplier
+ * doesn't have a driver.
+ *
+ * It's extremely unlikely that a proper use of this function will be outside of
+ * an initcall. So, until a case is made for that, this function is
+ * intentionally marked with __init.
+ */
+void __init fw_devlink_unblock_may_probe(void)
+{
+	struct device_link *link, *ln;
+
+	if (!fw_devlink_flags || fw_devlink_is_permissive())
+		return;
+
+	/* Wait for current probes to finish to limit impact. */
+	wait_for_device_probe();
+
+	device_links_write_lock();
+	class_for_each_device(&devlink_class, NULL, NULL,
+			      fw_devlink_may_probe);
+	device_links_write_unlock();
+
+	driver_deferred_probe_trigger();
+}
+
 static void fw_devlink_unblock_consumers(struct device *dev)
 {
 	struct device_link *link;
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index f963d9010d7f..af8138d44e6c 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -172,7 +172,7 @@ static bool driver_deferred_probe_enable;
  * changes in the midst of a probe, then deferred processing should be triggered
  * again.
  */
-static void driver_deferred_probe_trigger(void)
+void driver_deferred_probe_trigger(void)
 {
 	if (!driver_deferred_probe_enable)
 		return;
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 9a81c4410b9f..0770edda7068 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -13,6 +13,7 @@
 #include <linux/list.h>
 #include <linux/bits.h>
 #include <linux/err.h>
+#include <linux/init.h>
 
 struct fwnode_operations;
 struct device;
@@ -199,5 +200,6 @@ extern bool fw_devlink_is_strict(void);
 int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup);
 void fwnode_links_purge(struct fwnode_handle *fwnode);
 void fw_devlink_purge_absent_suppliers(struct fwnode_handle *fwnode);
+void __init fw_devlink_unblock_may_probe(void);
 
 #endif
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (6 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-06-07 12:36   ` Geert Uytterhoeven
  2022-05-26  8:15 ` [RFC PATCH v1 9/9] driver core: Delete driver_deferred_probe_check_state() Saravana Kannan
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

If there are network devices that could probe without some of their
suppliers probing and those network devices are needed for IP auto
config to work, then fw_devlink=on might break that usecase by blocking
the network devices from probing by the time IP auto config starts.

So, when IP auto config is enabled, make sure fw_devlink doesn't block
the probing of any device that has a driver by the time we get to IP
auto config.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 net/ipv4/ipconfig.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 9d41d5d5cd1e..aa7b8ba68ca6 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1435,6 +1435,8 @@ static int __init wait_for_devices(void)
 {
 	int i;
 
+	fw_devlink_unblock_may_probe();
+
 	for (i = 0; i < DEVICE_WAIT_MAX; i++) {
 		struct net_device *dev;
 		int found = 0;
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [RFC PATCH v1 9/9] driver core: Delete driver_deferred_probe_check_state()
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (7 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe Saravana Kannan
@ 2022-05-26  8:15 ` Saravana Kannan
  2022-05-30  8:49 ` [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Sebastian Andrzej Siewior
  2022-05-30  9:38 ` Geert Uytterhoeven
  10 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-05-26  8:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern
  Cc: Saravana Kannan, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, kernel-team, linux-kernel, linux-pm,
	iommu, netdev, linux-gpio, linux-acpi

The function is no longer used. So delete it.

Signed-off-by: Saravana Kannan <saravanak@google.com>
---
 drivers/base/dd.c             | 30 ------------------------------
 include/linux/device/driver.h |  1 -
 2 files changed, 31 deletions(-)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index af8138d44e6c..789b0871dc45 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -274,42 +274,12 @@ static int __init deferred_probe_timeout_setup(char *str)
 }
 __setup("deferred_probe_timeout=", deferred_probe_timeout_setup);
 
-/**
- * driver_deferred_probe_check_state() - Check deferred probe state
- * @dev: device to check
- *
- * Return:
- * * -ENODEV if initcalls have completed and modules are disabled.
- * * -ETIMEDOUT if the deferred probe timeout was set and has expired
- *   and modules are enabled.
- * * -EPROBE_DEFER in other cases.
- *
- * Drivers or subsystems can opt-in to calling this function instead of directly
- * returning -EPROBE_DEFER.
- */
-int driver_deferred_probe_check_state(struct device *dev)
-{
-	if (!IS_ENABLED(CONFIG_MODULES) && initcalls_done) {
-		dev_warn(dev, "ignoring dependency for device, assuming no driver\n");
-		return -ENODEV;
-	}
-
-	if (!driver_deferred_probe_timeout && initcalls_done) {
-		dev_warn(dev, "deferred probe timeout, ignoring dependency\n");
-		return -ETIMEDOUT;
-	}
-
-	return -EPROBE_DEFER;
-}
-EXPORT_SYMBOL_GPL(driver_deferred_probe_check_state);
-
 static void deferred_probe_timeout_work_func(struct work_struct *work)
 {
 	struct device_private *p;
 
 	fw_devlink_drivers_done();
 
-	driver_deferred_probe_timeout = 0;
 	driver_deferred_probe_trigger();
 	flush_work(&deferred_probe_work);
 
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index 700453017e1c..7c245d269feb 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -241,7 +241,6 @@ driver_find_device_by_acpi_dev(struct device_driver *drv, const void *adev)
 
 extern int driver_deferred_probe_timeout;
 void driver_deferred_probe_add(struct device *dev);
-int driver_deferred_probe_check_state(struct device *dev);
 void driver_init(void);
 
 /**
-- 
2.36.1.124.g0e6072fb45-goog


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (8 preceding siblings ...)
  2022-05-26  8:15 ` [RFC PATCH v1 9/9] driver core: Delete driver_deferred_probe_check_state() Saravana Kannan
@ 2022-05-30  8:49 ` Sebastian Andrzej Siewior
  2022-06-05  3:45   ` Saravana Kannan
  2022-05-30  9:38 ` Geert Uytterhoeven
  10 siblings, 1 reply; 22+ messages in thread
From: Sebastian Andrzej Siewior @ 2022-05-30  8:49 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor, kernel-team,
	linux-kernel, linux-pm, iommu, netdev, linux-gpio, linux-acpi

On 2022-05-26 01:15:39 [-0700], Saravana Kannan wrote:
> Yoshihiro/Geert,
Hi Saravana,

> If you can test this patch series and confirm that the NFS root case
> works, I'd really appreciate that.

The two patches you sent earlier, plus this series, plus

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 7ff7fbb006431..829d9b1f7403f 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1697,8 +1697,6 @@ static int fw_devlink_may_probe(struct device *dev, void *data)
  */
 void __init fw_devlink_unblock_may_probe(void)
 {
-	struct device_link *link, *ln;
-
 	if (!fw_devlink_flags || fw_devlink_is_permissive())
 		return;
 
and it compiles + boots without a delay.

Sebastian

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0."
  2022-05-26  8:15 ` [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0." Saravana Kannan
@ 2022-05-30  9:12   ` Geert Uytterhoeven
  2022-06-05  3:18     ` Saravana Kannan
  0 siblings, 1 reply; 22+ messages in thread
From: Geert Uytterhoeven @ 2022-05-30  9:12 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

Hi Saravana,

On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> This reverts commit 11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61.

scripts/chdeckpatch.pl says:

    WARNING: Unknown commit id
'11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61', maybe rebased or not
pulled?

I assume this is your local copy of
https://lore.kernel.org/r/20220526034609.480766-3-saravanak@google.com?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 2/9] pinctrl: devicetree: Delete usage of driver_deferred_probe_check_state()
  2022-05-26  8:15 ` [RFC PATCH v1 2/9] pinctrl: devicetree: " Saravana Kannan
@ 2022-05-30  9:22   ` Geert Uytterhoeven
  2022-06-05  3:41     ` Saravana Kannan
  0 siblings, 1 reply; 22+ messages in thread
From: Geert Uytterhoeven @ 2022-05-30  9:22 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

Hi Saravana,

Thanks for your patch!

On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> Now that fw_devlink=on by default and fw_devlink supports
> "pinctrl-[0-8]" property, the execution will never get to the point

0-9?

oh, it's really 0-8:

    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl0, "pinctrl-0", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl1, "pinctrl-1", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl2, "pinctrl-2", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl3, "pinctrl-3", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl4, "pinctrl-4", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl5, "pinctrl-5", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl6, "pinctrl-6", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl7, "pinctrl-7", NULL)
    drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl8, "pinctrl-8", NULL)

Looks fragile, especially since we now have:

    arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi:
pinctrl-9 = <&i2cmux_9>;
    arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-10
= <&i2cmux_10>;
    arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-11
= <&i2cmux_11>;
    arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-12
= <&i2cmux_pins_i>;

> where driver_deferred_probe_check_state() is called before the supplier
> has probed successfully or before deferred probe timeout has expired.
>
> So, delete the call and replace it with -ENODEV.
>
> Signed-off-by: Saravana Kannan <saravanak@google.com>

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up
  2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
                   ` (9 preceding siblings ...)
  2022-05-30  8:49 ` [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Sebastian Andrzej Siewior
@ 2022-05-30  9:38 ` Geert Uytterhoeven
  2022-06-05  3:47   ` Saravana Kannan
  10 siblings, 1 reply; 22+ messages in thread
From: Geert Uytterhoeven @ 2022-05-30  9:38 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

Hi Saravana,

On Thu, May 26, 2022 at 10:15 AM Saravana Kannan <saravanak@google.com> wrote:
> This series is based on linux-next + these 2 small patches applies on top:
> https://lore.kernel.org/lkml/20220526034609.480766-1-saravanak@google.com/
>
> A lot of the deferred_probe_timeout logic is redundant with
> fw_devlink=on.  Also, enabling deferred_probe_timeout by default breaks
> a few cases.
>
> This series tries to delete the redundant logic, simplify the frameworks
> that use driver_deferred_probe_check_state(), enable
> deferred_probe_timeout=10 by default, and fixes the nfsroot failure
> case.
>
> Patches 1 to 3 are fairly straightforward and can probably be applied
> right away.
>
> Patches 4 to 9 are related and are the complicated bits of this series.
>
> Patch 8 is where someone with more knowledge of the IP auto config code
> can help rewrite the patch to limit the scope of the workaround by
> running the work around only if IP auto config fails the first time
> around. But it's also something that can be optimized in the future
> because it's already limited to the case where IP auto config is enabled
> using the kernel commandline.

Thanks for your series!

> Yoshihiro/Geert,
>
> If you can test this patch series and confirm that the NFS root case
> works, I'd really appreciate that.

On Salvator-XS, Micrel KSZ9031 Gigabit PHY probe is no longer delayed
by 9s after applying the two earlier patches, and the same is true
after applying this series on top.
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>

I will do testing on more boards, but that may take a while, as we're
in the middle of the merge window.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function
  2022-05-26  8:15 ` [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function Saravana Kannan
@ 2022-05-30  9:46   ` Andy Shevchenko
  0 siblings, 0 replies; 22+ messages in thread
From: Andy Shevchenko @ 2022-05-30  9:46 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Len Brown, Mark Brown, Rob Herring,
	Geert Uytterhoeven, Yoshihiro Shimoda, John Stultz,
	Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM,
	list@263.net:IOMMU DRIVERS, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

On Thu, May 26, 2022 at 1:22 PM Saravana Kannan <saravanak@google.com> wrote:
>
> This function can be used during the kernel boot sequence to forcefully
> override fw_devlink=on and unblock the probing of all devices that have
> a driver.
>
> It's mainly meant to be called from late_initcall() or
> late_initcall_sync() where a device needs to probe before the kernel can
> mount rootfs.

...

> diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
> index 9a81c4410b9f..0770edda7068 100644
> --- a/include/linux/fwnode.h
> +++ b/include/linux/fwnode.h
> @@ -13,6 +13,7 @@
>  #include <linux/list.h>
>  #include <linux/bits.h>
>  #include <linux/err.h>
> +#include <linux/init.h>
>
>  struct fwnode_operations;
>  struct device;
> @@ -199,5 +200,6 @@ extern bool fw_devlink_is_strict(void);
>  int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup);
>  void fwnode_links_purge(struct fwnode_handle *fwnode);
>  void fw_devlink_purge_absent_suppliers(struct fwnode_handle *fwnode);
> +void __init fw_devlink_unblock_may_probe(void);

I don't think you need init.h and __init here. Important is that you
have it in the C-file. Am I wrong?

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0."
  2022-05-30  9:12   ` Geert Uytterhoeven
@ 2022-06-05  3:18     ` Saravana Kannan
  2022-06-05  4:12       ` Saravana Kannan
  0 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-06-05  3:18 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

On Mon, May 30, 2022 at 2:13 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Saravana,
>
> On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> > This reverts commit 11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61.
>
> scripts/chdeckpatch.pl says:
>
>     WARNING: Unknown commit id
> '11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61', maybe rebased or not
> pulled?
>
> I assume this is your local copy of
> https://lore.kernel.org/r/20220526034609.480766-3-saravanak@google.com?

I somehow missed all your replies and noticed it just now.

That commit should be based on driver-core-next.

-Saravana

>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
>
> --
> To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 2/9] pinctrl: devicetree: Delete usage of driver_deferred_probe_check_state()
  2022-05-30  9:22   ` Geert Uytterhoeven
@ 2022-06-05  3:41     ` Saravana Kannan
  2022-06-06 10:17       ` Andy Shevchenko
  0 siblings, 1 reply; 22+ messages in thread
From: Saravana Kannan @ 2022-06-05  3:41 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

On Mon, May 30, 2022 at 2:22 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Saravana,
>
> Thanks for your patch!
>
> On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> > Now that fw_devlink=on by default and fw_devlink supports
> > "pinctrl-[0-8]" property, the execution will never get to the point
>
> 0-9?
>
> oh, it's really 0-8:
>
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl0, "pinctrl-0", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl1, "pinctrl-1", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl2, "pinctrl-2", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl3, "pinctrl-3", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl4, "pinctrl-4", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl5, "pinctrl-5", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl6, "pinctrl-6", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl7, "pinctrl-7", NULL)
>     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl8, "pinctrl-8", NULL)
>
> Looks fragile, especially since we now have:
>
>     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi:
> pinctrl-9 = <&i2cmux_9>;
>     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-10
> = <&i2cmux_10>;
>     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-11
> = <&i2cmux_11>;
>     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-12
> = <&i2cmux_pins_i>;

Checking for pinctrl-* and then verifying if * matches %d would be
more complicated and probably more expensive compared to listing
pinctrl-[0-8]. Especially because more than 50% of pinctrl-*
properties in DT files are NOT pinctrl-%d. So back when we merged
this, Rob and I agreed [0-8] was good enough for now and we can add
more if we needed to. Also, when I checked back then, all the
pinctrl-5+ properties ended up pointing to the same suppliers as the
lower numbered ones. So it didn't make a difference.

Ok, I just checked linux-next all the pinctrl-9+ instances and it's
still true that they all point to the same supplier pointed to by
pinctrl-[0-8].

So yeah, it looks fragile, but is not broken and it's more efficient
than looking for pinctrl-%d or adding more pinctrl-xx entries. So,
let's fix it if it actually breaks? Not going to oppose a patch if
anyone wants to make it more complete.


-Saravana

>
> > where driver_deferred_probe_check_state() is called before the supplier
> > has probed successfully or before deferred probe timeout has expired.
> >
> > So, delete the call and replace it with -ENODEV.
> >
> > Signed-off-by: Saravana Kannan <saravanak@google.com>
>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up
  2022-05-30  8:49 ` [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Sebastian Andrzej Siewior
@ 2022-06-05  3:45   ` Saravana Kannan
  0 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-06-05  3:45 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Geert Uytterhoeven,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor, kernel-team,
	linux-kernel, linux-pm, iommu, netdev, linux-gpio, linux-acpi

On Mon, May 30, 2022 at 1:49 AM Sebastian Andrzej Siewior
<bigeasy@linutronix.de> wrote:
>
> On 2022-05-26 01:15:39 [-0700], Saravana Kannan wrote:
> > Yoshihiro/Geert,
> Hi Saravana,
>
> > If you can test this patch series and confirm that the NFS root case
> > works, I'd really appreciate that.
>
> The two patches you sent earlier, plus this series, plus
>
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index 7ff7fbb006431..829d9b1f7403f 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -1697,8 +1697,6 @@ static int fw_devlink_may_probe(struct device *dev, void *data)
>   */
>  void __init fw_devlink_unblock_may_probe(void)
>  {
> -       struct device_link *link, *ln;
> -
>         if (!fw_devlink_flags || fw_devlink_is_permissive())
>                 return;
>
> and it compiles + boots without a delay.

Thanks for testing! I missed your reply until now and I ended up
sending out a v2 a few days back. That's a much better series IMO
because it only temporarily ignores dependencies and only when NFS
root mounting might not work. If you can test that too (and it
shouldn't have the useless variable), I'd appreciate it.

-Saravana

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up
  2022-05-30  9:38 ` Geert Uytterhoeven
@ 2022-06-05  3:47   ` Saravana Kannan
  0 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-06-05  3:47 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

On Mon, May 30, 2022 at 2:38 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Saravana,
>
> On Thu, May 26, 2022 at 10:15 AM Saravana Kannan <saravanak@google.com> wrote:
> > This series is based on linux-next + these 2 small patches applies on top:
> > https://lore.kernel.org/lkml/20220526034609.480766-1-saravanak@google.com/
> >
> > A lot of the deferred_probe_timeout logic is redundant with
> > fw_devlink=on.  Also, enabling deferred_probe_timeout by default breaks
> > a few cases.
> >
> > This series tries to delete the redundant logic, simplify the frameworks
> > that use driver_deferred_probe_check_state(), enable
> > deferred_probe_timeout=10 by default, and fixes the nfsroot failure
> > case.
> >
> > Patches 1 to 3 are fairly straightforward and can probably be applied
> > right away.
> >
> > Patches 4 to 9 are related and are the complicated bits of this series.
> >
> > Patch 8 is where someone with more knowledge of the IP auto config code
> > can help rewrite the patch to limit the scope of the workaround by
> > running the work around only if IP auto config fails the first time
> > around. But it's also something that can be optimized in the future
> > because it's already limited to the case where IP auto config is enabled
> > using the kernel commandline.
>
> Thanks for your series!
>
> > Yoshihiro/Geert,
> >
> > If you can test this patch series and confirm that the NFS root case
> > works, I'd really appreciate that.
>
> On Salvator-XS, Micrel KSZ9031 Gigabit PHY probe is no longer delayed
> by 9s after applying the two earlier patches, and the same is true
> after applying this series on top.
> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
>
> I will do testing on more boards, but that may take a while, as we're
> in the middle of the merge window.

Thanks for testing. I missed your email until now. I sent out a v2
series a few days back and that's a much better solution than v1. If
you can test that series instead, that'd be nice.

-Saravana

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0."
  2022-06-05  3:18     ` Saravana Kannan
@ 2022-06-05  4:12       ` Saravana Kannan
  0 siblings, 0 replies; 22+ messages in thread
From: Saravana Kannan @ 2022-06-05  4:12 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

On Sat, Jun 4, 2022 at 8:18 PM Saravana Kannan <saravanak@google.com> wrote:
>
> On Mon, May 30, 2022 at 2:13 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> >
> > Hi Saravana,
> >
> > On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> > > This reverts commit 11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61.
> >
> > scripts/chdeckpatch.pl says:
> >
> >     WARNING: Unknown commit id
> > '11f7e7ef553b6b93ac1aa74a3c2011b9cc8aeb61', maybe rebased or not
> > pulled?
> >
> > I assume this is your local copy of
> > https://lore.kernel.org/r/20220526034609.480766-3-saravanak@google.com?
>
> I somehow missed all your replies and noticed it just now.
>
> That commit should be based on driver-core-next.

My bad, it was indeed a local commit, but it's one I had already sent
to LKML. It's one of the 2 patches I asked to pull-in in the cover
letter. I'll fix this once I get some tests/reviews on this series or
if I need to send out a v3 series before that.

-Saravana

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 2/9] pinctrl: devicetree: Delete usage of driver_deferred_probe_check_state()
  2022-06-05  3:41     ` Saravana Kannan
@ 2022-06-06 10:17       ` Andy Shevchenko
  0 siblings, 0 replies; 22+ messages in thread
From: Andy Shevchenko @ 2022-06-06 10:17 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Geert Uytterhoeven, Greg Kroah-Hartman, Rafael J. Wysocki,
	Kevin Hilman, Ulf Hansson, Len Brown, Pavel Machek, Joerg Roedel,
	Will Deacon, Andrew Lunn, Heiner Kallweit, Russell King,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Linus Walleij, Daniel Scally, Heikki Krogerus, Sakari Ailus,
	Hideaki YOSHIFUJI, David Ahern, Mark Brown, Rob Herring,
	Yoshihiro Shimoda, John Stultz, Nathan Chancellor,
	Sebastian Andrzej Siewior, Android Kernel Team,
	Linux Kernel Mailing List, Linux PM list, Linux IOMMU, netdev,
	open list:GPIO SUBSYSTEM, ACPI Devel Maling List

On Sat, Jun 04, 2022 at 08:41:01PM -0700, Saravana Kannan wrote:
> On Mon, May 30, 2022 at 2:22 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> > > Now that fw_devlink=on by default and fw_devlink supports
> > > "pinctrl-[0-8]" property, the execution will never get to the point
> >
> > 0-9?
> >
> > oh, it's really 0-8:
> >
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl0, "pinctrl-0", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl1, "pinctrl-1", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl2, "pinctrl-2", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl3, "pinctrl-3", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl4, "pinctrl-4", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl5, "pinctrl-5", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl6, "pinctrl-6", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl7, "pinctrl-7", NULL)
> >     drivers/of/property.c:DEFINE_SIMPLE_PROP(pinctrl8, "pinctrl-8", NULL)
> >
> > Looks fragile, especially since we now have:
> >
> >     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi:
> > pinctrl-9 = <&i2cmux_9>;
> >     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-10
> > = <&i2cmux_10>;
> >     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-11
> > = <&i2cmux_11>;
> >     arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi: pinctrl-12
> > = <&i2cmux_pins_i>;
> 
> Checking for pinctrl-* and then verifying if * matches %d would be
> more complicated and probably more expensive compared to listing
> pinctrl-[0-8]. Especially because more than 50% of pinctrl-*
> properties in DT files are NOT pinctrl-%d. So back when we merged
> this, Rob and I agreed [0-8] was good enough for now and we can add
> more if we needed to. Also, when I checked back then, all the
> pinctrl-5+ properties ended up pointing to the same suppliers as the
> lower numbered ones. So it didn't make a difference.
> 
> Ok, I just checked linux-next all the pinctrl-9+ instances and it's
> still true that they all point to the same supplier pointed to by
> pinctrl-[0-8].
> 
> So yeah, it looks fragile, 

And feels fragile, adds into confusion, etc.
Please, consider redesigning this to be more robust.

>	but is not broken and it's more efficient
> than looking for pinctrl-%d or adding more pinctrl-xx entries. So,
> let's fix it if it actually breaks? Not going to oppose a patch if
> anyone wants to make it more complete.
> 
> > > where driver_deferred_probe_check_state() is called before the supplier
> > > has probed successfully or before deferred probe timeout has expired.
> > >
> > > So, delete the call and replace it with -ENODEV.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe
  2022-05-26  8:15 ` [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe Saravana Kannan
@ 2022-06-07 12:36   ` Geert Uytterhoeven
  0 siblings, 0 replies; 22+ messages in thread
From: Geert Uytterhoeven @ 2022-06-07 12:36 UTC (permalink / raw)
  To: Saravana Kannan
  Cc: Greg Kroah-Hartman, Rafael J. Wysocki, Kevin Hilman, Ulf Hansson,
	Len Brown, Pavel Machek, Joerg Roedel, Will Deacon, Andrew Lunn,
	Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Linus Walleij, Andy Shevchenko,
	Daniel Scally, Heikki Krogerus, Sakari Ailus, Hideaki YOSHIFUJI,
	David Ahern, Mark Brown, Rob Herring, Yoshihiro Shimoda,
	John Stultz, Nathan Chancellor, Sebastian Andrzej Siewior,
	Android Kernel Team, Linux Kernel Mailing List, Linux PM list,
	Linux IOMMU, netdev, open list:GPIO SUBSYSTEM,
	ACPI Devel Maling List

Hi Saravana,

On Thu, May 26, 2022 at 10:16 AM Saravana Kannan <saravanak@google.com> wrote:
> If there are network devices that could probe without some of their
> suppliers probing and those network devices are needed for IP auto
> config to work, then fw_devlink=on might break that usecase by blocking
> the network devices from probing by the time IP auto config starts.
>
> So, when IP auto config is enabled, make sure fw_devlink doesn't block
> the probing of any device that has a driver by the time we get to IP
> auto config.
>
> Signed-off-by: Saravana Kannan <saravanak@google.com>
> ---
>  net/ipv4/ipconfig.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
> index 9d41d5d5cd1e..aa7b8ba68ca6 100644
> --- a/net/ipv4/ipconfig.c
> +++ b/net/ipv4/ipconfig.c
> @@ -1435,6 +1435,8 @@ static int __init wait_for_devices(void)
>  {
>         int i;
>
> +       fw_devlink_unblock_may_probe();
> +
>         for (i = 0; i < DEVICE_WAIT_MAX; i++) {
>                 struct net_device *dev;
>                 int found = 0;

FTR, this lacks an include <linux/fwnode.h>, as my mips rbtx4927
build fails with:

net/ipv4/ipconfig.c:1438:2: error: implicit declaration of function
‘fw_devlink_unblock_may_probe’ [-Werror=implicit-function-declaration]

Switching to v2 instead...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-06-07 12:37 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-26  8:15 [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 1/9] PM: domains: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 2/9] pinctrl: devicetree: " Saravana Kannan
2022-05-30  9:22   ` Geert Uytterhoeven
2022-06-05  3:41     ` Saravana Kannan
2022-06-06 10:17       ` Andy Shevchenko
2022-05-26  8:15 ` [RFC PATCH v1 3/9] net: mdio: " Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 4/9] Revert "driver core: Set default deferred_probe_timeout back to 0." Saravana Kannan
2022-05-30  9:12   ` Geert Uytterhoeven
2022-06-05  3:18     ` Saravana Kannan
2022-06-05  4:12       ` Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 5/9] driver core: Set fw_devlink.strict=1 by default Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 6/9] iommu/of: Delete usage of driver_deferred_probe_check_state() Saravana Kannan
2022-05-26  8:15 ` [RFC PATCH v1 7/9] driver core: Add fw_devlink_unblock_may_probe() helper function Saravana Kannan
2022-05-30  9:46   ` Andy Shevchenko
2022-05-26  8:15 ` [RFC PATCH v1 8/9] net: ipconfig: Force fw_devlink to unblock any devices that might probe Saravana Kannan
2022-06-07 12:36   ` Geert Uytterhoeven
2022-05-26  8:15 ` [RFC PATCH v1 9/9] driver core: Delete driver_deferred_probe_check_state() Saravana Kannan
2022-05-30  8:49 ` [RFC PATCH v1 0/9] deferred_probe_timeout logic clean up Sebastian Andrzej Siewior
2022-06-05  3:45   ` Saravana Kannan
2022-05-30  9:38 ` Geert Uytterhoeven
2022-06-05  3:47   ` Saravana Kannan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).