This is a note to let you know that I've just added the patch titled

    tools/firmware/ihex2fw: Replace explicit alignment with ALIGN

to my driver-core git tree which can be found at
    git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
in the driver-core-next branch.

The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)

The patch will also be merged in the next major kernel release
during the merge window.

If you have any questions about this process, please let me know.


>From 925f8d4aad5ca1bf18987a3cdcb0e176bddddcf1 Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <[email protected]>
Date: Thu, 20 Dec 2018 23:28:41 -0800
Subject: tools/firmware/ihex2fw: Replace explicit alignment with ALIGN

(X + 3) & ~3 is the same as ALIGN(X, 4), so replace all of the
instances of the formwer in the code with the latter. While at it,
introduce a helper variable 'record_size' to avoid duplicating length
calculatin code. No functional change intended.

Cc: Chris Healy <[email protected]>
Cc: Kyle McMartin <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Masahiro Yamada <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: linux-kernel <[email protected]>
Signed-off-by: Andrey Smirnov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 tools/firmware/ihex2fw.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/ihex2fw.c b/tools/firmware/ihex2fw.c
index e081cef730d8..8925b60e51f5 100644
--- a/tools/firmware/ihex2fw.c
+++ b/tools/firmware/ihex2fw.c
@@ -135,6 +135,7 @@ int main(int argc, char **argv)
 static int process_ihex(uint8_t *data, ssize_t size)
 {
        struct ihex_binrec *record;
+       size_t record_size;
        uint32_t offset = 0;
        uint32_t data32;
        uint8_t type, crc = 0, crcbyte = 0;
@@ -161,12 +162,13 @@ static int process_ihex(uint8_t *data, ssize_t size)
                len <<= 8;
                len += hex(data + i, &crc); i += 2;
        }
-       record = malloc((sizeof (*record) + len + 3) & ~3);
+       record_size = ALIGN(sizeof(*record) + len, 4);
+       record = malloc(record_size);
        if (!record) {
                fprintf(stderr, "out of memory for records\n");
                return -ENOMEM;
        }
-       memset(record, 0, (sizeof(*record) + len + 3) & ~3);
+       memset(record, 0, record_size);
        record->len = len;
 
        /* now check if we have enough data to read everything */
-- 
2.20.1


Reply via email to