author | apollo.ling <apollo.ling@amlogic.com> | 2020-05-27 09:21:14 (GMT) |
---|---|---|
committer | apollo.ling <apollo.ling@amlogic.com> | 2020-05-29 02:31:44 (GMT) |
commit | 92a6ea7cdafe3717c7e05c1282a8d24dbbd90216 (patch) | |
tree | 6d71f2e3488ba5d411874c7bf2f3098bf2bb0922 | |
parent | 81b659430ef6142d26910a27f06b40cc5207bc58 (diff) | |
download | media_modules-92a6ea7cdafe3717c7e05c1282a8d24dbbd90216.zip media_modules-92a6ea7cdafe3717c7e05c1282a8d24dbbd90216.tar.gz media_modules-92a6ea7cdafe3717c7e05c1282a8d24dbbd90216.tar.bz2 |
vdec: use kzalloc instead of vzalloc for some buffer use [1/1]
PD#SWPL-26743
Problem:
In soft irq context uses vmalloc functions
Solution:
use kzalloc with GFP_ATOMIC flag to substitude vzalloc
Verify:
AC214
Change-Id: I10a5f58ade1f4107431cf9de24b0d40f5aae08a1
Signed-off-by: apollo.ling <apollo.ling@amlogic.com>
4 files changed, 15 insertions, 10 deletions
diff --git a/drivers/frame_provider/decoder/h264_multi/h264_dpb.c b/drivers/frame_provider/decoder/h264_multi/h264_dpb.c index 106b99e..94ff91e 100644 --- a/drivers/frame_provider/decoder/h264_multi/h264_dpb.c +++ b/drivers/frame_provider/decoder/h264_multi/h264_dpb.c @@ -37,18 +37,19 @@ int dpb_print(int index, int debug_flag, const char *fmt, ...) if (((h264_debug_flag & debug_flag) && ((1 << index) & h264_debug_mask)) || (debug_flag == PRINT_FLAG_ERROR)) { - unsigned char *buf = vzalloc(512); + unsigned char *buf = kzalloc(512, GFP_ATOMIC); int len = 0; va_list args; if (!buf) return 0; + va_start(args, fmt); len = sprintf(buf, "%d: ", index); vsnprintf(buf + len, 512-len, fmt, args); pr_debug("%s", buf); va_end(args); - vfree(buf); + kfree(buf); } return 0; } @@ -58,17 +59,18 @@ int dpb_print_cont(int index, int debug_flag, const char *fmt, ...) if (((h264_debug_flag & debug_flag) && ((1 << index) & h264_debug_mask)) || (debug_flag == PRINT_FLAG_ERROR)) { - unsigned char *buf = vzalloc(512); + unsigned char *buf = kzalloc(512, GFP_ATOMIC); int len = 0; va_list args; if (!buf) return 0; + va_start(args, fmt); vsnprintf(buf + len, 512-len, fmt, args); pr_info("%s", buf); va_end(args); - vfree(buf); + kfree(buf); } return 0; } diff --git a/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c b/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c index 7f2007a..5c9884c 100644 --- a/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c +++ b/drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c @@ -122,18 +122,19 @@ int mmjpeg_debug_print(int index, int debug_flag, const char *fmt, ...) if (((debug_enable & debug_flag) && ((1 << index) & mmjpeg_debug_mask)) || (debug_flag == PRINT_FLAG_ERROR)) { - unsigned char *buf = vzalloc(512); + unsigned char *buf = kzalloc(512, GFP_ATOMIC); int len = 0; va_list args; if (!buf) return 0; + va_start(args, fmt); len = sprintf(buf, "%d: ", index); vsnprintf(buf + len, 512-len, fmt, args); pr_info("%s", buf); va_end(args); - vfree(buf); + kfree(buf); } return 0; } diff --git a/drivers/frame_provider/decoder/mpeg12/vmpeg12_multi.c b/drivers/frame_provider/decoder/mpeg12/vmpeg12_multi.c index 8a04616..c806cde 100644 --- a/drivers/frame_provider/decoder/mpeg12/vmpeg12_multi.c +++ b/drivers/frame_provider/decoder/mpeg12/vmpeg12_multi.c @@ -348,18 +348,19 @@ int debug_print(int index, int debug_flag, const char *fmt, ...) if (((debug_enable & debug_flag) && ((1 << index) & mpeg12_debug_mask)) || (debug_flag == PRINT_FLAG_ERROR)) { - unsigned char *buf = vzalloc(512); + unsigned char *buf = kzalloc(512, GFP_ATOMIC); int len = 0; va_list args; if (!buf) return 0; + va_start(args, fmt); len = sprintf(buf, "%d: ", index); vsnprintf(buf + len, 512-len, fmt, args); pr_info("%s", buf); va_end(args); - vfree(buf); + kfree(buf); } return 0; } diff --git a/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c b/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c index d6f2845..b1a5911 100644 --- a/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c +++ b/drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c @@ -179,18 +179,19 @@ int mmpeg4_debug_print(int index, int debug_flag, const char *fmt, ...) if (((debug_enable & debug_flag) && ((1 << index) & mpeg4_debug_mask)) || (debug_flag == PRINT_FLAG_ERROR)) { - unsigned char *buf = vzalloc(512); + unsigned char *buf = kzalloc(512, GFP_ATOMIC); int len = 0; va_list args; if (!buf) return 0; + va_start(args, fmt); len = sprintf(buf, "%d: ", index); vsnprintf(buf + len, 512-len, fmt, args); pr_info("%s", buf); va_end(args); - vfree(buf); + kfree(buf); } return 0; } |