Skip to content

Commit 68223ee

Browse files
Saravana Kannangregkh
authored andcommitted
driver core: Set deferred probe reason when deferred by driver core
When the driver core defers the probe of a device, set the deferred probe reason so that it's easier to debug. The deferred probe reason is available in debugfs under devices_deferred. Reviewed-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Saravana Kannan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 04f41c6 commit 68223ee

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

drivers/base/core.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,7 @@ int device_links_check_suppliers(struct device *dev)
975975
{
976976
struct device_link *link;
977977
int ret = 0;
978+
struct fwnode_handle *sup_fw;
978979

979980
/*
980981
* Device waiting for supplier to become available is not allowed to
@@ -983,10 +984,11 @@ int device_links_check_suppliers(struct device *dev)
983984
mutex_lock(&fwnode_link_lock);
984985
if (dev->fwnode && !list_empty(&dev->fwnode->suppliers) &&
985986
!fw_devlink_is_permissive()) {
986-
dev_dbg(dev, "probe deferral - wait for supplier %pfwP\n",
987-
list_first_entry(&dev->fwnode->suppliers,
988-
struct fwnode_link,
989-
c_hook)->supplier);
987+
sup_fw = list_first_entry(&dev->fwnode->suppliers,
988+
struct fwnode_link,
989+
c_hook)->supplier;
990+
dev_err_probe(dev, -EPROBE_DEFER, "wait for supplier %pfwP\n",
991+
sup_fw);
990992
mutex_unlock(&fwnode_link_lock);
991993
return -EPROBE_DEFER;
992994
}
@@ -1001,8 +1003,9 @@ int device_links_check_suppliers(struct device *dev)
10011003
if (link->status != DL_STATE_AVAILABLE &&
10021004
!(link->flags & DL_FLAG_SYNC_STATE_ONLY)) {
10031005
device_links_missing_supplier(dev);
1004-
dev_dbg(dev, "probe deferral - supplier %s not ready\n",
1005-
dev_name(link->supplier));
1006+
dev_err_probe(dev, -EPROBE_DEFER,
1007+
"supplier %s not ready\n",
1008+
dev_name(link->supplier));
10061009
ret = -EPROBE_DEFER;
10071010
break;
10081011
}

0 commit comments

Comments
 (0)