diff --git a/debuggerd/tombstone.c b/debuggerd/tombstone.c
index 012337b..592f4f2 100644
--- a/debuggerd/tombstone.c
+++ b/debuggerd/tombstone.c
@@ -128,6 +128,15 @@
     return "?";
 }
 
+static void dump_revision_info(log_t* log)
+{
+    char revision[PROPERTY_VALUE_MAX];
+
+    property_get("ro.revision", revision, "unknown");
+
+    _LOG(log, false, "Revision: '%s'\n", revision);
+}
+
 static void dump_build_info(log_t* log)
 {
     char fingerprint[PROPERTY_VALUE_MAX];
@@ -599,6 +608,7 @@
     _LOG(log, false,
             "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n");
     dump_build_info(log);
+    dump_revision_info(log);
     dump_thread_info(log, pid, tid, true);
     if(signal) {
         dump_fault_addr(log, tid, signal);
diff --git a/include/ion/ion.h b/include/ion/ion.h
index 78a6e2e..018c0a1 100644
--- a/include/ion/ion.h
+++ b/include/ion/ion.h
@@ -31,6 +31,7 @@
 	      unsigned int flags, struct ion_handle **handle);
 int ion_alloc_fd(int fd, size_t len, size_t align, unsigned int heap_mask,
 		 unsigned int flags, int *handle_fd);
+int ion_sync_fd(int fd, int handle_fd);
 int ion_free(int fd, struct ion_handle *handle);
 int ion_map(int fd, struct ion_handle *handle, size_t length, int prot,
             int flags, off_t offset, unsigned char **ptr, int *map_fd);
diff --git a/libion/ion.c b/libion/ion.c
index 164cec9..020c35b 100644
--- a/libion/ion.c
+++ b/libion/ion.c
@@ -146,3 +146,11 @@
         *handle = data.handle;
         return ret;
 }
+
+int ion_sync_fd(int fd, int handle_fd)
+{
+    struct ion_fd_data data = {
+        .fd = handle_fd,
+    };
+    return ion_ioctl(fd, ION_IOC_SYNC, &data);
+}
