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;