From befad07fd4331e33f817a6f80ad2be7722e94545 Mon Sep 17 00:00:00 2001 From: Jiuzhu Dong Date: Mon, 6 Dec 2021 22:53:21 +0800 Subject: [PATCH] bch: specify the alignment of bch buffer by CONFIG_BCH_BUFFER_ALIGNMENT Signed-off-by: Jiuzhu Dong --- drivers/bch/Kconfig | 4 ++++ drivers/bch/bchlib_setup.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/bch/Kconfig b/drivers/bch/Kconfig index 38a36e54d6c..cdf70d59ae2 100644 --- a/drivers/bch/Kconfig +++ b/drivers/bch/Kconfig @@ -24,4 +24,8 @@ config BCH_ENCRYPTION_KEY_SIZE default 16 depends on BCH_ENCRYPTION +config BCH_BUFFER_ALIGNMENT + int "Buffer aligned bytes" + default 0 + endif # BCH diff --git a/drivers/bch/bchlib_setup.c b/drivers/bch/bchlib_setup.c index d51dfebd1b4..9c57c2021fc 100644 --- a/drivers/bch/bchlib_setup.c +++ b/drivers/bch/bchlib_setup.c @@ -112,7 +112,11 @@ int bchlib_setup(const char *blkdev, bool readonly, FAR void **handle) /* Allocate the sector I/O buffer */ - bch->buffer = (FAR uint8_t *)kmm_malloc(bch->sectsize); +#if CONFIG_BCH_BUFFER_ALIGNMENT != 0 + bch->buffer = kmm_memalign(CONFIG_BCH_BUFFER_ALIGNMENT, bch->sectsize); +#else + bch->buffer = kmm_malloc(bch->sectsize); +#endif if (!bch->buffer) { ferr("ERROR: Failed to allocate sector buffer\n");