diff --git a/mm/share_pool.c b/mm/share_pool.c
index d49c066d1229e1f475269422a3083eb6f2121622..fb1722e8fbf148e57c8ddd54127a0defc1ef5013 100644
--- a/mm/share_pool.c
+++ b/mm/share_pool.c
@@ -3097,6 +3097,11 @@ static int sp_k2u_prepare(unsigned long kva, unsigned long size,
trace_sp_k2u_begin(kc);
+ if (!size) {
+ pr_err_ratelimited("k2u input size is 0.\n");
+ return -EINVAL;
+ }
+
if (sp_flags & ~SP_FLAG_MASK) {
pr_err_ratelimited("k2u sp_flags %lx error\n", sp_flags);
return -EINVAL;