
On Mon, Jul 04, 2022 at 07:04:42PM +0530, Sughosh Ganu wrote:
Use a statically allocated buffer on stack instead of using malloc for reading the random bytes. Using a local array is faster than allocating heap memory on every initiation of the command.
Signed-off-by: Sughosh Ganu sughosh.ganu@linaro.org
Changes since V5: None
cmd/rng.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/cmd/rng.c b/cmd/rng.c index 2ddf27545f..81a23964b8 100644 --- a/cmd/rng.c +++ b/cmd/rng.c @@ -14,9 +14,9 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { size_t n;
- struct udevice *dev;
- void *buf;
u8 buf[64]; int devnum;
struct udevice *dev; int ret = CMD_RET_SUCCESS;
switch (argc) {
@@ -41,11 +41,10 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) return CMD_RET_FAILURE; }
- buf = malloc(n);
- if (!buf) {
printf("Out of memory\n");
return CMD_RET_FAILURE;
- }
if (!n)
return 0;
n = min(n, sizeof(buf));
if (dm_rng_read(dev, buf, n)) { printf("Reading RNG failed\n");
@@ -54,15 +53,13 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, buf, n); }
- free(buf);
- return ret;
}
#ifdef CONFIG_SYS_LONGHELP static char rng_help_text[] = "[dev [n]]\n"
- " - print n random bytes read from dev\n";
- " - print n random bytes(max 64) read from dev\n";
#endif
U_BOOT_CMD(
2.25.1
Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org