mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 09:49:21 +08:00
driver/sensor: fix deadlock about sensor_rpmsg
task1: nuttx/arch/arm/src/common/arm_blocktask.c:151 nxsem_wait nuttx/arch/arm/src/../../../sched/semaphore/sem_wait.c:155 (discriminator 2) sem_wait nuttx/arch/arm/src/../../../sched/semaphore/sem_wait.c:273 nxmutex_lock.lto_priv.2 nuttx/include/nuttx/mutex.h:161 sensor_rpmsg_push_event_one nuttx/arch/arm/src/../../../drivers/sensors/sensor_rpmsg.c:748 up_unblock_task nuttx/arch/arm/src/common/arm_unblocktask.c:75 (discriminator 2) sensor_rpmsg_push_event nuttx/arch/arm/src/../../../drivers/sensors/sensor_rpmsg.c:858 write orb_publish_multi nuttx/arch/arm/src/../../../../apps/system/uorb/uORB/uORB.c:188 task2: nxrmutex_lock.isra.0 sensor_read nuttx/arch/arm/src/../../../drivers/sensors/sensor.c:753 sem_post nuttx/arch/arm/src/../../../sched/semaphore/sem_post.c:224 nxmutex_unlock.lto_priv.1 nuttx/include/nuttx/mutex.h:259 sensor_rpmsg_push_event_one nuttx/arch/arm/src/../../../drivers/sensors/sensor_rpmsg.c:787 nxmutex_unlock.lto_priv.1 nuttx/include/nuttx/mutex.h:259 nuttx/arch/arm/src/../../../drivers/sensors/sensor.c:969 sensor_rpmsg_alloc_stub nuttx/arch/arm/src/../../../drivers/sensors/sensor_rpmsg.c:549 sensor_rpmsg_advack_handler Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
parent
ad20bd4bb3
commit
78381f9fc4
1 changed files with 2 additions and 1 deletions
|
@ -541,13 +541,14 @@ sensor_rpmsg_alloc_stub(FAR struct sensor_rpmsg_dev_s *dev,
|
|||
|
||||
sensor_rpmsg_lock(dev);
|
||||
list_add_tail(&dev->stublist, &stub->node);
|
||||
sensor_rpmsg_unlock(dev);
|
||||
|
||||
if (dev->lower.persist)
|
||||
{
|
||||
sensor_rpmsg_push_event_one(dev, stub);
|
||||
}
|
||||
|
||||
sensor_rpmsg_unlock(dev);
|
||||
|
||||
return stub;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue