Received: by 2002:a25:b323:0:0:0:0:0 with SMTP id l35csp3057440ybj; Mon, 23 Sep 2019 14:04:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqwfUVZAubKiMGfcr9NT/INEg+bAa1QtUStnQKnuypj9W8sE8Dh8TiT3KDapXYodcRIDhfWy X-Received: by 2002:a17:906:1cc6:: with SMTP id i6mr1629509ejh.40.1569272656174; Mon, 23 Sep 2019 14:04:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569272656; cv=none; d=google.com; s=arc-20160816; b=YYtrYRIReoWptQyd9b/Q4vF9CvqKa+1yJ/bqWneFcDmVAp/omkAAU/HgJdyJ++LwOs liPzrgFMLVqS1VaSSrs/m1T8347cEPbzkrtq/qiNVWXf3yz0KagW6FlpJ0OmhyQ4ljiD 3t3Br9UBebF0DQq6GqZHwq9iEwwq+PDi/oqYTEzQGs7B6FvAfi3PtZCqhZffe5snCg7h 6QVTqwJX1Ps2WH1FZmEz9VfLnr7fPS+4SAb2IFhrTYuNCzn5jkM+AAHno3GV3jzy7AO4 UNGsOdDKY/B6+7vSFbItaIDNfFeRK8Xu7PxkMg3h4icNIkbo21TArBpO3+d10YXjiiaA D9Jg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3OG+OzhFjoGf6KINnyvKOaNllq7ciumTIZ/IbQLt9lA=; b=SWhR3942QhXmjScG6V/b4D7QLvJ774T2DlMmvTzFgN9ZfQhyxu+jStTmJNQ5XNyM7W AS9lmI10o71jJ3LBXHIAoyswEt6wtXxkJK8IkE8FA3ZprKAWS0QWZ1K8PIY1MjMaqYg7 Tl3fvaSJ3OiUoDuYD82kql32slV/g0xSIqXplxkQrn//f+WQ0BR2PkZZjMubqcnHD3IB flczyT9s4qhJc9uOuVrq7qIV0vKsn8ddD4uYLud1UMvFyFQMoMw4EXcG+dGEXZEy+KV8 35LEm0DarEOHFF096+JA1l72OLXAGlU2AuhYmt/XtLPgXs6W/sJVvdbefYX2DyzM4DN2 h3QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=G88vT3v5; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n8si5645192ejz.22.2019.09.23.14.03.52; Mon, 23 Sep 2019 14:04:16 -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=G88vT3v5; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388891AbfIVSox (ORCPT + 99 others); Sun, 22 Sep 2019 14:44:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:39668 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388681AbfIVSoF (ORCPT ); Sun, 22 Sep 2019 14:44:05 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 333D520882; Sun, 22 Sep 2019 18:44:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1569177844; bh=Va9nDflhvZE8l4fVYvtxdcbe6XHlni19RRugg5yBB5I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G88vT3v5FgiPB38CYE7NhMN7O1J5EjzToaNNXqLs3iOnusGDqXgE6ePRcciIuidkj Fa2CYoGUeCACzdB8tJkefornwQZ25JkbiptS6M7TfIhjSp9qXzrePu4Onn7NNL7bSG RLuZiD4sPRhl+WOBpYtdQpT5jOk6HMwFaRObhnC4= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Stephen Boyd , Ian Jackson , Julien Grall , Bjorn Andersson , Avaneesh Kumar Dwivedi , Sasha Levin , linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org Subject: [PATCH AUTOSEL 5.3 011/203] firmware: qcom_scm: Use proper types for dma mappings Date: Sun, 22 Sep 2019 14:40:37 -0400 Message-Id: <20190922184350.30563-11-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190922184350.30563-1-sashal@kernel.org> References: <20190922184350.30563-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore 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