Message ID | 20230419114854.528677-1-glaubitz@physik.fu-berlin.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | sh: sq: Fix incorrect element size for allocating bitmap buffer | expand |
On Wed, Apr 19, 2023 at 1:55 PM John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote: > The Store Queue code allocates a bitmap buffer with the size of > multiple of sizeof(long) in sq_api_init(). While the buffer size > is calculated correctly, the code uses the wrong element size to > allocate the buffer which results in the allocated bitmap buffer > being too small. > > Fix this by allocating the buffer with kcalloc() with element size > sizeof(long) instead of kzalloc() whose elements size defaults to > sizeof(char). > > Fixes: d7c30c682a27 ("sh: Store Queue API rework.") > Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index 27f2e3da5aa2..6e0bb3f47fa5 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c @@ -382,7 +382,7 @@ static int __init sq_api_init(void) if (unlikely(!sq_cache)) return ret; - sq_bitmap = kzalloc(size, GFP_KERNEL); + sq_bitmap = kcalloc(size, sizeof(long), GFP_KERNEL); if (unlikely(!sq_bitmap)) goto out;
The Store Queue code allocates a bitmap buffer with the size of multiple of sizeof(long) in sq_api_init(). While the buffer size is calculated correctly, the code uses the wrong element size to allocate the buffer which results in the allocated bitmap buffer being too small. Fix this by allocating the buffer with kcalloc() with element size sizeof(long) instead of kzalloc() whose elements size defaults to sizeof(char). Fixes: d7c30c682a27 ("sh: Store Queue API rework.") Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> --- arch/sh/kernel/cpu/sh4/sq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)