Merge "Add traits to BitSet64, not 32."
diff --git a/healthd/healthd_mode_charger.cpp b/healthd/healthd_mode_charger.cpp
index fc3ac67..710f5b6 100644
--- a/healthd/healthd_mode_charger.cpp
+++ b/healthd/healthd_mode_charger.cpp
@@ -646,7 +646,7 @@
         healthd_register_event(epollfd, charger_event_handler);
     }
 
-    ret = res_create_surface("charger/battery_fail", &charger->surf_unknown);
+    ret = res_create_display_surface("charger/battery_fail", &charger->surf_unknown);
     if (ret < 0) {
         LOGE("Cannot load battery_fail image\n");
         charger->surf_unknown = NULL;
@@ -656,7 +656,7 @@
 
     gr_surface* scale_frames;
     int scale_count;
-    ret = res_create_multi_surface("charger/battery_scale", &scale_count, &scale_frames);
+    ret = res_create_multi_display_surface("charger/battery_scale", &scale_count, &scale_frames);
     if (ret < 0) {
         LOGE("Cannot load battery_scale image\n");
         charger->batt_anim->num_frames = 0;
diff --git a/liblog/log_read.c b/liblog/log_read.c
index d96f129..2dd07e6 100644
--- a/liblog/log_read.c
+++ b/liblog/log_read.c
@@ -272,11 +272,11 @@
                             const char *msg, char *buf, size_t buf_size)
 {
     ssize_t ret;
+    int errno_save = 0;
     int sock = socket_local_client("logd", ANDROID_SOCKET_NAMESPACE_RESERVED,
                                    SOCK_STREAM);
     if (sock < 0) {
-        ret = sock;
-        goto done;
+        return sock;
     }
 
     if (msg) {
@@ -292,9 +292,12 @@
 
 done:
     if ((ret == -1) && errno) {
-        ret = -errno;
+        errno_save = errno;
     }
     close(sock);
+    if (errno_save) {
+        errno = errno_save;
+    }
     return ret;
 }
 
@@ -305,6 +308,7 @@
     }
 
     if (strncmp(buf, "success", 7)) {
+        errno = EINVAL;
         return -1;
     }
 
diff --git a/logcat/logcat.cpp b/logcat/logcat.cpp
index 7bf91a9..5960609 100644
--- a/logcat/logcat.cpp
+++ b/logcat/logcat.cpp
@@ -699,7 +699,7 @@
             int ret;
             ret = android_logger_clear(dev->logger);
             if (ret) {
-                perror("clearLog");
+                perror("failed to clear the log");
                 exit(EXIT_FAILURE);
             }
         }
@@ -707,7 +707,7 @@
 #ifdef USERDEBUG_BUILD
 
         if (setLogSize && android_logger_set_log_size(dev->logger, setLogSize)) {
-            perror("setLogSize");
+            perror("failed to set the log size");
             exit(EXIT_FAILURE);
         }
 
@@ -718,13 +718,13 @@
 
             size = android_logger_get_log_size(dev->logger);
             if (size < 0) {
-                perror("getLogSize");
+                perror("failed to get the log size");
                 exit(EXIT_FAILURE);
             }
 
             readable = android_logger_get_log_readable_size(dev->logger);
             if (readable < 0) {
-                perror("getLogReadableSize");
+                perror("failed to get the readable log size");
                 exit(EXIT_FAILURE);
             }
 
@@ -748,7 +748,7 @@
         free(buf);
 
         if (ret) {
-            perror("setPruneList");
+            perror("failed to set the prune list");
             exit(EXIT_FAILURE);
         }
     }
@@ -792,7 +792,7 @@
         }
 
         if (!buf) {
-            perror("response read");
+            perror("failed to read data");
             exit(EXIT_FAILURE);
         }
 
@@ -859,7 +859,7 @@
                 fprintf(stderr, "read: unexpected length.\n");
                 exit(EXIT_FAILURE);
             }
-            perror("logcat read");
+            perror("logcat read failure");
             exit(EXIT_FAILURE);
         }
 
diff --git a/logd/LogListener.cpp b/logd/LogListener.cpp
index c6b248b..2aa2ebb 100644
--- a/logd/LogListener.cpp
+++ b/logd/LogListener.cpp
@@ -31,7 +31,8 @@
 {  }
 
 bool LogListener::onDataAvailable(SocketClient *cli) {
-    char buffer[1024];
+    char buffer[sizeof_log_id_t + sizeof(log_time) + sizeof(char)
+        + LOGGER_ENTRY_MAX_PAYLOAD];
     struct iovec iov = { buffer, sizeof(buffer) };
     memset(buffer, 0, sizeof(buffer));