Only monitor recognized uevent devices.
system_server can potentially monitor uevent devices that are of no use to it. For instance, an accelerometer implementation as uevents. This would cause the process to be busy when unnecessary. If a device cannot be classified, don't monitor it. Change-Id: I489cc453bdce7cb376102cba67a9ea470e13292d
This commit is contained in:
committed by
Jean-Baptiste Queru
parent
e7731f0a7f
commit
40a8758676
@@ -528,7 +528,6 @@ int EventHub::open_device(const char *deviceName)
|
|||||||
if (strcmp(name, test) == 0) {
|
if (strcmp(name, test) == 0) {
|
||||||
LOGI("ignoring event id %s driver %s\n", deviceName, test);
|
LOGI("ignoring event id %s driver %s\n", deviceName, test);
|
||||||
close(fd);
|
close(fd);
|
||||||
fd = -1;
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -737,6 +736,14 @@ int EventHub::open_device(const char *deviceName)
|
|||||||
device->id, name, propName, keylayoutFilename);
|
device->id, name, propName, keylayoutFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the device isn't recognized as something we handle, don't monitor it.
|
||||||
|
if (device->classes == 0) {
|
||||||
|
LOGV("Dropping device %s %p, id = %d\n", deviceName, device, devid);
|
||||||
|
close(fd);
|
||||||
|
delete device;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
LOGI("New device: path=%s name=%s id=0x%x (of 0x%x) index=%d fd=%d classes=0x%x\n",
|
LOGI("New device: path=%s name=%s id=0x%x (of 0x%x) index=%d fd=%d classes=0x%x\n",
|
||||||
deviceName, name, device->id, mNumDevicesById, mFDCount, fd, device->classes);
|
deviceName, name, device->id, mNumDevicesById, mFDCount, fd, device->classes);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user