| From e6f1a85c0a3df24fe3ca9a520dc697105e75a80c Mon Sep 17 00:00:00 2001 |
| From: Andrea Adami <andrea.adami@gmail.com> |
| Date: Sat, 27 Jan 2018 09:39:26 +0100 |
| Subject: [PATCH 8/9] ubi-utils: ubiformat.c: convert to integer arithmetic |
| |
| Do not cast percent to double, it is just used as upper limit. |
| Avoid floating point to fix compilation for aarch64 against klibc: |
| |
| error: '-mgeneral-regs-only' is incompatible with floating-point code |
| | int percent = ((double)si->ok_cnt)/si->good_cnt * 100; |
| | ^~~~~~~ |
| |
| Notes: |
| * The checks in the code above this line ensure that si->good_cnt is not 0. |
| |
| * The code assumes si->good_cnt * 100 will not overflow, then we can use |
| (si->ok_cnt * 100) safely because the former is bigger. |
| |
| * The truncated result does not affect the logic: |
| i.e. a value of 49.9 is truncated to 49 and is still <50. |
| |
| Upstream-Status: Submitted |
| |
| Signed-off-by: Andrea Adami <andrea.adami@gmail.com> |
| --- |
| ubi-utils/ubiformat.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c |
| index 21409ca..d93164a 100644 |
| --- a/ubi-utils/ubiformat.c |
| +++ b/ubi-utils/ubiformat.c |
| @@ -843,7 +843,7 @@ int main(int argc, char * const argv[]) |
| } |
| |
| if (!args.override_ec && si->empty_cnt < si->good_cnt) { |
| - int percent = ((double)si->ok_cnt)/si->good_cnt * 100; |
| + int percent = (si->ok_cnt * 100) / si->good_cnt; |
| |
| /* |
| * Make sure the majority of eraseblocks have valid |
| -- |
| 2.7.4 |
| |