diff --git a/logwrapper/logwrap.c b/logwrapper/logwrap.c
index d9247ec..b2abfe2 100644
--- a/logwrapper/logwrap.c
+++ b/logwrapper/logwrap.c
@@ -79,9 +79,7 @@
     pthread_sigmask(SIG_UNBLOCK, &chldset, NULL);
 
     while (!found_child) {
-        if (poll(poll_fds, remote_hung ? 1 : 2, -1) < 0) {
-            if (errno == EINTR)
-                continue;
+        if (TEMP_FAILURE_RETRY(poll(poll_fds, remote_hung ? 1 : 2, -1)) < 0) {
             ERROR("poll failed\n");
             rc = -1;
             goto err_poll;
@@ -132,9 +130,7 @@
 
             read(signal_fd, tmp, sizeof(tmp));
             while (!found_child) {
-                do {
-                    ret = waitpid(-1, &status, WNOHANG);
-                } while (ret < 0 && errno == EINTR);
+                ret = TEMP_FAILURE_RETRY(waitpid(-1, &status, WNOHANG));
 
                 if (ret <= 0)
                     break;
diff --git a/mkbootimg/mkbootimg.c b/mkbootimg/mkbootimg.c
index 2c32ce3..34a879b 100644
--- a/mkbootimg/mkbootimg.c
+++ b/mkbootimg/mkbootimg.c
@@ -72,7 +72,7 @@
 
 
 
-static unsigned char padding[4096] = { 0, };
+static unsigned char padding[16384] = { 0, };
 
 int write_padding(int fd, unsigned pagesize, unsigned itemsize)
 {
@@ -152,7 +152,8 @@
             board = val;
         } else if(!strcmp(arg,"--pagesize")) {
             pagesize = strtoul(val, 0, 10);
-            if ((pagesize != 2048) && (pagesize != 4096)) {
+            if ((pagesize != 2048) && (pagesize != 4096)
+                && (pagesize != 8192) && (pagesize != 16384)) {
                 fprintf(stderr,"error: unsupported page size %d\n", pagesize);
                 return -1;
             }
