Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1242606

[PATCH 1/2] PM / sleep: ensure deferred probe workqueue is finished in wait_for_device_probe

From Grygorii Strashko <grygorii.strashko@ti.com>
Newsgroups linux.kernel
Subject [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is finished in wait_for_device_probe
Date 2015-10-08 19:00 +0200
Message-ID <qhmHU-UH-21@gated-at.bofh.it> (permalink)
References <qhmHU-UH-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Now wait_for_device_probe() waits for currently executing probes to finish,
but it doesn't take into account deferred probing mechanism. As result,
nothing prevents deferred probe workqueue to continue probing devices right
after wait_for_device_probe() is finished.

Hence, lest ensure deferred probe workqueue is finished in
wait_for_device_probe() before proceeding.

Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 drivers/base/dd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index be0eb46..98de1a5 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -391,6 +391,10 @@ int driver_probe_done(void)
  */
 void wait_for_device_probe(void)
 {
+	/* wait for the deferred probe workqueue to finish */
+	if (driver_deferred_probe_enable)
+		flush_workqueue(deferred_wq);
+
 	/* wait for the known devices to complete their probing */
 	wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
 	async_synchronize_full();
-- 
2.5.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH 1/2] PM / sleep: ensure deferred probe workqueue is finished in wait_for_device_probe Grygorii Strashko <grygorii.strashko@ti.com> - 2015-10-08 19:00 +0200
  Re: [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is finished in wait_for_device_probe "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-10-08 22:30 +0200
    Re: [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is  finished in wait_for_device_probe Alan Stern <stern@rowland.harvard.edu> - 2015-10-08 23:00 +0200
      Re: [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is  finished in wait_for_device_probe Grygorii Strashko <grygorii.strashko@ti.com> - 2015-10-09 16:40 +0200
        Re: [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is finished in wait_for_device_probe "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-10-09 22:50 +0200
          Re: [PATCH 1/2] PM / sleep: ensure deferred probe workqueue is  finished in wait_for_device_probe Grygorii Strashko <grygorii.strashko@ti.com> - 2015-10-13 20:30 +0200

csiph-web