From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x2274MX3EarZEIGA822sw0twK7wpAsVOc62kn+5gTedl17RiI8mVlD3OTemhr1JEcvioCLOO+ ARC-Seal: i=1; a=rsa-sha256; t=1516988900; cv=none; d=google.com; s=arc-20160816; b=wYx1pilOiaL/2hQILQhKE7gzAZ0fqzRJcONq3pci9RfR3U4Rbm1m8/tstQzYW3pOWe On5otr/e75UbFom2RHBvFFzwH6X47pdMO2N1jgvo4KAuU2j7IewYF3z/ObG5PqUpJo7b 9DPlpilVrh+qGrXDWNNE1zgNRtlaRPDfE/1D7QdIkeyjJTGQz37alFUqyqHXMh6hJ+AE DNiv5bwlNj/BvgtGIiUtFr2wRLYprHcxGFINTaDS82FKlxqDa4V2T5BV0k9mFM7YGIuO 7qU3EqPevYg/tJu3yPOvw4pdq3cPt74huX0nOzDlOxMLjTTbmZdtE+uEsKKpgJj5g6Mk 9g5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:message-id:subject:cc:to:from:date :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=iPEQpXVgi9yghgY0AMcCxxw3yzOS/d6loQZk+wFkBGE=; b=AHs9ReaM8J3ZoDFWWKwjS9sRfwRBtvIzuAbqMob9Pg1sIGSliWyJq8/OxXcpPij8OL 2pGXNk/q0MzXNiammUZSuPD8DCOF9NGkboiVYEPgZgfRzpCqUWYaY6GucoW8z3VNCE22 CCe9Kul1N2XNxFsSjzigeLz2shQjVvBcmyb8E4MfjLq3hT0xDFWTN7Z4B9BnLxFRjRTj sgdN+ijWxS8pF1ar/tY/0Y2Z2Cg30gWmdSRORCzndqWsLDgSGC6KtIdKX1jFxFms8gfW NvqCDY3bLHWQo/MDxzDHOIEmYw5YFGKa1F7XhZOyaOhF2hsTMASGBpffDGo/fmuHU538 7TmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=ge4ba4c9; dkim=pass header.i=@codeaurora.org header.s=default header.b=kh9DdwoF; spf=pass (google.com: domain of lmark@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=lmark@codeaurora.org Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=ge4ba4c9; dkim=pass header.i=@codeaurora.org header.s=default header.b=kh9DdwoF; spf=pass (google.com: domain of lmark@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=lmark@codeaurora.org DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 2889160452 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=lmark@codeaurora.org Date: Fri, 26 Jan 2018 09:48:18 -0800 (PST) From: Liam Mark X-X-Sender: lmark@lmark-linux.qualcomm.com To: Laura Abbott , Sumit Semwal cc: Dan Carpenter , Greg KH , linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH v3] staging: android: ion: Zero CMA allocated memory Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590678153366118365?= X-GMAIL-MSGID: =?utf-8?q?1590678153366118365?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: Since commit 204f672255c2 ("staging: android: ion: Use CMA APIs directly") the CMA API is now used directly and therefore the allocated memory is no longer automatically zeroed. Explicitly zero CMA allocated memory to ensure that no data is exposed to userspace. Fixes: 204f672255c2 ("staging: android: ion: Use CMA APIs directly") Signed-off-by: Liam Mark Acked-by: Laura Abbott --- Changes in v2: - Clean up the commit message. - Add 'Fixes:' Changes in v3: - Add support for highmem pages drivers/staging/android/ion/ion_cma_heap.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/staging/android/ion/ion_cma_heap.c b/drivers/staging/android/ion/ion_cma_heap.c index 86196ffd2faf..fa3e4b7e0c9f 100644 --- a/drivers/staging/android/ion/ion_cma_heap.c +++ b/drivers/staging/android/ion/ion_cma_heap.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "ion.h" @@ -51,6 +52,22 @@ static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer, if (!pages) return -ENOMEM; + if (PageHighMem(pages)) { + unsigned long nr_clear_pages = nr_pages; + struct page *page = pages; + + while (nr_clear_pages > 0) { + void *vaddr = kmap_atomic(page); + + memset(vaddr, 0, PAGE_SIZE); + kunmap_atomic(vaddr); + page++; + nr_clear_pages--; + } + } else { + memset(page_address(pages), 0, size); + } + table = kmalloc(sizeof(*table), GFP_KERNEL); if (!table) goto err; -- 1.8.5.2 Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project