summaryrefslogtreecommitdiff
path: root/tools/omapimage.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/omapimage.c')
-rw-r--r--tools/omapimage.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/omapimage.c b/tools/omapimage.c
index e31b94ae4f..e7c46388f4 100644
--- a/tools/omapimage.c
+++ b/tools/omapimage.c
@@ -20,6 +20,8 @@
#include "gpheader.h"
#include "omapimage.h"
+#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+
/* Header size is CH header rounded up to 512 bytes plus GP header */
#define OMAP_CH_HDR_SIZE 512
#define OMAP_FILE_HDR_SIZE (OMAP_CH_HDR_SIZE + GPIMAGE_HDR_SIZE)
@@ -150,8 +152,10 @@ static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd,
do_swap32 = 1;
int swapped = 0;
uint32_t *data = (uint32_t *)ptr;
+ const off_t size_in_words =
+ DIV_ROUND_UP(sbuf->st_size, sizeof(uint32_t));
- while (swapped <= (sbuf->st_size / sizeof(uint32_t))) {
+ while (swapped < size_in_words) {
*data = cpu_to_be32(*data);
swapped++;
data++;