diff --git a/drivers/soc/qcom/memshare/msm_memshare.c b/drivers/soc/qcom/memshare/msm_memshare.c index 43ca69072932..aa747aa4e433 100644 --- a/drivers/soc/qcom/memshare/msm_memshare.c +++ b/drivers/soc/qcom/memshare/msm_memshare.c @@ -494,8 +494,12 @@ static void handle_alloc_generic_req(struct qmi_handle *handle, } } - if (!memblock[index].allotted) { - if (memblock[index].guard_band && alloc_req->num_bytes > 0) + if (!memblock[index].allotted && alloc_req->num_bytes > 0) { + + if (alloc_req->num_bytes > memblock[index].init_size) + alloc_req->num_bytes = memblock[index].init_size; + + if (memblock[index].guard_band) size = alloc_req->num_bytes + MEMSHARE_GUARD_BYTES; else size = alloc_req->num_bytes;