Blame SOURCES/0029-util-update-dumpstr.patch

4d44fe
From 79acbcf2550f3a55108240558efb8b9c36eb8399 Mon Sep 17 00:00:00 2001
4d44fe
From: Eugene Syromyatnikov <evgsyr@gmail.com>
4d44fe
Date: Tue, 19 Feb 2019 03:10:11 +0100
4d44fe
Subject: [PATCH] util: update dumpstr
4d44fe
4d44fe
Use a buffer of a limited size, use proper type for dump amount, avoid
4d44fe
hard-coding of byte counts, calculate output buffer size more accurately
4d44fe
and minimise its rewriting, pad offset with zeros in accordance
4d44fe
with expected output amount.
4d44fe
4d44fe
* defs.h (dumpstr): Change the type of len argument from int to
4d44fe
kernel_ulong_t.
4d44fe
* macros.h (ROUNDUP_DIV): New macro.
4d44fe
(ROUNDUP): Rewrite using ROUNDUP_DIV.
4d44fe
* util.c (ILOG2_ITER_): New macro.
4d44fe
(ilog2_64, ilog2_32): New functions.
4d44fe
(ilog2_klong): New macro, wrapper around ilog2_32/ilog2_64, so (potentially
4d44fe
more expensive) ilog2_64 is not used for ilog2 calculation
4d44fe
of a kernel_ulong_t-typed variable on architectures with 32-bit kernel long.
4d44fe
(dumpstr): Update.
4d44fe
4d44fe
Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
4d44fe
---
4d44fe
 defs.h   |   2 +-
4d44fe
 macros.h |   6 +-
4d44fe
 util.c   | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------
4d44fe
 3 files changed, 169 insertions(+), 44 deletions(-)
4d44fe
4d44fe
diff --git a/macros.h b/macros.h
4d44fe
index 7f019480..61abf826 100644
4d44fe
--- a/macros.h
4d44fe
+++ b/macros.h
4d44fe
@@ -28,8 +28,12 @@
4d44fe
 #endif
4d44fe
 #define CLAMP(val, min, max)	MIN(MAX(min, val), max)
4d44fe
 
4d44fe
+#ifndef ROUNDUP_DIV
4d44fe
+# define ROUNDUP_DIV(val_, div_) (((val_) + (div_) - 1) / (div_))
4d44fe
+#endif
4d44fe
+
4d44fe
 #ifndef ROUNDUP
4d44fe
-# define ROUNDUP(val_, div_) ((((val_) + (div_) - 1) / (div_)) * (div_))
4d44fe
+# define ROUNDUP(val_, div_) (ROUNDUP_DIV((val_), (div_)) * (div_))
4d44fe
 #endif
4d44fe
 
4d44fe
 #ifndef offsetofend
4d44fe
-- 
4d44fe
2.13.6
4d44fe