From 825d754036d2fe1b904bc3fe8301971ce550a6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 26 Apr 2016 11:07:08 +0200 Subject: [PATCH] orb nuttx: add irqsave() guard around 64bit timestamp readout --- src/modules/uORB/uORBDevices_nuttx.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/modules/uORB/uORBDevices_nuttx.cpp b/src/modules/uORB/uORBDevices_nuttx.cpp index d9271d085b..19b814e699 100644 --- a/src/modules/uORB/uORBDevices_nuttx.cpp +++ b/src/modules/uORB/uORBDevices_nuttx.cpp @@ -267,9 +267,12 @@ uORB::DeviceNode::ioctl(struct file *filp, int cmd, unsigned long arg) SubscriberData *sd = filp_to_sd(filp); switch (cmd) { - case ORBIOCLASTUPDATE: - *(hrt_abstime *)arg = _last_update; - return OK; + case ORBIOCLASTUPDATE: { + irqstate_t state = irqsave(); + *(hrt_abstime *)arg = _last_update; + irqrestore(state); + return OK; + } case ORBIOCUPDATED: *(bool *)arg = appears_updated(sd);