driver/sensor: move register_driver to end to avoid race condition

Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
Jiuzhu Dong 2022-06-14 11:44:24 +08:00 committed by Xiang Xiao
parent bf6063cc04
commit 38393cfc94

View File

@ -1048,14 +1048,6 @@ int sensor_custom_register(FAR struct sensor_lowerhalf_s *lower,
lower->nbuffer = 0; 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 #ifdef CONFIG_SENSORS_RPMSG
lower = sensor_rpmsg_register(lower, path); lower = sensor_rpmsg_register(lower, path);
if (lower == NULL) if (lower == NULL)
@ -1065,7 +1057,15 @@ int sensor_custom_register(FAR struct sensor_lowerhalf_s *lower,
} }
#endif #endif
upper->state.nbuffer = lower->nbuffer;
upper->lower = lower; upper->lower = lower;
sninfo("Registering %s\n", path);
ret = register_driver(path, &g_sensor_fops, 0666, upper);
if (ret)
{
goto drv_err;
}
return ret; return ret;
drv_err: drv_err: