From ceb9761544ab27189de34f7468964894290736bd Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Tue, 3 Jan 2023 13:08:00 +0100 Subject: [PATCH] mcp251xfd-dump: regmap: skip lines that cannot be read --- mcp251xfd/mcp251xfd-regmap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mcp251xfd/mcp251xfd-regmap.c b/mcp251xfd/mcp251xfd-regmap.c index 902ef5f..1144722 100644 --- a/mcp251xfd/mcp251xfd-regmap.c +++ b/mcp251xfd/mcp251xfd-regmap.c @@ -2,7 +2,7 @@ // // Microchip MCP251xFD Family CAN controller debug tool // -// Copyright (c) 2020, 2022 Pengutronix, +// Copyright (c) 2020, 2022, 2023 Pengutronix, // Marc Kleine-Budde // @@ -27,13 +27,18 @@ do_mcp251xfd_regmap_read(struct mcp251xfd_priv *priv, uint16_t reg; uint32_t val; unsigned int n = 0; - int err = 0; + int ret, err = 0; reg_file = fopen(file_path, "r"); if (!reg_file) return -errno; - while (fscanf(reg_file, "%hx: %x\n", ®, &val) == 2) { + while ((ret = fscanf(reg_file, "%hx: %x\n", ®, &val)) != EOF) { + if (ret != 2) { + fscanf(reg_file, "%*[^\n]\n"); + continue; + } + if (reg >= ARRAY_SIZE(mem->buf)) { err = -EINVAL; goto out_close;