You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/08/01 17:29:14 UTC
[incubator-nuttx] 10/22: driver/sensor: move register_driver to end to avoid race condition
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 38393cfc940d3032325c6dc6de60b870fc0ea0ac
Author: Jiuzhu Dong <do...@xiaomi.com>
AuthorDate: Tue Jun 14 11:44:24 2022 +0800
driver/sensor: move register_driver to end to avoid race condition
Signed-off-by: Jiuzhu Dong <do...@xiaomi.com>
---
drivers/sensors/sensor.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/sensors/sensor.c b/drivers/sensors/sensor.c
index 89b47813ba..ac487bb39f 100644
--- a/drivers/sensors/sensor.c
+++ b/drivers/sensors/sensor.c
@@ -1048,14 +1048,6 @@ int sensor_custom_register(FAR struct sensor_lowerhalf_s *lower,
lower->nbuffer = 0;
}
- upper->state.nbuffer = lower->nbuffer;
- sninfo("Registering %s\n", path);
- ret = register_driver(path, &g_sensor_fops, 0666, upper);
- if (ret)
- {
- goto drv_err;
- }
-
#ifdef CONFIG_SENSORS_RPMSG
lower = sensor_rpmsg_register(lower, path);
if (lower == NULL)
@@ -1065,7 +1057,15 @@ int sensor_custom_register(FAR struct sensor_lowerhalf_s *lower,
}
#endif
+ upper->state.nbuffer = lower->nbuffer;
upper->lower = lower;
+ sninfo("Registering %s\n", path);
+ ret = register_driver(path, &g_sensor_fops, 0666, upper);
+ if (ret)
+ {
+ goto drv_err;
+ }
+
return ret;
drv_err: