summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-06-08 10:16:09 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-06-08 10:16:10 +0000
commitd6d91e58336678726a03b2e9619b0bae0b23ff04 (patch)
tree727d09ffc9f60e79643215405a70c4201311ef93
parent4c0bb0a09ac04281e631c16ef98d15846c12ecda (diff)
parent2d2b46841bf2e22e58d80d3ec547e86b2f1e250b (diff)
downloadnative-d6d91e58336678726a03b2e9619b0bae0b23ff04.tar.gz
Merge "No more ashmem equivalent checker false alarm" into oc-dev
-rw-r--r--services/sensorservice/SensorDirectConnection.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/services/sensorservice/SensorDirectConnection.cpp b/services/sensorservice/SensorDirectConnection.cpp
index 91923b36a0..870635bf05 100644
--- a/services/sensorservice/SensorDirectConnection.cpp
+++ b/services/sensorservice/SensorDirectConnection.cpp
@@ -18,8 +18,6 @@
#include "SensorDirectConnection.h"
#include <hardware/sensors.h>
-#include <sys/stat.h>
-
#define UNUSED(x) (void)(x)
namespace android {
@@ -182,13 +180,12 @@ bool SensorService::SensorDirectConnection::isEquivalent(const sensors_direct_me
if (mMem.type == mem->type) {
switch (mMem.type) {
case SENSOR_DIRECT_MEM_TYPE_ASHMEM: {
- struct stat s1, s2;
- int fd1, fd2;
- fd1 = mMem.handle->data[0];
- fd2 = mem->handle->data[0];
- if (fstat(fd1, &s1) < 0 || fstat(fd2, &s2) < 0 || s1.st_ino == s2.st_ino) {
- ret = true;
- }
+ // there is no known method to test if two ashmem fds are equivalent besides
+ // trivially comparing the fd values (ino number from fstat() are always the
+ // same, pointing to "/dev/ashmem").
+ int fd1 = mMem.handle->data[0];
+ int fd2 = mem->handle->data[0];
+ ret = (fd1 == fd2);
break;
}
case SENSOR_DIRECT_MEM_TYPE_GRALLOC: