On Thursday, October 08, 2015 03:20:08 PM Alan Stern wrote:
On Thu, 8 Oct 2015, Grygorii Strashko wrote:
/**
+ * device_defer_all_probes() - Enable/disable probing of devices
+ * @enable: Enable/disable probing of devices
+ *
+ * if @enable = true
+ * It will disable probing of devices and defer their probes.
+ * otherwise
+ * It will restore normal behavior and trigger re-probing of deferred
+ * devices.
+ */
+void device_defer_all_probes(bool enable)
+{
+ defer_all_probes = enable;
+ if (enable)
+ /* sync with probes to avoid any races. */
+ wait_for_device_probe();
^ pls, pay attention on above code line
+ else
+ driver_deferred_probe_trigger();
+}
Some people might prefer to see two separate functions, an enable
routine and a disable routine. I don't much care.
May be. Should I change it?
It would then be more in line with functions like
pm_runtime_set_{active|suspended} or pm_runtime_[dont_]use_autosuspend.
Also it would be cleaner code without conditionals:
enable:
defer_all_probes = true;
wait_for_device_probe();
disable:
defer_all_probes = false;
driver_deferred_probe_trigger();
Cleaner, no?