From e011a528eb6fafe3ef53c17ec32b8e3934b850d1 Mon Sep 17 00:00:00 2001
From: Lorenz Meier <lorenz@px4.io>
Date: Tue, 6 Sep 2016 23:34:02 +0200
Subject: [PATCH] Enable a workaround for #5438 (#5450)

* Enable a workaround for #5438

* Disable Travis Slack integration

* Fix formatting
---
 .travis.yml                                      |  2 +-
 src/modules/mavlink/mavlink_orb_subscription.cpp | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 057eed9845..7aad59509a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -130,4 +130,4 @@ notifications:
       - secure: "QKw73Zel/s3JAbe/7XyO9tPnJwiiGFpYzSjdR8lG3tYFjRdXZnhxG4c+G7bkgkaPTS4Hult33VXE3kcEqOI7+C+eRwRlZhDfL0knQbXVCxjcLjzmUFdoPOwurlgZDw66PFWCi5tZcLKSRo3u4U8ibT4WKi3jm9sDSyOcfBAucMU="
     on_pull_requests: false
     on_success: never  # options: [always|never|change] default: always
-    on_failure: change  # options: [always|never|change] default: always
+    on_failure: never  # options: [always|never|change] default: always
diff --git a/src/modules/mavlink/mavlink_orb_subscription.cpp b/src/modules/mavlink/mavlink_orb_subscription.cpp
index f1747e3a79..5255b16ee9 100644
--- a/src/modules/mavlink/mavlink_orb_subscription.cpp
+++ b/src/modules/mavlink/mavlink_orb_subscription.cpp
@@ -157,6 +157,15 @@ MavlinkOrbSubscription::is_published()
 		return true;
 	}
 
+	// This is a workaround for this issue:
+	// https://github.com/PX4/Firmware/issues/5438
+#if defined(__PX4_LINUX) || defined(__PX4_QURT)
+
+	if (_fd < 0) {
+		_fd = orb_subscribe_multi(_topic, _instance);
+	}
+
+#else
 	// Telemetry can sustain an initial published check at 10 Hz
 	hrt_abstime now = hrt_absolute_time();
 
@@ -175,6 +184,8 @@ MavlinkOrbSubscription::is_published()
 		_fd = orb_subscribe_multi(_topic, _instance);
 	}
 
+#endif
+
 	bool updated;
 	orb_check(_fd, &updated);
 
-- 
GitLab