From ce42c9ee1659ff86337a7f528332b4eaed6df0fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Z=C3=BCger?= Date: Thu, 21 Dec 2023 00:17:15 +0100 Subject: [PATCH] extmod/vfs_lfs: Fix lfs cache_size calculation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The calculation of the lfs2 cache_size was incorrect, the maximum allowed size is block_size. The cache size must be: "a multiple of the read and program sizes, and a factor of the block size". Signed-off-by: Peter Züger --- extmod/vfs_lfsx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extmod/vfs_lfsx.c b/extmod/vfs_lfsx.c index fe0731eced..e78c154d1f 100644 --- a/extmod/vfs_lfsx.c +++ b/extmod/vfs_lfsx.c @@ -99,7 +99,7 @@ STATIC void MP_VFS_LFSx(init_config)(MP_OBJ_VFS_LFSx * self, mp_obj_t bdev, size config->lookahead_buffer = m_new(uint8_t, config->lookahead / 8); #else config->block_cycles = 100; - config->cache_size = 4 * MAX(read_size, prog_size); + config->cache_size = MIN(config->block_size, (4 * MAX(read_size, prog_size))); config->lookahead_size = lookahead; config->read_buffer = m_new(uint8_t, config->cache_size); config->prog_buffer = m_new(uint8_t, config->cache_size);