diff --git a/lmkd/Android.bp b/lmkd/Android.bp index e8e125b85..deebb8e65 100644 --- a/lmkd/Android.bp +++ b/lmkd/Android.bp @@ -48,6 +48,7 @@ cc_library_static { cc_library_static { name: "liblmkd_utils", srcs: ["liblmkd_utils.c"], + recovery_available: true, shared_libs: [ "libcutils", ], diff --git a/lmkd/liblmkd_utils.c b/lmkd/liblmkd_utils.c index fa3b7a920..980cd3513 100644 --- a/lmkd/liblmkd_utils.c +++ b/lmkd/liblmkd_utils.c @@ -28,7 +28,7 @@ int lmkd_connect() { return socket_local_client("lmkd", ANDROID_SOCKET_NAMESPACE_RESERVED, - SOCK_SEQPACKET); + SOCK_SEQPACKET | SOCK_CLOEXEC); } int lmkd_register_proc(int sock, struct lmk_procprio *params) { diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c index e7a23ef23..1edd77223 100644 --- a/lmkd/lmkd.c +++ b/lmkd/lmkd.c @@ -245,8 +245,8 @@ struct sock_event_handler_info { struct event_handler_info handler_info; }; -/* max supported number of data connections */ -#define MAX_DATA_CONN 2 +/* max supported number of data connections (AMS, init, tests) */ +#define MAX_DATA_CONN 3 /* socket event handler data */ static struct sock_event_handler_info ctrl_sock; @@ -256,7 +256,7 @@ static struct sock_event_handler_info data_sock[MAX_DATA_CONN]; static struct event_handler_info vmpressure_hinfo[VMPRESS_LEVEL_COUNT]; /* - * 1 ctrl listen socket, 2 ctrl data socket, 3 memory pressure levels, + * 1 ctrl listen socket, 3 ctrl data socket, 3 memory pressure levels, * 1 lmk events + 1 fd to wait for process death */ #define MAX_EPOLL_EVENTS (1 + MAX_DATA_CONN + VMPRESS_LEVEL_COUNT + 1 + 1)