Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp70212ybp; Thu, 3 Oct 2019 10:17:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqwfrLH1auzzEk/T4D6eyHp3Izk9rAxgGztMX6F6Gm05TpB5yRCdI6mV3XzmCKhMuQ64G2Hc X-Received: by 2002:a17:907:207a:: with SMTP id qp26mr4244674ejb.12.1570123076938; Thu, 03 Oct 2019 10:17:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570123076; cv=none; d=google.com; s=arc-20160816; b=e74FW3rotm0chD8T//mjJzqueDLUASNQaZNSFlwRGerUp1CsAekdEsXoghjYxVw+kn kODhW/nU5O0sO56mDVwibb37484h4xa1lzD9jntRan0ghDOZVxdsnDUpQA7JmXCadAGu SjcNCj1MRT8tsZu0joVskyOHjJ3Q76WghnrPImqO75/cZFL60zYwIdxOYsjGmCGuKtjj SPgBH5QTlc4kXruGBWRJwLQ04kfB88KbBi7OnTsFMl803qDDXJ7vUyD+FJb/a6PRkfO/ 2ZRAZq7SPbafJKM5TUfGkHc9njGWNWloRe+DkFPXymDr8DxJqmx1/7GDSKIqiq1fmUVk WUEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3OG+OzhFjoGf6KINnyvKOaNllq7ciumTIZ/IbQLt9lA=; b=wRd6KGQdtxfhoAnMGANgSRW3yU/8yk0rhbIE/3ud5AuDv7y5n6c9JInd7V4lo4Aks1 mynBjMaNiS/PN59YgFRxiZumKh4NfCuArO3vd86JyiAr96PuDH2vVqDhlRslPdOoHMeq SP7Dc48NQiNN4v4ZjcIyCqmystHPo0U9ATcidjwLmvInadgjr+suuGnwg5k3OVWoxK7b A0Riiu21UjuIPBUfFZZBwxDExbEwrgorwfSo2THwN0P6zO0NU/H9jjFE2QzFKL9wZDFW wAmQAitXCTFtD8TdczP2AYIx4+mGeY6IocSuEETG5+daaVQYX8dKYgmR3CFzSzr2PbBr YgKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=xVl0KY6R; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g21si1796294edm.116.2019.10.03.10.17.32; Thu, 03 Oct 2019 10:17:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=xVl0KY6R; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391517AbfJCROO (ORCPT + 99 others); Thu, 3 Oct 2019 13:14:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:59530 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391270AbfJCQ1e (ORCPT ); Thu, 3 Oct 2019 12:27:34 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3944520867; Thu, 3 Oct 2019 16:27:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120052; bh=Va9nDflhvZE8l4fVYvtxdcbe6XHlni19RRugg5yBB5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xVl0KY6RenQLemDd7c9YwIhEkIvVKGEHt4k09TdOa6HeoctUdGi+57KJVRsvkO5Xx f9Gl2hn+M1ZIjo0q7AR6bMyw/q2zdOQFsblJGzXtwdk2Pmg+XWh4+0G1MYrugnOel/ mYXYyMaZ+SjPJOUeVBsdPFIpN6YFjgGl8BeVMhbE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ian Jackson , Julien Grall , Bjorn Andersson , Avaneesh Kumar Dwivedi , Stephen Boyd , Sasha Levin Subject: [PATCH 5.2 041/313] firmware: qcom_scm: Use proper types for dma mappings Date: Thu, 3 Oct 2019 17:50:19 +0200 Message-Id: <20191003154537.261502495@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stephen Boyd [ Upstream commit 6e37ccf78a53296c6c7bf426065762c27829eb84 ] We need to use the proper types and convert between physical addresses and dma addresses here to avoid mismatch warnings. This is especially important on systems with a different size for dma addresses and physical addresses. Otherwise, we get the following warning: drivers/firmware/qcom_scm.c: In function "qcom_scm_assign_mem": drivers/firmware/qcom_scm.c:469:47: error: passing argument 3 of "dma_alloc_coherent" from incompatible pointer type [-Werror=incompatible-pointer-types] We also fix the size argument to dma_free_coherent() because that size doesn't need to be aligned after it's already aligned on the allocation size. In fact, dma debugging expects the same arguments to be passed to both the allocation and freeing sides of the functions so changing the size is incorrect regardless. Reported-by: Ian Jackson Cc: Ian Jackson Cc: Julien Grall Cc: Bjorn Andersson Cc: Avaneesh Kumar Dwivedi Tested-by: Bjorn Andersson Signed-off-by: Stephen Boyd Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin --- drivers/firmware/qcom_scm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 2ddc118dba1b4..74b84244a0db8 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -440,6 +441,7 @@ int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz, phys_addr_t mem_to_map_phys; phys_addr_t dest_phys; phys_addr_t ptr_phys; + dma_addr_t ptr_dma; size_t mem_to_map_sz; size_t dest_sz; size_t src_sz; @@ -457,9 +459,10 @@ int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz, ptr_sz = ALIGN(src_sz, SZ_64) + ALIGN(mem_to_map_sz, SZ_64) + ALIGN(dest_sz, SZ_64); - ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_phys, GFP_KERNEL); + ptr = dma_alloc_coherent(__scm->dev, ptr_sz, &ptr_dma, GFP_KERNEL); if (!ptr) return -ENOMEM; + ptr_phys = dma_to_phys(__scm->dev, ptr_dma); /* Fill source vmid detail */ src = ptr; @@ -489,7 +492,7 @@ int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz, ret = __qcom_scm_assign_mem(__scm->dev, mem_to_map_phys, mem_to_map_sz, ptr_phys, src_sz, dest_phys, dest_sz); - dma_free_coherent(__scm->dev, ALIGN(ptr_sz, SZ_64), ptr, ptr_phys); + dma_free_coherent(__scm->dev, ptr_sz, ptr, ptr_dma); if (ret) { dev_err(__scm->dev, "Assign memory protection call failed %d.\n", ret); -- 2.20.1