]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
driver core: Read atomic counter once in driver_probe_done()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 24 Mar 2020 12:20:22 +0000 (14:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Mar 2020 12:33:25 +0000 (13:33 +0100)
Between printing the debug message and actual check atomic counter can be
altered. For better debugging experience read atomic counter value only once.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
Link: https://lore.kernel.org/r/20200324122023.9649-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/dd.c

index 76888a7459d8da5f36debd62a1127c3ba11cf9ff..3f5b8bdd94f0b4e630e17ae076c85b062b8661a4 100644 (file)
@@ -644,9 +644,10 @@ static int really_probe_debug(struct device *dev, struct device_driver *drv)
  */
 int driver_probe_done(void)
 {
-       pr_debug("%s: probe_count = %d\n", __func__,
-                atomic_read(&probe_count));
-       if (atomic_read(&probe_count))
+       int local_probe_count = atomic_read(&probe_count);
+
+       pr_debug("%s: probe_count = %d\n", __func__, local_probe_count);
+       if (local_probe_count)
                return -EBUSY;
        return 0;
 }