uio: msm_sharedmem: Return ENOMEM if the shared mem addr is zero.

Add checks to return ENOMEM if the shared mem addr is zero.

Change-Id: I1905b28c133187bdf7c33eb44d110a70dbfb2fd6
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
This commit is contained in:
Nikhilesh Reddy 2014-08-24 16:40:18 -07:00
parent ca82d9c09a
commit de961fc79d
1 changed files with 8 additions and 2 deletions

View File

@ -140,10 +140,10 @@ static int sharedmem_qmi_get_buffer(void *conn_h, void *req_handle, void *req)
struct rfsa_get_buff_addr_req_msg_v01 *get_buffer_req;
struct rfsa_get_buff_addr_resp_msg_v01 get_buffer_resp;
int result;
u64 address;
u64 address = 0;
get_buffer_req = (struct rfsa_get_buff_addr_req_msg_v01 *)req;
pr_debug("req->client_id = %d and req->size = %d\n",
pr_debug("req->client_id = 0x%X and req->size = %d\n",
get_buffer_req->client_id, get_buffer_req->size);
result = get_buffer_for_client(get_buffer_req->client_id,
@ -151,6 +151,12 @@ static int sharedmem_qmi_get_buffer(void *conn_h, void *req_handle, void *req)
if (result != 0)
return result;
if (address == 0) {
pr_err("Entry found for client id = 0x%X but address is zero",
get_buffer_req->client_id);
return -ENOMEM;
}
memset(&get_buffer_resp, 0, sizeof(get_buffer_resp));
get_buffer_resp.address_valid = 1;
get_buffer_resp.address = address;