Hi
On 29/06/2020 14:28, Andrzej Hajda wrote:
Hi Grygorii,
(...)
/*
* deferred_devs_show() - Show the devices in the deferred probe
pending list.
*/
@@ -221,7 +241,8 @@ static int deferred_devs_show(struct seq_file *s,
void *data)
mutex_lock(&deferred_probe_mutex);
list_for_each_entry(curr, &deferred_probe_pending_list,
deferred_probe)
- seq_printf(s, "%s\n", dev_name(curr->device));
+ seq_printf(s, "%s\t%s", dev_name(curr->device),
+ curr->device->p->deferred_probe_reason ?: "\n");
mutex_unlock(&deferred_probe_mutex);
Sry, may be i missing smth, but shouldn't it be optional
(CONFIG_DEBUG_FS is probably too generic).
I am not sure what exactly are you referring to, but this patch does not
add new property, it just extends functionality of existing one.
Sry, needed to be more specific.
You've added device_set_deferred_probe_reson(dev, &vaf);
which expected to be used on every EPROBE_DEFER in dev_err_probe() in combination with
+ } else {
+ device_set_deferred_probe_reson(dev, &vaf);
dev_dbg(dev, "error %d: %pV", err, &vaf);
^^ dev_dbg() does not add any runtime overhead during boot unless enabled
+ }
But:
+void device_set_deferred_probe_reson(const struct device *dev, struct va_format *vaf)
+{
+ const char *drv = dev_driver_string(dev);
+
+ mutex_lock(&deferred_probe_mutex);
+
+ kfree(dev->p->deferred_probe_reason);
+ dev->p->deferred_probe_reason = kasprintf(GFP_KERNEL, "%s: %pV", drv, vaf);
+
+ mutex_unlock(&deferred_probe_mutex);
+}
^^ Adds locking, kfree() and kasprintf() for every deferred probe during boot and can't be disabled.
Right?
--
Best regards,
grygorii
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel