Merge "charger: android_get_control_file on last_kmsg"

am: ee9ba3efe7

Change-Id: I8fd2f518e0592c18f507de01df232deac492a4bf
This commit is contained in:
Yifan Hong 2019-03-27 12:10:27 -07:00 committed by android-build-merger
commit d8209aa315

View file

@ -36,6 +36,7 @@
#include <linux/netlink.h>
#include <sys/socket.h>
#include <cutils/android_get_control_file.h>
#include <cutils/klog.h>
#include <cutils/misc.h>
#include <cutils/properties.h>
@ -206,10 +207,9 @@ static int64_t curr_time_ms() {
#define MAX_KLOG_WRITE_BUF_SZ 256
static void dump_last_kmsg(void) {
char* buf;
std::string buf;
char* ptr;
unsigned sz = 0;
int len;
size_t len;
LOGW("\n");
LOGW("*************** LAST KMSG ***************\n");
@ -221,21 +221,25 @@ static void dump_last_kmsg(void) {
"/proc/last_kmsg",
// clang-format on
};
for (size_t i = 0; i < arraysize(kmsg); ++i) {
buf = (char*)load_file(kmsg[i], &sz);
if (buf && sz) break;
for (size_t i = 0; i < arraysize(kmsg) && buf.empty(); ++i) {
auto fd = android_get_control_file(kmsg[i]);
if (fd >= 0) {
android::base::ReadFdToString(fd, &buf);
} else {
android::base::ReadFileToString(kmsg[i], &buf);
}
}
if (!buf || !sz) {
if (buf.empty()) {
LOGW("last_kmsg not found. Cold reset?\n");
goto out;
}
len = min(sz, LAST_KMSG_MAX_SZ);
ptr = buf + (sz - len);
len = min(buf.size(), LAST_KMSG_MAX_SZ);
ptr = &buf[buf.size() - len];
while (len > 0) {
int cnt = min(len, MAX_KLOG_WRITE_BUF_SZ);
size_t cnt = min(len, MAX_KLOG_WRITE_BUF_SZ);
char yoink;
char* nl;
@ -251,8 +255,6 @@ static void dump_last_kmsg(void) {
ptr += cnt;
}
free(buf);
out:
LOGW("\n");
LOGW("************* END LAST KMSG *************\n");